Rev 5935 | Rev 5944 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5935 | Rev 5938 | ||
---|---|---|---|
Line 2... | Line 2... | ||
2 | ; ¢ í⮬ ä ©«¥ ᮡà ë äãªæ¨¨ ã¦ë¥ ¤«ï ᮧ¤ ¨ï ¨ |
2 | ; ¢ í⮬ ä ©«¥ ᮡà ë äãªæ¨¨ ã¦ë¥ ¤«ï ᮧ¤ ¨ï ¨ |
3 | ; à ¡®âë ®ª á ª®®à¤¨ â ¬¨ ¢¥àè¨ |
3 | ; à ¡®âë ®ª á ª®®à¤¨ â ¬¨ ¢¥àè¨ |
4 | ; |
4 | ; |
Line 5... | Line 5... | ||
5 | 5 | ||
- | 6 | prop_wnd_width equ 340 ;è¨à¨ ®ª ᮠ᢮©á⢠¬¨ ®¡ê¥ªâ |
|
- | 7 | prop_wnd_height equ 460 ;¢ëá®â ®ª ᮠ᢮©á⢠¬¨ ®¡ê¥ªâ |
|
- | 8 | 3d_wnd_l equ 5 ;®âáâ㯠¤«ï tinygl ¡ãä¥à á«¥¢ |
|
- | 9 | 3d_wnd_t equ 23 ;®âáâ㯠¤«ï tinygl ¡ãä¥à ᢥàåã |
|
6 | prop_wnd_width equ 340 ;è¨à¨ ®ª ᮠ᢮©á⢠¬¨ ®¡ê¥ªâ |
10 | 3d_wnd_w equ 320 |
7 | prop_wnd_height equ 460 |
11 | 3d_wnd_h equ 240 |
8 | SIZE_ONE_FLOAT equ 14 |
12 | SIZE_ONE_FLOAT equ 14 |
Line 9... | Line 13... | ||
9 | MAX_OBJECT_SIZE equ (4+SIZE_ONE_FLOAT*3+1) |
13 | MAX_OBJECT_SIZE equ (4+SIZE_ONE_FLOAT*3+1) |
10 | 14 | ||
11 | bit_vertexes equ 0 |
15 | bit_vertexes equ 0 |
12 | bit_faces equ 1 |
16 | bit_faces equ 1 |
- | 17 | bit_faces_fill equ 2 |
|
- | 18 | bit_light equ 3 |
|
- | 19 | ||
- | 20 | ini_name db 'info3ds.ini',0 |
|
- | 21 | ini_sec_w3d db 'Window 3d',0 |
|
- | 22 | key_dv db 'draw_vertices',0 |
|
- | 23 | key_df db 'draw_faces',0 |
|
- | 24 | key_dff db 'draw_faces_fill',0 |
|
- | 25 | key_dl db 'draw_light',0 |
|
13 | bit_faces_fill equ 2 |
26 | key_ox db 'col_ox',0 |
- | 27 | key_oy db 'col_oy',0 |
|
- | 28 | key_oz db 'col_oz',0 |
|
- | 29 | key_bk db 'col_bkgnd',0 |
|
Line 14... | Line 30... | ||
14 | bit_light equ 3 |
30 | key_vert db 'col_vertices',0 |
Line 15... | Line 31... | ||
15 | def_dr_mode equ 0x1111b |
31 | key_face db 'col_faces',0 |
16 | 32 | ||
Line 44... | Line 60... | ||
44 | xor edx,edx |
60 | xor edx,edx |
45 | mov dword[capt_p],txt_q |
61 | mov dword[capt_p],txt_q |
46 | cmp eax,0 |
62 | cmp eax,0 |
47 | je .no_points |
63 | je .no_points |
48 | mov ebx,[eax] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ë¡à ®£® ¡«®ª |
64 | mov ebx,[eax] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ë¡à ®£® ¡«®ª |
49 | add ebx,[open_file_lif] |
65 | add ebx,[open_file_data] |
Line -... | Line 66... | ||
- | 66 | ||
- | 67 | cmp word[ebx],CHUNK_OBJBLOCK |
|
- | 68 | jne .end_oblo |
|
- | 69 | mov dword[capt_p],txt_4000 |
|
- | 70 | call found_block_data |
|
- | 71 | cmp eax,0 |
|
- | 72 | je .no_points |
|
- | 73 | mov esi,eax |
|
- | 74 | movzx ecx,byte[esi+2] ;cl - ã஢¥ì ¢ë¡à ®£® 㧫 |
|
- | 75 | .cycle_0: |
|
- | 76 | stdcall [tl_node_poi_get_next_info], tree1,esi |
|
- | 77 | cmp eax,0 |
|
- | 78 | je .no_points |
|
- | 79 | cmp byte[eax+2],cl |
|
- | 80 | jle .no_points |
|
- | 81 | mov esi,eax |
|
- | 82 | stdcall [tl_node_poi_get_data], tree1,esi |
|
- | 83 | mov ebx,[eax] |
|
- | 84 | add ebx,[open_file_data] |
|
- | 85 | cmp word[ebx],CHUNK_VERTLIST |
|
- | 86 | je .ini_vlist |
|
- | 87 | jmp .cycle_0 |
|
- | 88 | jmp .no_points |
|
- | 89 | .end_oblo: |
|
- | 90 | cmp word[ebx],CHUNK_TRIMESH |
|
- | 91 | jne .end_trim |
|
- | 92 | mov dword[capt_p],txt_4100 |
|
- | 93 | call found_block_data |
|
- | 94 | cmp eax,0 |
|
- | 95 | je .no_points |
|
- | 96 | mov esi,eax |
|
- | 97 | movzx ecx,byte[esi+2] ;cl - ã஢¥ì ¢ë¡à ®£® 㧫 |
|
- | 98 | .cycle_1: |
|
- | 99 | stdcall [tl_node_poi_get_next_info], tree1,esi |
|
- | 100 | cmp eax,0 |
|
- | 101 | je .no_points |
|
- | 102 | cmp byte[eax+2],cl |
|
- | 103 | jle .no_points |
|
- | 104 | mov esi,eax |
|
- | 105 | stdcall [tl_node_poi_get_data], tree1,esi |
|
- | 106 | mov ebx,[eax] |
|
- | 107 | add ebx,[open_file_data] |
|
- | 108 | cmp word[ebx],CHUNK_VERTLIST |
|
- | 109 | je .ini_vlist |
|
- | 110 | jmp .cycle_1 |
|
- | 111 | jmp .no_points |
|
50 | 112 | .end_trim: |
|
51 | cmp word[ebx],CHUNK_VERTLIST |
113 | cmp word[ebx],CHUNK_VERTLIST |
- | 114 | jne .end_vlist |
|
- | 115 | mov dword[capt_p],txt_4110 |
|
52 | jne .end_vlist |
116 | .ini_vlist: |
53 | movzx edx,word[ebx+6] ;ª®««¨ç¥á⢮ â®ç¥ª |
117 | movzx edx,word[ebx+6] ;ª®««¨ç¥á⢮ â®ç¥ª |
54 | add ebx,8 |
- | |
55 | mov dword[capt_p],txt_4110 |
118 | add ebx,8 |
56 | ;¯®¨áª ¤ ëå ¤«ï âà¥ã£®«ìª®¢ |
- | |
57 | mov ecx,eax |
- | |
58 | stdcall [tl_node_poi_get_info], tree1,0 |
- | |
59 | @@: |
- | |
60 | mov esi,eax |
119 | ;¯®¨áª ¤ ëå ¤«ï âà¥ã£®«ìª®¢ |
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 |
120 | call found_block_data |
65 | cmp eax,0 |
- | |
66 | jne @b |
121 | cmp eax,0 |
67 | jmp .set_points |
122 | je .set_points |
68 | @@: |
123 | mov esi,eax |
69 | ;¥á«¨ 諨 ¢ë¡à ë© ã§¥«, â® ¤ «¥¥ ¯ëâ ¥¬áï ©â¨ ã§¥« á âà¥ã£®«ì¨ª ¬¨ |
124 | ;¥á«¨ 諨 ¢ë¡à ë© ã§¥«, â® ¤ «¥¥ ¯ëâ ¥¬áï ©â¨ ã§¥« á âà¥ã£®«ì¨ª ¬¨ |
70 | movzx ecx,byte[esi+2] ;cl - ã஢¥ì ¢ë¡à ®£® 㧫 |
125 | movzx ecx,byte[esi+2] ;cl - ã஢¥ì ¢ë¡à ®£® 㧫 |
71 | .cycle_0: |
126 | .cycle_2: |
72 | stdcall [tl_node_poi_get_next_info], tree1,esi |
127 | stdcall [tl_node_poi_get_next_info], tree1,esi |
73 | cmp eax,0 |
128 | cmp eax,0 |
74 | je .set_points |
129 | je .set_points |
75 | mov esi,eax |
130 | mov esi,eax |
76 | stdcall [tl_node_poi_get_data], tree1,esi |
131 | stdcall [tl_node_poi_get_data], tree1,esi |
77 | cmp byte[esi+2],cl |
132 | cmp byte[esi+2],cl |
78 | jl .set_points |
133 | jl .set_points |
79 | je .found |
134 | je .found |
80 | jmp .cycle_0 |
135 | jmp .cycle_2 |
81 | .found: ;¥á«¨ 諨 㧥« ⮣®¦¥ ã஢ï çâ® ¨ ¢ë¡à ë© ã§¥« |
136 | .found: ;¥á«¨ 諨 㧥« ⮣®¦¥ ã஢ï çâ® ¨ ¢ë¡à ë© ã§¥« |
82 | cmp eax,0 |
137 | cmp eax,0 |
83 | je .set_points |
138 | je .set_points |
84 | mov eax,[eax] |
139 | mov eax,[eax] |
85 | add eax,[open_file_lif] |
140 | add eax,[open_file_data] |
86 | cmp word[eax],CHUNK_FACELIST |
141 | cmp word[eax],CHUNK_FACELIST |
87 | jne .cycle_0 |
142 | jne .cycle_2 |
88 | movzx ecx,word[eax+6] |
143 | movzx ecx,word[eax+6] |
89 | mov [obj_tri_count],ecx |
144 | mov [obj_tri_count],ecx |
90 | add eax,8 ;2+4+2 (chunk+size+count) |
145 | add eax,8 ;2+4+2 (chunk+size+count) |
91 | mov [obj_tri_data],eax |
146 | mov [obj_tri_data],eax |
Line 153... | Line 208... | ||
153 | call obj_set_sizes |
208 | call obj_set_sizes |
154 | edit_boxes_set_sys_color edit1,editboxes_end,sc ;ãáâ ®¢ª á¨á⥬ëå 梥⮢ |
209 | edit_boxes_set_sys_color edit1,editboxes_end,sc ;ãáâ ®¢ª á¨á⥬ëå 梥⮢ |
155 | stdcall [edit_box_set_text], edit1, txt_q |
210 | stdcall [edit_box_set_text], edit1, txt_q |
156 | stdcall [edit_box_set_text], edit2, txt_q |
211 | stdcall [edit_box_set_text], edit2, txt_q |
157 | stdcall [edit_box_set_text], edit3, txt_q |
212 | stdcall [edit_box_set_text], edit3, txt_q |
- | 213 | mov eax,0xc0c0c0 |
|
- | 214 | mov ebx,[color_ox] |
|
- | 215 | shr ebx,2 |
|
- | 216 | and ebx,0x3f3f3f |
|
- | 217 | add eax,ebx |
|
- | 218 | mov [edit1.color],eax |
|
- | 219 | mov eax,0xc0c0c0 |
|
- | 220 | mov ebx,[color_oy] |
|
- | 221 | shr ebx,2 |
|
- | 222 | and ebx,0x3f3f3f |
|
- | 223 | add eax,ebx |
|
- | 224 | mov [edit2.color],eax |
|
- | 225 | mov eax,0xc0c0c0 |
|
- | 226 | mov ebx,[color_oz] |
|
- | 227 | shr ebx,2 |
|
- | 228 | and ebx,0x3f3f3f |
|
- | 229 | add eax,ebx |
|
- | 230 | mov [edit3.color],eax |
|
158 | popad |
231 | popad |
Line 159... | Line 232... | ||
159 | 232 | ||
Line 160... | Line 233... | ||
160 | call prop_red_win |
233 | call prop_red_win |
Line 205... | Line 278... | ||
205 | mov bx,prop_wnd_width |
278 | mov bx,prop_wnd_width |
206 | mov cx,word[procinfo.box.top] |
279 | mov cx,word[procinfo.box.top] |
207 | add cx,word[buf_0.t] |
280 | add cx,word[buf_0.t] |
208 | shl ecx,16 |
281 | shl ecx,16 |
209 | mov cx,prop_wnd_height |
282 | mov cx,prop_wnd_height |
- | 283 | mov edx,[sc.work] |
|
210 | mov edx,0xffffd0+0x33000000 |
284 | or edx,0x33000000 |
211 | int 0x40 |
285 | int 0x40 |
Line 212... | Line 286... | ||
212 | 286 | ||
213 | mov esi,[sc.work_button] |
287 | mov esi,[sc.work_button] |
214 | mcall 8, (5 shl 16)+20, (266 shl 16)+20, 3 |
288 | mcall 8, (5 shl 16)+20, (266 shl 16)+20, 3 |
Line 215... | Line 289... | ||
215 | mcall , (30 shl 16)+20, (266 shl 16)+20, 4 |
289 | mcall , (30 shl 16)+20, (266 shl 16)+20, 4 |
216 | 290 | ||
217 | mov ebx,[image_data_toolbar] |
291 | mov ebx,[image_data_toolbar] |
Line 218... | Line 292... | ||
218 | add ebx,4*IMAGE_TOOLBAR_ICON_SIZE |
292 | add ebx,3*IMAGE_TOOLBAR_ICON_SIZE |
219 | mcall 7, , (16 shl 16)+16, (7 shl 16)+268 ;load |
293 | mcall 7, , (16 shl 16)+16, (7 shl 16)+268 ;load |
220 | 294 | ||
Line 236... | Line 310... | ||
236 | ret |
310 | ret |
Line 237... | Line 311... | ||
237 | 311 | ||
238 | ;ãáâ ®¢ª ¢á¥å ®á®¢ëå ¯¥à¥¬¥ëå ¯® 㬮«ç ¨î |
312 | ;ãáâ ®¢ª ¢á¥å ®á®¢ëå ¯¥à¥¬¥ëå ¯® 㬮«ç ¨î |
239 | align 4 |
313 | align 4 |
240 | prop_wnd_clear_param: |
314 | prop_wnd_clear_param: |
241 | mov dword[angle_x],0.0 |
315 | ;ãáâ ®¢ª ¯ à ¬¥â஢ ®â®¡à ¦¥¨ï |
- | 316 | call mnu_reset_settings |
|
242 | mov dword[angle_y],0.0 |
317 | |
243 | mov dword[angle_z],0.0 |
318 | ;®¡ã«¥¨¥ 㪠§ ⥫¥© ¤ ë¥ ®¡ê¥ªâ®¢ |
244 | mov dword[obj_poi_data],0 |
319 | mov dword[obj_poi_data],0 |
245 | mov dword[obj_poi_count],0 |
320 | mov dword[obj_poi_count],0 |
246 | mov dword[obj_tri_data],0 |
321 | mov dword[obj_tri_data],0 |
- | 322 | mov dword[obj_tri_count],0 |
|
- | 323 | ret |
|
- | 324 | ||
- | 325 | ;¯®¨áª ¤ ëå |
|
- | 326 | ;input: |
|
- | 327 | ;eax - ⥪ã騩 㧥« |
|
- | 328 | ;output: |
|
- | 329 | ;eax - áâàãªâãà ⥪ã饣® 㧫 (¨«¨ 0 ¯à¨ ¥ã¤ ç¥) |
|
- | 330 | align 4 |
|
- | 331 | found_block_data: |
|
- | 332 | push ebx ecx |
|
- | 333 | mov ecx,eax |
|
- | 334 | stdcall [tl_node_poi_get_info], tree1,0 |
|
- | 335 | @@: |
|
247 | mov dword[obj_tri_count],0 |
336 | mov ebx,eax |
- | 337 | stdcall [tl_node_poi_get_data], tree1,ebx |
|
- | 338 | cmp eax,ecx |
|
- | 339 | je @f ;¥á«¨ ¯®¯ «¨ ¢ë¡à ë© ã§¥« |
|
- | 340 | stdcall [tl_node_poi_get_next_info], tree1,ebx |
|
- | 341 | cmp eax,0 |
|
- | 342 | jne @b |
|
- | 343 | jmp .end |
|
- | 344 | @@: |
|
- | 345 | mov eax,ebx |
|
- | 346 | .end: |
|
248 | mov dword[draw_mode],def_dr_mode |
347 | pop ecx ebx |
Line 249... | Line 348... | ||
249 | ret |
348 | ret |
250 | 349 | ||
251 | ;ãáâ ®¢ª à §¬¥à®¢ ®¡ê¥ªâ |
350 | ;ãáâ ®¢ª à §¬¥à®¢ ®¡ê¥ªâ |
Line 416... | Line 515... | ||
416 | ;à¨á®¢ ¨¥ â®ç¥ª ¢ 3d |
515 | ;à¨á®¢ ¨¥ â®ç¥ª ¢ 3d |
417 | align 4 |
516 | align 4 |
418 | draw_3d: |
517 | draw_3d: |
419 | cmp dword[obj_poi_count],2 |
518 | cmp dword[obj_poi_count],2 |
420 | jl .end_f |
519 | jl .end_f |
421 | - | ||
422 | stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;®ç¨á⨬ ¡ãä¥à 梥⠨ £«ã¡¨ë |
520 | stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;®ç¨á⨬ ¡ãä¥à 梥⠨ £«ã¡¨ë |
423 | stdcall [glPushMatrix] |
521 | stdcall [glPushMatrix] |
424 | bt dword[draw_mode],bit_light |
522 | bt dword[draw_mode],bit_light |
425 | jnc @f |
523 | jnc @f |
426 | call SetLight |
524 | call SetLight |
Line 437... | Line 535... | ||
437 | stdcall [glTranslatef], [obj_x_centr],[obj_y_centr],[obj_z_centr] |
535 | stdcall [glTranslatef], [obj_x_centr],[obj_y_centr],[obj_z_centr] |
Line 438... | Line 536... | ||
438 | 536 | ||
439 | ;à¨á®¢ ¨¥ â®ç¥ª |
537 | ;à¨á®¢ ¨¥ â®ç¥ª |
440 | bt dword[draw_mode],bit_vertexes |
538 | bt dword[draw_mode],bit_vertexes |
441 | jnc .end_points |
539 | jnc .end_points |
442 | stdcall [glColor3f], 1.0,1.0,1.0 |
540 | stdcall [glColor3ub],[color_vert+2],[color_vert+1],[color_vert] |
443 | stdcall [glBegin],GL_POINTS |
541 | stdcall [glBegin],GL_POINTS |
444 | mov eax,[obj_poi_data] |
542 | mov eax,[obj_poi_data] |
445 | mov ebx,[obj_poi_count] |
543 | mov ebx,[obj_poi_count] |
446 | @@: |
544 | @@: |
Line 457... | Line 555... | ||
457 | je @f |
555 | je @f |
458 | ;¢ë¤¥«¥¨¥ ªâ¨¢®© â®çª¨ |
556 | ;¢ë¤¥«¥¨¥ ªâ¨¢®© â®çª¨ |
459 | mov eax,[eax] |
557 | mov eax,[eax] |
Line 460... | Line 558... | ||
460 | 558 | ||
461 | stdcall [glBegin],GL_LINES |
559 | stdcall [glBegin],GL_LINES |
462 | stdcall [glColor3f], 1.0, 0.0, 0.0 |
560 | stdcall [glColor3ub],[color_ox+2],[color_ox+1],[color_ox] |
463 | stdcall [glVertex3f], [obj_x_min],[eax+4],[eax+8] |
561 | stdcall [glVertex3f], [obj_x_min],[eax+4],[eax+8] |
464 | stdcall [glVertex3f], [obj_x_max],[eax+4],[eax+8] |
562 | stdcall [glVertex3f], [obj_x_max],[eax+4],[eax+8] |
465 | stdcall [glColor3f], 0.0, 0.0, 1.0 |
563 | stdcall [glColor3ub],[color_oy+2],[color_oy+1],[color_oy] |
466 | stdcall [glVertex3f], [eax],[obj_y_min],[eax+8] |
564 | stdcall [glVertex3f], [eax],[obj_y_min],[eax+8] |
467 | stdcall [glVertex3f], [eax],[obj_y_max],[eax+8] |
565 | stdcall [glVertex3f], [eax],[obj_y_max],[eax+8] |
468 | stdcall [glColor3f], 0.0, 1.0, 0.0 |
566 | stdcall [glColor3ub],[color_oz+2],[color_oz+1],[color_oz] |
469 | stdcall [glVertex3f], [eax],[eax+4],[obj_z_min] |
567 | stdcall [glVertex3f], [eax],[eax+4],[obj_z_min] |
470 | stdcall [glVertex3f], [eax],[eax+4],[obj_z_max] |
568 | stdcall [glVertex3f], [eax],[eax+4],[obj_z_max] |
Line 471... | Line 569... | ||
471 | stdcall [glEnd] |
569 | stdcall [glEnd] |
Line 482... | Line 580... | ||
482 | jnc .end_triangles |
580 | jnc .end_triangles |
483 | cmp dword[obj_tri_count],0 |
581 | cmp dword[obj_tri_count],0 |
484 | je .end_triangles |
582 | je .end_triangles |
485 | cmp dword[obj_poi_count],0 |
583 | cmp dword[obj_poi_count],0 |
486 | je .end_triangles |
584 | je .end_triangles |
487 | stdcall [glColor3f], 0.5,0.5,0.5 |
- | |
488 | ;bt dword[draw_mode],bit_faces_fill |
585 | bt dword[draw_mode],bit_faces_fill |
489 | ;jnc @f |
586 | jc @f |
- | 587 | push GL_LINE |
|
- | 588 | jmp .end_0 |
|
490 | ;@@: |
589 | @@: |
- | 590 | push GL_FILL |
|
- | 591 | .end_0: |
|
- | 592 | stdcall [glPolygonMode], GL_FRONT_AND_BACK ;mode - 㦥 ¢ á⥪¥ |
|
- | 593 | stdcall [glColor3ub],[color_face+2],[color_face+1],[color_face] |
|
491 | stdcall [glBegin],GL_TRIANGLES |
594 | stdcall [glBegin],GL_TRIANGLES |
492 | mov eax,[obj_tri_data] |
595 | mov eax,[obj_tri_data] |
493 | mov ecx,[obj_tri_count] |
596 | mov ecx,[obj_tri_count] |
494 | @@: |
597 | @@: |
495 | movzx ebx,word[eax] ;1-ï ¢¥àè¨ |
598 | movzx ebx,word[eax] ;1-ï ¢¥àè¨ |
Line 594... | Line 697... | ||
594 | ret |
697 | ret |
595 | endp |
698 | endp |
Line 596... | Line 699... | ||
596 | 699 | ||
597 | align 4 |
700 | align 4 |
598 | prop_mouse: |
701 | prop_mouse: |
- | 702 | push eax ebx |
|
- | 703 | mcall 37,3 |
|
- | 704 | bt eax,0 |
|
- | 705 | jnc .end_m |
|
- | 706 | ;mouse l. but. move |
|
- | 707 | cmp dword[mouse_drag],1 |
|
- | 708 | jne .end_m |
|
- | 709 | mcall 37,1 ;get mouse coords |
|
- | 710 | mov ebx,eax |
|
- | 711 | shr ebx,16 ;mouse.x |
|
- | 712 | cmp ebx,3d_wnd_l |
|
- | 713 | jg @f |
|
- | 714 | mov ebx,3d_wnd_l |
|
- | 715 | @@: |
|
- | 716 | sub ebx,3d_wnd_l |
|
- | 717 | cmp ebx,3d_wnd_w |
|
- | 718 | jle @f |
|
- | 719 | mov ebx,3d_wnd_w |
|
- | 720 | @@: |
|
- | 721 | and eax,0xffff ;mouse.y |
|
- | 722 | cmp eax,3d_wnd_t |
|
- | 723 | jg @f |
|
- | 724 | mov eax,3d_wnd_t |
|
- | 725 | @@: |
|
- | 726 | sub eax,3d_wnd_t |
|
- | 727 | cmp eax,3d_wnd_h |
|
- | 728 | jle @f |
|
- | 729 | mov eax,3d_wnd_h |
|
- | 730 | @@: |
|
- | 731 | finit |
|
- | 732 | fild dword[mouse_y] |
|
- | 733 | mov [mouse_y],eax |
|
- | 734 | fisub dword[mouse_y] |
|
- | 735 | fdiv dword[angle_dxm] ;¥á«¨ ªãàá®à ¤¢¨¦¥âáï ¯® ®á¨ y (¢¢¥àå ¨«¨ ¢¨§) â® ¯®¢®à®â ¤¥« ¥¬ ¢®ªà㣠®á¨ x |
|
- | 736 | fadd dword[angle_x] |
|
- | 737 | fstp dword[angle_x] |
|
- | 738 | ||
- | 739 | fild dword[mouse_x] |
|
- | 740 | mov [mouse_x],ebx |
|
- | 741 | fisub dword[mouse_x] |
|
- | 742 | fdiv dword[angle_dym] ;¥á«¨ ªãàá®à ¤¢¨¦¥âáï ¯® ®á¨ x (¢¢¥àå ¨«¨ ¢¨§) â® ¯®¢®à®â ¤¥« ¥¬ ¢®ªà㣠®á¨ y |
|
- | 743 | fadd dword[angle_y] |
|
- | 744 | fstp dword[angle_y] |
|
- | 745 | ||
- | 746 | call draw_3d |
|
- | 747 | jmp .end_d |
|
- | 748 | .end_m: |
|
- | 749 | bt eax,16 |
|
- | 750 | jnc @f |
|
- | 751 | ;mouse l. but. up |
|
- | 752 | mov dword[mouse_drag],0 |
|
- | 753 | jmp .end_d |
|
- | 754 | @@: |
|
- | 755 | bt eax,8 |
|
- | 756 | jnc .end_d |
|
- | 757 | ;mouse l. but. press |
|
- | 758 | mcall 37,1 ;get mouse coords |
|
- | 759 | mov ebx,eax |
|
- | 760 | shr ebx,16 ;mouse.x |
|
- | 761 | cmp ebx,3d_wnd_l |
|
- | 762 | jl .end_d |
|
- | 763 | sub ebx,3d_wnd_l |
|
- | 764 | cmp ebx,3d_wnd_w |
|
- | 765 | jg .end_d |
|
- | 766 | and eax,0xffff ;mouse.y |
|
- | 767 | cmp eax,3d_wnd_t |
|
- | 768 | jl .end_d |
|
- | 769 | sub eax,3d_wnd_t |
|
- | 770 | cmp eax,3d_wnd_h |
|
- | 771 | jg .end_d |
|
- | 772 | mov dword[mouse_drag],1 |
|
- | 773 | mov dword[mouse_x],ebx |
|
- | 774 | mov dword[mouse_y],eax |
|
- | 775 | .end_d: |
|
599 | ;push ecx edi |
776 | |
600 | stdcall [kmainmenu_dispatch_cursorevent], [main_menu] |
777 | stdcall [kmainmenu_dispatch_cursorevent], [main_menu] |
601 | stdcall [tl_mouse], tree3 |
778 | stdcall [tl_mouse], tree3 |
602 | stdcall [edit_box_mouse], edit1 |
779 | stdcall [edit_box_mouse], edit1 |
603 | stdcall [edit_box_mouse], edit2 |
780 | stdcall [edit_box_mouse], edit2 |
604 | stdcall [edit_box_mouse], edit3 |
781 | stdcall [edit_box_mouse], edit3 |
605 | ;pop edi ecx |
782 | pop ebx eax |
Line 606... | Line 783... | ||
606 | ret |
783 | ret |
607 | 784 | ||
608 | align 4 |
785 | align 4 |
Line 691... | Line 868... | ||
691 | call mnu_faces_on_off |
868 | call mnu_faces_on_off |
692 | jmp prop_still.end |
869 | jmp prop_still.end |
693 | @@: |
870 | @@: |
694 | cmp ah,7 |
871 | cmp ah,7 |
695 | jne @f |
872 | jne @f |
- | 873 | call mnu_faces_fill_on_off |
|
- | 874 | jmp prop_still.end |
|
- | 875 | @@: |
|
- | 876 | cmp ah,8 |
|
- | 877 | jne @f |
|
696 | call mnu_light_on_off |
878 | call mnu_light_on_off |
697 | jmp prop_still.end |
879 | jmp prop_still.end |
698 | @@: |
880 | @@: |
- | 881 | cmp ah,9 |
|
- | 882 | jne @f |
|
- | 883 | call mnu_reset_settings |
|
- | 884 | jmp prop_still.end |
|
- | 885 | @@: |
|
Line 699... | Line 886... | ||
699 | 886 | ||
700 | cmp ah,1 |
887 | cmp ah,1 |
701 | jne prop_still.end |
888 | jne prop_still.end |
702 | .exit: |
889 | .exit: |
Line 745... | Line 932... | ||
745 | call draw_3d |
932 | call draw_3d |
746 | @@: |
933 | @@: |
747 | ret |
934 | ret |
748 | endp |
935 | endp |
Line -... | Line 936... | ||
- | 936 | ||
749 | 937 | ;¨§¬¥ï¥¬ ०¨¬ à¨á®¢ ¨ï ¢¥àè¨ |
|
750 | align 4 |
938 | align 4 |
751 | mnu_vertexes_on_off: |
939 | mnu_vertexes_on_off: |
752 | xor dword[draw_mode], 1 shl bit_vertexes |
940 | xor dword[draw_mode], 1 shl bit_vertexes |
Line -... | Line 941... | ||
- | 941 | ret |
|
753 | ret |
942 | |
754 | 943 | ;¨§¬¥ï¥¬ ०¨¬ à¨á®¢ ¨ï £à ¥© |
|
755 | align 4 |
944 | align 4 |
756 | mnu_faces_on_off: |
945 | mnu_faces_on_off: |
Line -... | Line 946... | ||
- | 946 | xor dword[draw_mode], 1 shl bit_faces |
|
- | 947 | ret |
|
- | 948 | ||
- | 949 | ;¨§¬¥ï¥¬ ª ઠáë¥ ¨«¨ ᯫ®èë¥ £à ¨ |
|
- | 950 | align 4 |
|
- | 951 | mnu_faces_fill_on_off: |
|
- | 952 | xor dword[draw_mode], 1 shl bit_faces_fill |
|
- | 953 | or dword[draw_mode], 1 shl bit_faces ;¢ª«îç ¥¬ ०¨¬ à¨á®¢ ¨ï £à ¥© (¥á«¨ ¢¤à㣠¡ë« ®âª«îç¥) |
|
757 | xor dword[draw_mode], 1 shl bit_faces |
954 | ret |
758 | ret |
955 | |
759 | 956 | ;¢ª«îç ¥¬ ¨«¨ ®âª«îç ¥¬ ®á¢¥é¥¨¥ |
|
760 | align 4 |
957 | align 4 |
Line 761... | Line 958... | ||
761 | mnu_light_on_off: |
958 | mnu_light_on_off: |
- | 959 | xor dword[draw_mode], 1 shl bit_light |
|
- | 960 | ret |
|
- | 961 | ||
- | 962 | align 4 |
|
- | 963 | mnu_reset_settings: |
|
- | 964 | mov dword[angle_x],0.0 |
|
- | 965 | mov dword[angle_y],0.0 |
|
- | 966 | mov dword[angle_z],0.0 |
|
- | 967 | m2m dword[draw_mode],dword[def_dr_mode] |
|
- | 968 | ret |
|
- | 969 | ||
- | 970 | align 4 |
|
762 | xor dword[draw_mode], 1 shl bit_light |
971 | def_dr_mode dd 0 ;०¨¬ à¨á®¢ ¨ï ¯® 㬮«ç ¨î |
- | 972 | delt_size dd 3.0 ;¨§¬¥¥¨¥ 㣫®¢ ¯à¨ ¯®¢®à®â å á ª«¨¢¨ âãàë |
|
- | 973 | mouse_drag dd 0 ;०¨¬ ¯®¢®à®â áæ¥ë ®â ¯¥à¥¬¥é¥¨¨ ªãàá®à ¬ëè¨ |
|
- | 974 | mouse_x dd 0 |
|
- | 975 | mouse_y dd 0 |
|
763 | ret |
976 | angle_dxm dd 1.7775 ;~ 3d_wnd_w/180 - ¯à¨¡ ¢«¥¨¥ 㣫®¢ ¯®¢®à®â áæ¥ë ¯à¨ ¢à 饨¨ ¬ë襩 |
764 | 977 | angle_dym dd 1.3335 ;~ 3d_wnd_h/180 |
|
765 | align 4 |
978 | ;angle_dzm dd ? |
766 | draw_mode dd 0 |
979 | draw_mode dd 0 ;०¨¬ à¨á®¢ ¨ï ®¡ê¥ªâ |
767 | obj_poi_data dd 0 ;㪠§ â¥«ì ª®®à¤¨ âë ¢¥àè¨ |
980 | obj_poi_data dd 0 ;㪠§ â¥«ì ª®®à¤¨ âë ¢¥àè¨ |