Subversion Repositories Kolibri OS

Rev

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 ;㪠§ â¥«ì ­  ª®®à¤¨­ âë ¢¥à設