Subversion Repositories Kolibri OS

Rev

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: