Rev 5930 | Rev 5938 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5930 | Rev 5935 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | ; |
1 | ; |
2 | ; ¢ í⮬ ä ©«¥ ᮡà ë äãªæ¨¨ ã¦ë¥ ¤«ï ᮧ¤ ¨ï ¨ |
2 | ; ¢ í⮬ ä ©«¥ ᮡà ë äãªæ¨¨ ã¦ë¥ ¤«ï ᮧ¤ ¨ï ¨ |
3 | ; à ¡®âë ®ª á ª®®à¤¨ â ¬¨ |
3 | ; à ¡®âë ®ª á ª®®à¤¨ â ¬¨ ¢¥àè¨ |
4 | ; |
4 | ; |
Line 5... | Line 5... | ||
5 | 5 | ||
6 | prop_wnd_width equ 340 ;è¨à¨ ®ª ᮠ᢮©á⢠¬¨ ®¡ê¥ªâ |
6 | prop_wnd_width equ 340 ;è¨à¨ ®ª ᮠ᢮©á⢠¬¨ ®¡ê¥ªâ |
7 | prop_wnd_height equ 460 |
7 | prop_wnd_height equ 460 |
8 | SIZE_ONE_FLOAT equ 14 |
8 | SIZE_ONE_FLOAT equ 14 |
Line -... | Line 9... | ||
- | 9 | MAX_OBJECT_SIZE equ (4+SIZE_ONE_FLOAT*3+1) |
|
- | 10 | ||
- | 11 | bit_vertexes equ 0 |
|
- | 12 | bit_faces equ 1 |
|
- | 13 | bit_faces_fill equ 2 |
|
- | 14 | bit_light equ 3 |
|
9 | MAX_OBJECT_SIZE equ (4+SIZE_ONE_FLOAT*3+1) |
15 | def_dr_mode equ 0x1111b |
Line 10... | Line 16... | ||
10 | 16 | ||
11 | prop_wnd_run db 0 ;¯¥à¥¬¥ ï á«¥¤ïé ï § ⥬ çâ®-¡ë ¥ § ¯ã᪠âì ¡®«ìè¥ 1-£® ®ª ᮠ᢮©á⢠¬¨ ®¤®¢à¥¬¥® |
17 | prop_wnd_run db 0 ;¯¥à¥¬¥ ï á«¥¤ïé ï § ⥬ çâ®-¡ë ¥ § ¯ã᪠âì ¡®«ìè¥ 1-£® ®ª ᮠ᢮©á⢠¬¨ ®¤®¢à¥¬¥® |
12 | 18 | ||
Line 30... | Line 36... | ||
30 | prop_start: |
36 | prop_start: |
31 | pushad |
37 | pushad |
32 | mcall 40,0x27 ;¬ ᪠®¦¨¤ ¥¬ëå ᮡë⨩ |
38 | mcall 40,0x27 ;¬ ᪠®¦¨¤ ¥¬ëå ᮡë⨩ |
33 | inc byte[prop_wnd_run] |
39 | inc byte[prop_wnd_run] |
34 | mov dword[w_scr_t3.type],1 |
40 | mov dword[w_scr_t3.type],1 |
- | 41 | call prop_wnd_clear_param |
|
Line 35... | Line 42... | ||
35 | 42 | ||
36 | stdcall [tl_node_get_data],tree1 |
43 | stdcall [tl_node_get_data],tree1 |
37 | xor edx,edx |
44 | xor edx,edx |
38 | mov dword[capt_p],txt_q |
45 | mov dword[capt_p],txt_q |
39 | cmp eax,0 |
46 | cmp eax,0 |
40 | je .no_points |
47 | je .no_points |
41 | mov ebx,dword[eax] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ë¡à ®£® ¡«®ª |
48 | mov ebx,[eax] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ë¡à ®£® ¡«®ª |
Line 42... | Line 49... | ||
42 | add ebx,dword[open_file_lif] |
49 | add ebx,[open_file_lif] |
43 | 50 | ||
44 | cmp word[ebx],CHUNK_VERTLIST |
51 | cmp word[ebx],CHUNK_VERTLIST |
45 | jne @f |
52 | jne .end_vlist |
46 | movzx edx,word[ebx+6] ;ª®««¨ç¥á⢮ â®ç¥ª |
53 | movzx edx,word[ebx+6] ;ª®««¨ç¥á⢮ â®ç¥ª |
- | 54 | add ebx,8 |
|
- | 55 | mov dword[capt_p],txt_4110 |
|
- | 56 | ;¯®¨áª ¤ ëå ¤«ï âà¥ã£®«ìª®¢ |
|
- | 57 | mov ecx,eax |
|
- | 58 | stdcall [tl_node_poi_get_info], tree1,0 |
|
- | 59 | @@: |
|
- | 60 | mov esi,eax |
|
- | 61 | stdcall [tl_node_poi_get_data], tree1,esi |
|
- | 62 | cmp eax,ecx |
|
- | 63 | je @f ;¥á«¨ ¯®¯ «¨ ¢ë¡à ë© ã§¥« |
|
- | 64 | stdcall [tl_node_poi_get_next_info], tree1,esi |
|
47 | add ebx,8 |
65 | cmp eax,0 |
48 | mov dword[capt_p],txt_4110 |
66 | jne @b |
- | 67 | jmp .set_points |
|
- | 68 | @@: |
|
- | 69 | ;¥á«¨ 諨 ¢ë¡à ë© ã§¥«, â® ¤ «¥¥ ¯ëâ ¥¬áï ©â¨ ã§¥« á âà¥ã£®«ì¨ª ¬¨ |
|
- | 70 | movzx ecx,byte[esi+2] ;cl - ã஢¥ì ¢ë¡à ®£® 㧫 |
|
- | 71 | .cycle_0: |
|
- | 72 | stdcall [tl_node_poi_get_next_info], tree1,esi |
|
- | 73 | cmp eax,0 |
|
- | 74 | je .set_points |
|
- | 75 | mov esi,eax |
|
- | 76 | stdcall [tl_node_poi_get_data], tree1,esi |
|
- | 77 | cmp byte[esi+2],cl |
|
- | 78 | jl .set_points |
|
- | 79 | je .found |
|
- | 80 | jmp .cycle_0 |
|
- | 81 | .found: ;¥á«¨ 諨 㧥« ⮣®¦¥ ã஢ï çâ® ¨ ¢ë¡à ë© ã§¥« |
|
- | 82 | cmp eax,0 |
|
- | 83 | je .set_points |
|
- | 84 | mov eax,[eax] |
|
- | 85 | add eax,[open_file_lif] |
|
- | 86 | cmp word[eax],CHUNK_FACELIST |
|
- | 87 | jne .cycle_0 |
|
- | 88 | movzx ecx,word[eax+6] |
|
- | 89 | mov [obj_tri_count],ecx |
|
- | 90 | add eax,8 ;2+4+2 (chunk+size+count) |
|
- | 91 | mov [obj_tri_data],eax |
|
49 | jmp .no_points |
92 | jmp .set_points |
50 | @@: |
93 | .end_vlist: |
51 | cmp word[ebx],0xb013 |
94 | cmp word[ebx],CHUNK_TRACKPIVOT |
52 | jne @f |
95 | jne @f |
53 | inc edx |
96 | inc edx |
54 | add ebx,6 |
97 | add ebx,6 |
55 | mov dword[capt_p],txt_b013 |
98 | mov dword[capt_p],txt_b013 |
56 | jmp .no_points |
99 | jmp .set_points |
57 | @@: |
100 | @@: |
58 | cmp word[ebx],0xb014 |
101 | cmp word[ebx],0xb014 |
59 | jne @f |
102 | jne @f |
60 | mov edx,2 |
103 | mov edx,2 |
61 | add ebx,6 |
104 | add ebx,6 |
62 | mov dword[capt_p],txt_b014 |
105 | mov dword[capt_p],txt_b014 |
- | 106 | ;jmp .set_points |
|
- | 107 | @@: |
|
- | 108 | .set_points: |
|
63 | ;jmp .no_points |
109 | mov [obj_poi_data],ebx |
Line 64... | Line 110... | ||
64 | @@: |
110 | mov [obj_poi_count],edx |
65 | .no_points: |
111 | .no_points: |
66 | 112 | ||
Line 115... | Line 161... | ||
115 | 161 | ||
116 | ;¥ ®âàë¢ âì íâã äãªæ¨î ®â ¯à¥¤ë¤ã饩 |
162 | ;¥ ®âàë¢ âì íâã äãªæ¨î ®â ¯à¥¤ë¤ã饩 |
117 | align 4 |
163 | align 4 |
118 | prop_still: |
164 | prop_still: |
- | 165 | pushad |
|
119 | pushad |
166 | |
- | 167 | mcall 23,10 |
|
- | 168 | or eax,eax |
|
- | 169 | jnz @f |
|
- | 170 | call prop_timer_funct |
|
- | 171 | jmp .end |
|
Line 120... | Line 172... | ||
120 | mcall 10 |
172 | @@: |
121 | 173 | ||
122 | cmp al,1 ;¨§¬. ¯®«®¦¥¨¥ ®ª |
174 | cmp al,1 ;¨§¬. ¯®«®¦¥¨¥ ®ª |
123 | jne @f |
175 | jne @f |
Line 157... | Line 209... | ||
157 | mov cx,prop_wnd_height |
209 | mov cx,prop_wnd_height |
158 | mov edx,0xffffd0+0x33000000 |
210 | mov edx,0xffffd0+0x33000000 |
159 | int 0x40 |
211 | int 0x40 |
Line 160... | Line 212... | ||
160 | 212 | ||
161 | mov esi,[sc.work_button] |
213 | mov esi,[sc.work_button] |
162 | mcall 8, (5 shl 16)+20, (246 shl 16)+20, 3 |
214 | mcall 8, (5 shl 16)+20, (266 shl 16)+20, 3 |
Line 163... | Line 215... | ||
163 | mcall , (30 shl 16)+20, (246 shl 16)+20, 4 |
215 | mcall , (30 shl 16)+20, (266 shl 16)+20, 4 |
164 | 216 | ||
165 | mov ebx,[image_data_toolbar] |
217 | mov ebx,[image_data_toolbar] |
Line 166... | Line 218... | ||
166 | add ebx,4*IMAGE_TOOLBAR_ICON_SIZE |
218 | add ebx,4*IMAGE_TOOLBAR_ICON_SIZE |
167 | mcall 7, , (16 shl 16)+16, (7 shl 16)+247 ;load |
219 | mcall 7, , (16 shl 16)+16, (7 shl 16)+268 ;load |
168 | 220 | ||
Line 169... | Line 221... | ||
169 | sub ebx,IMAGE_TOOLBAR_ICON_SIZE |
221 | sub ebx,IMAGE_TOOLBAR_ICON_SIZE |
170 | mov edx,(32 shl 16)+247 ;save |
222 | mov edx,(32 shl 16)+268 ;save |
171 | int 0x40 |
223 | int 0x40 |
172 | 224 | ||
173 | mov dword[w_scr_t3.all_redraw],1 |
225 | mov dword[w_scr_t3.all_redraw],1 |
174 | stdcall [scrollbar_ver_draw],dword w_scr_t3 |
226 | stdcall [scrollbar_ver_draw],dword w_scr_t3 |
Line -... | Line 227... | ||
- | 227 | stdcall [tl_draw], tree3 |
|
175 | stdcall [tl_draw], tree3 |
228 | stdcall [edit_box_draw], edit1 |
176 | stdcall [edit_box_draw], edit1 |
229 | stdcall [edit_box_draw], edit2 |
177 | stdcall [edit_box_draw], edit2 |
230 | stdcall [edit_box_draw], edit3 |
178 | stdcall [edit_box_draw], edit3 |
231 | |
Line -... | Line 232... | ||
- | 232 | stdcall [kmainmenu_draw], [main_menu] |
|
- | 233 | call draw_3d |
|
- | 234 | mcall 12,2 |
|
- | 235 | popad |
|
- | 236 | ret |
|
- | 237 | ||
- | 238 | ;ãáâ ®¢ª ¢á¥å ®á®¢ëå ¯¥à¥¬¥ëå ¯® 㬮«ç ¨î |
|
- | 239 | align 4 |
|
- | 240 | prop_wnd_clear_param: |
|
- | 241 | mov dword[angle_x],0.0 |
|
- | 242 | mov dword[angle_y],0.0 |
|
- | 243 | mov dword[angle_z],0.0 |
|
- | 244 | mov dword[obj_poi_data],0 |
|
- | 245 | mov dword[obj_poi_count],0 |
|
179 | 246 | mov dword[obj_tri_data],0 |
|
180 | call draw_3d |
247 | mov dword[obj_tri_count],0 |
181 | mcall 12,2 |
248 | mov dword[draw_mode],def_dr_mode |
182 | popad |
- | |
183 | ret |
249 | ret |
184 | - | ||
185 | align 4 |
250 | |
186 | proc obj_set_sizes uses eax ebx esi |
251 | ;ãáâ ®¢ª à §¬¥à®¢ ®¡ê¥ªâ |
187 | stdcall dword[tl_node_poi_get_info], tree3,0 |
252 | align 4 |
188 | cmp eax,0 |
253 | proc obj_set_sizes uses eax ebx esi |
189 | je .end |
254 | cmp dword[obj_poi_count],0 |
190 | stdcall [tl_node_poi_get_data], tree3,eax |
255 | je .end |
191 | finit |
256 | finit |
192 | mov eax,[eax] |
257 | mov eax,[obj_poi_data] |
193 | mov ebx,dword[eax] |
258 | mov ebx,dword[eax] |
194 | mov [obj_x_min],ebx |
259 | mov [obj_x_min],ebx |
195 | mov [obj_x_max],ebx |
260 | mov [obj_x_max],ebx |
Line -... | Line 261... | ||
- | 261 | mov ebx,dword[eax+4] |
|
196 | mov ebx,dword[eax+4] |
262 | mov [obj_y_min],ebx |
197 | mov [obj_y_min],ebx |
263 | mov [obj_y_max],ebx |
198 | mov [obj_y_max],ebx |
264 | mov ebx,dword[eax+8] |
199 | mov ebx,dword[eax+8] |
- | |
200 | mov [obj_z_min],ebx |
- | |
201 | mov [obj_z_max],ebx |
- | |
202 | - | ||
203 | stdcall dword[tl_node_poi_get_info], tree3,0 |
265 | mov [obj_z_min],ebx |
204 | align 4 |
266 | mov [obj_z_max],ebx |
205 | .cycle_0: ;à ¡®â á ª®®à¤¨ ⮩ x |
267 | |
206 | mov esi,eax |
268 | mov ebx,[obj_poi_data] |
207 | stdcall [tl_node_poi_get_data], tree3,esi |
269 | mov esi,[obj_poi_count] |
Line 226... | Line 288... | ||
226 | ja .next_x |
288 | ja .next_x |
227 | mov eax,[ebx] |
289 | mov eax,[ebx] |
228 | mov [obj_x_max],eax |
290 | mov [obj_x_max],eax |
229 | .next_x: |
291 | .next_x: |
Line 230... | Line 292... | ||
230 | 292 | ||
231 | stdcall dword[tl_node_poi_get_next_info], tree3,esi |
293 | add ebx,12 |
232 | cmp eax,0 |
294 | dec esi |
Line 233... | Line 295... | ||
233 | jne .cycle_0 |
295 | jnz .cycle_0 |
234 | 296 | ||
235 | fld1 |
297 | fld1 |
236 | fld dword[obj_x_max] |
298 | fld dword[obj_x_max] |
Line 246... | Line 308... | ||
246 | fdivp ;centr.x = size.x/2 |
308 | fdivp ;centr.x = size.x/2 |
247 | fadd dword[obj_x_min] |
309 | fadd dword[obj_x_min] |
248 | fchs |
310 | fchs |
249 | fstp dword[obj_x_centr] |
311 | fstp dword[obj_x_centr] |
Line -... | Line 312... | ||
- | 312 | ||
250 | 313 | mov ebx,[obj_poi_data] |
|
251 | stdcall dword[tl_node_poi_get_info], tree3,0 |
314 | mov esi,[obj_poi_count] |
252 | align 4 |
315 | align 4 |
253 | .cycle_1: ;à ¡®â á ª®®à¤¨ ⮩ y |
- | |
254 | mov esi,eax |
- | |
255 | stdcall [tl_node_poi_get_data], tree3,esi |
- | |
256 | mov ebx,[eax] |
- | |
257 | 316 | .cycle_1: ;à ¡®â á ª®®à¤¨ ⮩ y |
|
258 | fld dword[ebx+4] |
317 | fld dword[ebx+4] |
259 | fld dword[obj_y_min] |
318 | fld dword[obj_y_min] |
260 | fcomp |
319 | fcomp |
261 | fstsw ax |
320 | fstsw ax |
Line 274... | Line 333... | ||
274 | ja .next_y |
333 | ja .next_y |
275 | mov eax,[ebx+4] |
334 | mov eax,[ebx+4] |
276 | mov [obj_y_max],eax |
335 | mov [obj_y_max],eax |
277 | .next_y: |
336 | .next_y: |
Line 278... | Line 337... | ||
278 | 337 | ||
279 | stdcall dword[tl_node_poi_get_next_info], tree3,esi |
338 | add ebx,12 |
280 | cmp eax,0 |
339 | dec esi |
Line 281... | Line 340... | ||
281 | jne .cycle_1 |
340 | jnz .cycle_1 |
282 | 341 | ||
283 | fld1 |
342 | fld1 |
284 | fld dword[obj_y_max] |
343 | fld dword[obj_y_max] |
Line 294... | Line 353... | ||
294 | fdivp ;centr.y = size.y/2 |
353 | fdivp ;centr.y = size.y/2 |
295 | fadd dword[obj_y_min] |
354 | fadd dword[obj_y_min] |
296 | fchs |
355 | fchs |
297 | fstp dword[obj_y_centr] |
356 | fstp dword[obj_y_centr] |
Line -... | Line 357... | ||
- | 357 | ||
298 | 358 | mov ebx,[obj_poi_data] |
|
299 | stdcall dword[tl_node_poi_get_info], tree3,0 |
359 | mov esi,[obj_poi_count] |
300 | align 4 |
360 | align 4 |
301 | .cycle_2: ;à ¡®â á ª®®à¤¨ ⮩ z |
- | |
302 | mov esi,eax |
- | |
303 | stdcall [tl_node_poi_get_data], tree3,esi |
- | |
304 | mov ebx,[eax] |
- | |
305 | 361 | .cycle_2: ;à ¡®â á ª®®à¤¨ ⮩ z |
|
306 | fld dword[ebx+8] |
362 | fld dword[ebx+8] |
307 | fld dword[obj_z_min] |
363 | fld dword[obj_z_min] |
308 | fcomp |
364 | fcomp |
309 | fstsw ax |
365 | fstsw ax |
Line 322... | Line 378... | ||
322 | ja .next_z |
378 | ja .next_z |
323 | mov eax,[ebx+8] |
379 | mov eax,[ebx+8] |
324 | mov [obj_z_max],eax |
380 | mov [obj_z_max],eax |
325 | .next_z: |
381 | .next_z: |
Line 326... | Line 382... | ||
326 | 382 | ||
327 | stdcall dword[tl_node_poi_get_next_info], tree3,esi |
383 | add ebx,12 |
328 | cmp eax,0 |
384 | dec esi |
Line 329... | Line 385... | ||
329 | jne .cycle_2 |
385 | jnz .cycle_2 |
330 | 386 | ||
331 | fld1 |
387 | fld1 |
332 | fld dword[obj_z_max] |
388 | fld dword[obj_z_max] |
Line 358... | Line 414... | ||
358 | endp |
414 | endp |
Line 359... | Line 415... | ||
359 | 415 | ||
360 | ;à¨á®¢ ¨¥ â®ç¥ª ¢ 3d |
416 | ;à¨á®¢ ¨¥ â®ç¥ª ¢ 3d |
361 | align 4 |
417 | align 4 |
- | 418 | draw_3d: |
|
- | 419 | cmp dword[obj_poi_count],2 |
|
- | 420 | jl .end_f |
|
362 | draw_3d: |
421 | |
363 | stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;®ç¨á⨬ ¡ãä¥à 梥⠨ £«ã¡¨ë |
422 | stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;®ç¨á⨬ ¡ãä¥à 梥⠨ £«ã¡¨ë |
- | 423 | stdcall [glPushMatrix] |
|
- | 424 | bt dword[draw_mode],bit_light |
|
- | 425 | jnc @f |
|
- | 426 | call SetLight |
|
- | 427 | jmp .end_l |
|
- | 428 | @@: |
|
- | 429 | stdcall [glDisable],GL_LIGHTING |
|
364 | stdcall [glPushMatrix] |
430 | .end_l: |
365 | stdcall [glTranslatef], 0.0,0.0,0.5 ;correct for z |
431 | stdcall [glTranslatef], 0.0,0.0,0.5 ;correct for z |
366 | stdcall [glScalef], [obj_x_scale],[obj_y_scale],[obj_z_scale] |
432 | stdcall [glScalef], [obj_x_scale],[obj_y_scale],[obj_z_scale] |
367 | stdcall [glScalef], 1.0,1.0,0.7 ;correct for z |
433 | stdcall [glScalef], 1.0,1.0,0.7 ;correct for z |
368 | stdcall [glRotatef], [angle_z],0.0,0.0,1.0 |
434 | stdcall [glRotatef], [angle_z],0.0,0.0,1.0 |
369 | stdcall [glRotatef], [angle_y],0.0,1.0,0.0 |
435 | stdcall [glRotatef], [angle_y],0.0,1.0,0.0 |
370 | stdcall [glRotatef], [angle_x],1.0,0.0,0.0 |
436 | stdcall [glRotatef], [angle_x],1.0,0.0,0.0 |
Line -... | Line 437... | ||
- | 437 | stdcall [glTranslatef], [obj_x_centr],[obj_y_centr],[obj_z_centr] |
|
- | 438 | ||
- | 439 | ;à¨á®¢ ¨¥ â®ç¥ª |
|
371 | stdcall [glTranslatef], [obj_x_centr],[obj_y_centr],[obj_z_centr] |
440 | bt dword[draw_mode],bit_vertexes |
372 | 441 | jnc .end_points |
|
373 | stdcall [glColor3f], 1.0,1.0,1.0 |
- | |
- | 442 | stdcall [glColor3f], 1.0,1.0,1.0 |
|
374 | stdcall [glBegin],GL_POINTS |
443 | stdcall [glBegin],GL_POINTS |
375 | 444 | mov eax,[obj_poi_data] |
|
376 | stdcall dword[tl_node_poi_get_info], tree3,0 |
- | |
377 | @@: |
- | |
378 | cmp eax,0 |
- | |
379 | je @f |
- | |
380 | mov esi,eax |
- | |
381 | stdcall [tl_node_poi_get_data], tree3,esi |
445 | mov ebx,[obj_poi_count] |
382 | mov eax,[eax] |
446 | @@: |
383 | stdcall [glVertex3f], [eax],[eax+4],[eax+8] |
447 | stdcall [glVertex3f], [eax],[eax+4],[eax+8] |
384 | stdcall dword[tl_node_poi_get_next_info], tree3,esi |
448 | add eax,12 |
385 | jmp @b |
449 | dec ebx |
- | 450 | jnz @b |
|
Line -... | Line 451... | ||
- | 451 | stdcall [glEnd] |
|
386 | @@: |
452 | .end_points: |
387 | stdcall [glEnd] |
453 | |
388 | 454 | ;à¨á®¢ ¨¥ ¢ë¤¥«¥®© â®çª¨ |
|
389 | stdcall [tl_node_get_data],tree3 |
455 | stdcall [tl_node_get_data],tree3 |
390 | cmp eax,0 |
456 | cmp eax,0 |
Line 403... | Line 469... | ||
403 | stdcall [glVertex3f], [eax],[eax+4],[obj_z_min] |
469 | stdcall [glVertex3f], [eax],[eax+4],[obj_z_min] |
404 | stdcall [glVertex3f], [eax],[eax+4],[obj_z_max] |
470 | stdcall [glVertex3f], [eax],[eax+4],[obj_z_max] |
405 | stdcall [glEnd] |
471 | stdcall [glEnd] |
Line 406... | Line 472... | ||
406 | 472 | ||
- | 473 | stdcall [glColor3f], 1.0, 1.0, 0.0 |
|
407 | stdcall [glColor3f], 1.0, 1.0, 0.0 |
474 | stdcall [glPushMatrix] |
408 | stdcall [glTranslatef], [eax],[eax+4],[eax+8] |
475 | stdcall [glTranslatef], [eax],[eax+4],[eax+8] |
- | 476 | stdcall [gluSphere], [qObj], [sph_radius], 8,8 |
|
409 | stdcall [gluSphere], [qObj], [sph_radius], 8,8 |
477 | stdcall [glPopMatrix] |
Line -... | Line 478... | ||
- | 478 | @@: |
|
- | 479 | ||
- | 480 | ;à¨á®¢ ¨¥ £à ¥© |
|
- | 481 | bt dword[draw_mode],bit_faces |
|
- | 482 | jnc .end_triangles |
|
- | 483 | cmp dword[obj_tri_count],0 |
|
- | 484 | je .end_triangles |
|
- | 485 | cmp dword[obj_poi_count],0 |
|
- | 486 | je .end_triangles |
|
- | 487 | stdcall [glColor3f], 0.5,0.5,0.5 |
|
- | 488 | ;bt dword[draw_mode],bit_faces_fill |
|
- | 489 | ;jnc @f |
|
- | 490 | ;@@: |
|
- | 491 | stdcall [glBegin],GL_TRIANGLES |
|
- | 492 | mov eax,[obj_tri_data] |
|
- | 493 | mov ecx,[obj_tri_count] |
|
- | 494 | @@: |
|
- | 495 | movzx ebx,word[eax] ;1-ï ¢¥àè¨ |
|
- | 496 | imul ebx,12 |
|
- | 497 | add ebx,[obj_poi_data] |
|
- | 498 | stdcall [glVertex3f], [ebx],[ebx+4],[ebx+8] |
|
- | 499 | movzx ebx,word[eax+2] ;2-ï ¢¥àè¨ |
|
- | 500 | imul ebx,12 |
|
- | 501 | add ebx,[obj_poi_data] |
|
- | 502 | stdcall [glVertex3f], [ebx],[ebx+4],[ebx+8] |
|
- | 503 | movzx ebx,word[eax+4] ;3-ï ¢¥àè¨ |
|
- | 504 | imul ebx,12 |
|
- | 505 | add ebx,[obj_poi_data] |
|
- | 506 | stdcall [glVertex3f], [ebx],[ebx+4],[ebx+8] |
|
- | 507 | add eax,8 ;à §¬¥à âà¥ã£®«ì¨ª = (3 ¢¥àè¨ë (¯® 2¡) + ᢮©á⢠(2¡)) |
|
- | 508 | dec ecx |
|
- | 509 | jnz @b |
|
- | 510 | stdcall [glEnd] |
|
410 | @@: |
511 | .end_triangles: |
411 | 512 | ||
- | 513 | stdcall [glPopMatrix] |
|
- | 514 | stdcall [kosglSwapBuffers] |
|
- | 515 | .end_f: |
|
- | 516 | ret |
|
- | 517 | ||
- | 518 | align 4 |
|
- | 519 | SetLight: |
|
- | 520 | stdcall [glLightfv], GL_LIGHT0, GL_POSITION, light_position |
|
- | 521 | stdcall [glLightfv], GL_LIGHT0, GL_SPOT_DIRECTION, light_dir |
|
- | 522 | ||
- | 523 | stdcall [glLightfv], GL_LIGHT0, GL_DIFFUSE, white_light |
|
- | 524 | stdcall [glLightfv], GL_LIGHT0, GL_SPECULAR, white_light |
|
- | 525 | ||
- | 526 | stdcall [glEnable], GL_COLOR_MATERIAL |
|
- | 527 | stdcall [glColorMaterial], GL_FRONT, GL_AMBIENT_AND_DIFFUSE |
|
- | 528 | stdcall [glMaterialfv], GL_FRONT, GL_SPECULAR, mat_specular |
|
- | 529 | stdcall [glMaterialf], GL_FRONT, GL_SHININESS, mat_shininess |
|
- | 530 | stdcall [glLightModelfv], GL_LIGHT_MODEL_AMBIENT, lmodel_ambient |
|
- | 531 | ||
412 | stdcall [glPopMatrix] |
532 | stdcall [glEnable],GL_LIGHTING |
Line 413... | Line 533... | ||
413 | stdcall [kosglSwapBuffers] |
533 | stdcall [glEnable],GL_LIGHT0 |
414 | ret |
534 | ret |
415 | - | ||
416 | align 4 |
535 | |
Line 417... | Line 536... | ||
417 | prop_key: |
536 | align 4 |
418 | push eax |
537 | proc prop_key uses eax ebx |
419 | mcall 2 |
538 | mcall 2 |
Line 431... | Line 550... | ||
431 | test word [edit3.flags],10b |
550 | test word [edit3.flags],10b |
432 | je @f |
551 | je @f |
433 | stdcall [edit_box_key], edit3 |
552 | stdcall [edit_box_key], edit3 |
434 | jmp .end |
553 | jmp .end |
435 | @@: |
554 | @@: |
- | 555 | cmp dword[el_focus], tree3 |
|
- | 556 | jne @f |
|
436 | stdcall [tl_key], tree3 |
557 | stdcall [tl_key], tree3 |
- | 558 | jmp .end |
|
- | 559 | @@: |
|
Line 437... | Line 560... | ||
437 | 560 | ||
438 | cmp ah,178 ;Up |
561 | cmp ah,178 ;Up |
439 | jne @f |
562 | jne @f |
440 | fld dword[angle_x] |
563 | fld dword[angle_x] |
Line 466... | Line 589... | ||
466 | fstp dword[angle_y] |
589 | fstp dword[angle_y] |
467 | call draw_3d |
590 | call draw_3d |
468 | ;jmp .end |
591 | ;jmp .end |
469 | @@: |
592 | @@: |
470 | .end: |
593 | .end: |
471 | pop eax |
- | |
472 | ret |
594 | ret |
- | 595 | endp |
|
Line 473... | Line 596... | ||
473 | 596 | ||
474 | align 4 |
597 | align 4 |
475 | prop_mouse: |
598 | prop_mouse: |
- | 599 | ;push ecx edi |
|
476 | ;push ecx edi |
600 | stdcall [kmainmenu_dispatch_cursorevent], [main_menu] |
477 | stdcall [tl_mouse], tree3 |
601 | stdcall [tl_mouse], tree3 |
478 | stdcall [edit_box_mouse], edit1 |
602 | stdcall [edit_box_mouse], edit1 |
479 | stdcall [edit_box_mouse], edit2 |
603 | stdcall [edit_box_mouse], edit2 |
480 | stdcall [edit_box_mouse], edit3 |
604 | stdcall [edit_box_mouse], edit3 |
Line 555... | Line 679... | ||
555 | call draw_3d |
679 | call draw_3d |
556 | .no_select_1: |
680 | .no_select_1: |
557 | pop esi edi ecx ebx eax |
681 | pop esi edi ecx ebx eax |
558 | jmp prop_still.end |
682 | jmp prop_still.end |
559 | @@: |
683 | @@: |
- | 684 | cmp ah,5 |
|
- | 685 | jne @f |
|
- | 686 | call mnu_vertexes_on_off |
|
- | 687 | jmp prop_still.end |
|
- | 688 | @@: |
|
- | 689 | cmp ah,6 |
|
- | 690 | jne @f |
|
- | 691 | call mnu_faces_on_off |
|
- | 692 | jmp prop_still.end |
|
- | 693 | @@: |
|
- | 694 | cmp ah,7 |
|
- | 695 | jne @f |
|
- | 696 | call mnu_light_on_off |
|
- | 697 | jmp prop_still.end |
|
- | 698 | @@: |
|
Line 560... | Line 699... | ||
560 | 699 | ||
561 | cmp ah,1 |
700 | cmp ah,1 |
562 | jne prop_still.end |
701 | jne prop_still.end |
563 | .exit: |
702 | .exit: |
Line 595... | Line 734... | ||
595 | @@: |
734 | @@: |
596 | pop ebx eax |
735 | pop ebx eax |
597 | ret |
736 | ret |
Line 598... | Line 737... | ||
598 | 737 | ||
- | 738 | align 4 |
|
- | 739 | proc prop_timer_funct uses eax |
|
- | 740 | ;¯à®á¬ âਢ ¥¬ ¢ë¤¥«¥ãî ª®®à¤¨ âã |
|
- | 741 | stdcall [tl_node_get_data],tree3 |
|
- | 742 | cmp [cursor_last_draw],eax |
|
- | 743 | je @f |
|
- | 744 | mov [cursor_last_draw],eax |
|
- | 745 | call draw_3d |
|
- | 746 | @@: |
|
- | 747 | ret |
|
- | 748 | endp |
|
- | 749 | ||
- | 750 | align 4 |
|
- | 751 | mnu_vertexes_on_off: |
|
- | 752 | xor dword[draw_mode], 1 shl bit_vertexes |
|
- | 753 | ret |
|
- | 754 | ||
- | 755 | align 4 |
|
- | 756 | mnu_faces_on_off: |
|
- | 757 | xor dword[draw_mode], 1 shl bit_faces |
|
- | 758 | ret |
|
- | 759 | ||
- | 760 | align 4 |
|
- | 761 | mnu_light_on_off: |
|
- | 762 | xor dword[draw_mode], 1 shl bit_light |
|
- | 763 | ret |
|
- | 764 | ||
- | 765 | align 4 |
|
- | 766 | draw_mode dd 0 |
|
- | 767 | obj_poi_data dd 0 ;㪠§ â¥«ì ª®®à¤¨ âë ¢¥àè¨ |
|
- | 768 | obj_poi_count dd 0 ;ª®««¨ç¥á⢮ ¢¥àè¨ |
|
- | 769 | obj_tri_data dd 0 ;㪠§ â¥«ì ¤ ë¥ âà¥ã£®«ì¨ª®¢ |
|
- | 770 | obj_tri_count dd 0 ;ª®««¨ç¥á⢮ âà¥ã£®«ì¨ª®¢ |
|
599 | align 4 |
771 | cursor_last_draw dd 0 ;¯®«®¦¥¨¥ ªãàá®à ¯à¨ ¯®á«¥¤¥© ¯à®à¨á®¢ª¥ 3d ®ª |
600 | sph_radius dd 0 ;à ¤¨ãá áä¥àë ¤«ï ¢ë¤¥«¥¨ï ªâ¨¢®© â®çª¨ |
772 | sph_radius dd 0 ;à ¤¨ãá áä¥àë ¤«ï ¢ë¤¥«¥¨ï ªâ¨¢®© â®çª¨ |
601 | obj_x_max dd 0 |
773 | obj_x_max dd 0 |
602 | obj_x_min dd 0 |
774 | obj_x_min dd 0 |
603 | obj_x_centr dd 0 |
775 | obj_x_centr dd 0 |
Line 613... | Line 785... | ||
613 | 785 | ||
Line 614... | Line 786... | ||
614 | capt_p dd 0 |
786 | capt_p dd 0 |
615 | 787 | ||
616 | ;¤¥à¥¢® á ®¡ê¥ªâ ¬¨ ¢ ¯®«ì§®¢ ⥫ì᪮¬ ä ©«¥ |
788 | ;¤¥à¥¢® á ®¡ê¥ªâ ¬¨ ¢ ¯®«ì§®¢ ⥫ì᪮¬ ä ©«¥ |
617 | tree3 tree_list MAX_OBJECT_SIZE,3, tl_key_no_edit+tl_list_box_mode,\ |
789 | tree3 tree_list MAX_OBJECT_SIZE,3, tl_key_no_edit+tl_list_box_mode,\ |
Line 618... | Line 790... | ||
618 | 16,16, 0xffffff,0xb0d0ff,0x400040, 5,270,303,160, 16, 4,0, el_focus,\ |
790 | 16,16, 0xffffff,0xb0d0ff,0x400040, 5,290,303,140, 16, 4,0, el_focus,\ |
619 | w_scr_t3,get_point_coords |
791 | w_scr_t3,get_point_coords |
620 | 792 | ||
621 | edit1 edit_box 80, 76, 249, 0xffd0d0, 0xff, 0x80ff, 0, 0x8000, 34, string1, mouse_dd, 0 |
793 | edit1 edit_box 80, 76, 269, 0xffd0d0, 0xff, 0x80ff, 0, 0x8000, 34, string1, mouse_dd, 0 |
Line 622... | Line 794... | ||
622 | edit2 edit_box 80, 160, 249, 0xd0d0ff, 0xff, 0x80ff, 0, 0x8000, 34, string2, mouse_dd, 0 |
794 | edit2 edit_box 80, 160, 269, 0xd0d0ff, 0xff, 0x80ff, 0, 0x8000, 34, string2, mouse_dd, 0 |
623 | edit3 edit_box 80, 244, 249, 0xd0ffd0, 0xff, 0x80ff, 0, 0x8000, 34, string3, mouse_dd, 0 |
795 | edit3 edit_box 80, 244, 269, 0xd0ffd0, 0xff, 0x80ff, 0, 0x8000, 34, string3, mouse_dd, 0 |
624 | editboxes_end: |
796 | editboxes_end: |