Subversion Repositories Kolibri OS

Rev

Rev 6060 | Rev 6083 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6060 Rev 6081
Line 59... Line 59...
59
image_data_toolbar dd 0
59
image_data_toolbar dd 0
60
;
60
;
61
TREE_ICON_SYS16_BMP_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*11+54 ;à §¬¥à bmp ä ©«  á á¨á⥬­ë¬¨ ¨ª®­ª ¬¨
61
TREE_ICON_SYS16_BMP_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*11+54 ;à §¬¥à bmp ä ©«  á á¨á⥬­ë¬¨ ¨ª®­ª ¬¨
62
icon_tl_sys dd 0 ;㪠§ â¥¥«ì ­  ¯ ¬ïâì ¤«ï åà ­¥­¨ï á¨á⥬­ëå ¨ª®­®ª
62
icon_tl_sys dd 0 ;㪠§ â¥¥«ì ­  ¯ ¬ïâì ¤«ï åà ­¥­¨ï á¨á⥬­ëå ¨ª®­®ª
63
icon_toolbar dd 0 ;㪠§ â¥¥«ì ­  ¯ ¬ïâì ¤«ï åà ­¥­¨ï ¨ª®­®ª ®¡ê¥ªâ®¢
63
icon_toolbar dd 0 ;㪠§ â¥¥«ì ­  ¯ ¬ïâì ¤«ï åà ­¥­¨ï ¨ª®­®ª ®¡ê¥ªâ®¢
64
IMAGE_CHUNKS_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*10+54 ;à §¬¥à bmp ä ©«  á ¨ª®­ª ¬¨ ®¡ê¥ªâ®¢
64
IMAGE_CHUNKS_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*12+54 ;à §¬¥à bmp ä ©«  á ¨ª®­ª ¬¨ ®¡ê¥ªâ®¢
65
;
65
;
66
IMAGE_FILE1_SIZE equ 128*144*3+54 ;à §¬¥à ä ©«  á ¨§®¡à ¦¥­¨¥¬
66
IMAGE_FILE1_SIZE equ 128*144*3+54 ;à §¬¥à ä ©«  á ¨§®¡à ¦¥­¨¥¬
Line 67... Line 67...
67
 
67
 
68
macro load_image_file path,buf,size { ;¬ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥­¨©
68
macro load_image_file path,buf,size { ;¬ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥­¨©
Line 318... Line 318...
318
	bt eax,0
318
	bt eax,0
319
	jnc .end_m
319
	jnc .end_m
320
		;mouse l. but. move
320
		;mouse l. but. move
321
		cmp dword[mouse_drag],1
321
		cmp dword[mouse_drag],1
322
		jne .end_m
322
		jne .end_m
-
 
323
 
-
 
324
		stdcall [tl_node_get_data],tree1
-
 
325
		cmp eax,0
-
 
326
		je .end_d
-
 
327
			mov ebx,dword[eax]
-
 
328
			add ebx,dword[open_file_data] ;¯®«ãç ¥¬ §­ ç¥­¨¥ ᤢ¨£  ¢ ¯ ¬ïâ¨
-
 
329
			cmp word[ebx],CHUNK_OBJBLOCK
-
 
330
			jne .end_d
-
 
331
 
323
		mcall SF_MOUSE_GET,SSF_WINDOW_POSITION
332
		mcall SF_MOUSE_GET,SSF_WINDOW_POSITION
324
		mov ebx,eax
333
		mov ebx,eax
325
		shr ebx,16 ;mouse.x
334
		shr ebx,16 ;mouse.x
326
		cmp ebx,3d_wnd_l
335
		cmp ebx,3d_wnd_l
327
		jg @f
336
		jg @f
Line 356... Line 365...
356
		fdiv dword[angle_dym] ;¥á«¨ ªãàá®à ¤¢¨¦¥âáï ¯® ®á¨ x (¢¢¥àå ¨«¨ ¢­¨§) â® ¯®¢®à®â ¤¥« ¥¬ ¢®ªà㣠®á¨ y
365
		fdiv dword[angle_dym] ;¥á«¨ ªãàá®à ¤¢¨¦¥âáï ¯® ®á¨ x (¢¢¥àå ¨«¨ ¢­¨§) â® ¯®¢®à®â ¤¥« ¥¬ ¢®ªà㣠®á¨ y
357
		fadd dword[angle_y]
366
		fadd dword[angle_y]
358
		fstp dword[angle_y]
367
		fstp dword[angle_y]
Line 359... Line 368...
359
 
368
 
360
		stdcall [tl_node_get_data],tree1
369
		stdcall [tl_node_get_data],tree1
361
		cmp eax,0
-
 
362
		je .end_d
370
		;cmp eax,0 - ­¥ ­ ¤®, ¡ë«® ᤥ« ­® ¢ëè¥
363
		add eax,list_offs_obj3d
371
		add eax,list_offs_obj3d
364
		stdcall draw_3d, eax
372
		stdcall draw_3d, eax
365
		jmp .end_d
373
		jmp .end_d
366
	.end_m:
374
	.end_m:
Line 408... Line 416...
408
	cmp eax,0
416
	cmp eax,0
409
	je .end_f
417
	je .end_f
410
		mov edi,eax
418
		mov edi,eax
411
		add edi,list_offs_obj3d
419
		add edi,list_offs_obj3d
412
		mov ebx,eax
420
		mov ebx,eax
413
		mov eax,dword[ebx] ;¯®«ãç ¥¬ §­ ç¥­¨¥ ᤢ¨£  ¢ë¡à ­­®£® ¡«®ª  ®â­®á¨â¥«ì­® ­ ç «  ä ©« 
421
		mov eax,dword[ebx]
414
		mov ecx,dword[ebx+4] ;à §¬¥à ¡«®ª 
422
		mov ecx,dword[ebx+4] ;à §¬¥à ¡«®ª 
415
		stdcall hex_in_str, txt_3ds_offs.dig, eax,8
423
		stdcall hex_in_str, txt_3ds_offs.dig, eax,8
416
		stdcall hex_in_str, txt_3ds_offs.siz, ecx,8
424
		stdcall hex_in_str, txt_3ds_offs.siz, ecx,8
Line 417... Line 425...
417
 
425
 
Line 432... Line 440...
432
				cmp dword[edi+offs_obj_poi_count],2
440
				cmp dword[edi+offs_obj_poi_count],2
433
				jl .end_f
441
				jl .end_f
434
					call mnu_reset_settings ;á¡à®á 㣫®¢ ¯®¢®à®â  ¨ ०¨¬®¢ à¨á®¢ ­¨ï
442
					call mnu_reset_settings ;á¡à®á 㣫®¢ ¯®¢®à®â  ¨ ०¨¬®¢ à¨á®¢ ­¨ï
435
				jmp .end_f
443
				jmp .end_f
436
			.end_oblo:
444
			.end_oblo:
-
 
445
 
-
 
446
			cmp word[eax],CHUNK_MATERIAL
-
 
447
			jne .end_mblo
-
 
448
			cmp dword[edi+offs_mat_name],0
-
 
449
			je .ini_mblo
-
 
450
				stdcall draw_material,edi
-
 
451
				jmp .end_f
-
 
452
			.ini_mblo:
-
 
453
				stdcall mat_init,edi ;¯®¯ë⪠ ­ áâநâì ¤ ­­ë¥ ¬ â¥à¨ « 
-
 
454
				cmp dword[edi+offs_mat_name],0
-
 
455
				je .end_f
-
 
456
					stdcall draw_material,edi
-
 
457
				jmp .end_f
-
 
458
			.end_mblo:
-
 
459
 
437
			call buf_draw_beg
460
			stdcall buf_draw_beg, buf_ogl
438
			stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_3ds_offs,5,35,0xb000
461
			stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_3ds_offs,5,35,0xb000
439
			mov edx,dword[ebx+list_offs_p_data]
462
			mov edx,dword[ebx+list_offs_p_data]
440
			cmp edx,0 ;ᬮâਬ ¥áâì «¨ ®¯¨á ­¨¥ ¡«®ª 
463
			cmp edx,0 ;ᬮâਬ ¥áâì «¨ ®¯¨á ­¨¥ ¡«®ª 
441
			je .no_info
464
			je .no_info
442
				stdcall [buf2d_draw_text], buf_ogl, buf_1,edx,5,45,0xb000
465
				stdcall [buf2d_draw_text], buf_ogl, buf_1,edx,5,45,0xb000
Line 445... Line 468...
445
	.end_f:
468
	.end_f:
446
	popad
469
	popad
447
	jmp still
470
	jmp still
Line 448... Line 471...
448
 
471
 
449
align 4
-
 
450
buf_draw_beg:
-
 
451
	stdcall [buf2d_clear], buf_ogl, [buf_ogl.color] ;ç¨á⨬ ¡ãä¥à
-
 
452
	stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_open_3ds,5,5,0xff
-
 
453
	stdcall [buf2d_draw_text], buf_ogl, buf_1,openfile_path,5,15,0xff
-
 
454
	cmp dword[level_stack],FILE_ERROR_CHUNK_SIZE ;¢®§¬®¦­  ®è¨¡ª  ä ©« 
-
 
455
	jne @f
-
 
456
		stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_3ds_err_sizes,5,25,0xff0000
-
 
457
	@@:
-
 
458
	ret
-
 
459
 
-
 
460
align 4
472
align 4
461
draw_window:
473
draw_window:
462
pushad
474
pushad
463
	mcall SF_REDRAW,SSF_BEGIN_DRAW
475
	mcall SF_REDRAW,SSF_BEGIN_DRAW
464
	mov edx,[sc.work]
476
	mov edx,[sc.work]
Line 713... Line 725...
713
	stdcall [tl_info_clear], tree1 ;®ç¨á⪠ ᯨ᪠ ®¡ê¥ªâ®¢
725
	stdcall [tl_info_clear], tree1 ;®ç¨á⪠ ᯨ᪠ ®¡ê¥ªâ®¢
Line 714... Line 726...
714
 
726
 
715
	mov esi,dword[open_file_data]
727
	mov esi,dword[open_file_data]
716
	cmp word[esi],CHUNK_MAIN
728
	cmp word[esi],CHUNK_MAIN
717
	je @f
729
	je @f
718
		call buf_draw_beg
730
		stdcall buf_draw_beg, buf_ogl
719
		stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_no_3ds,5,25,0xff0000 ;à¨á㥬 áâபã á ⥪á⮬
731
		stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_no_3ds,5,25,0xff0000 ;à¨á㥬 áâபã á ⥪á⮬
720
		jmp .end_open
732
		jmp .end_open
721
	@@:
733
	@@:
722
	;--- ®¡à ¡®âª  ®âªàë⮣® *.3ds ä ©« 
734
	;--- ®¡à ¡®âª  ®âªàë⮣® *.3ds ä ©« 
Line 736... Line 748...
736
		cmp esi,edi ;¥á«¨ ª®­¥æ ä ©« 
748
		cmp esi,edi ;¥á«¨ ª®­¥æ ä ©« 
737
		jge .end_cycle
749
		jge .end_cycle
Line 738... Line 750...
738
 
750
 
739
		mov edx,dword[esi+2] ;à §¬¥à ¡«®ª 
751
		mov edx,dword[esi+2] ;à §¬¥à ¡«®ª 
740
		call block_analiz
752
		call block_analiz
741
;cmp word[esi],CHUNK_MATERIAL
753
		cmp word[esi],CHUNK_MATERIAL
742
;je @f
754
		je @f
743
cmp word[esi],CHUNK_OBJMESH
755
		cmp word[esi],CHUNK_OBJMESH
744
je @f
756
		je @f
745
cmp word[esi],CHUNK_OBJBLOCK
757
		cmp word[esi],CHUNK_OBJBLOCK
746
je @f
758
		je @f
Line 758... Line 770...
758
			cmp word[esi],CHUNK_OBJBLOCK
770
			cmp word[esi],CHUNK_OBJBLOCK
759
			jne .pod1
771
			jne .pod1
760
				add esi,6
772
				add esi,6
761
				push esi
773
				push esi
762
				sub esi,6
774
				sub esi,6
763
				jmp .pod2
775
				jmp .pod3
764
			.pod1:
776
			.pod1:
-
 
777
			cmp word[esi],CHUNK_MATERIAL
-
 
778
			jne .pod2
765
				push dword[ecx+5] ;áâ ­¤ àâ­®¥ ­ §¢ ­¨¥ ¡«®ª 
779
				cmp word[esi+6],CHUNK_MATNAME
-
 
780
				jne .pod2
-
 
781
				add esi,12
-
 
782
				push esi
-
 
783
				sub esi,12
-
 
784
				jmp .pod3
766
			.pod2:
785
			.pod2:
-
 
786
				push dword[ecx+5] ;áâ ­¤ àâ­®¥ ­ §¢ ­¨¥ ¡«®ª 
-
 
787
			.pod3:
767
			stdcall add_3ds_object, ebx,dword[level_stack],edx
788
			stdcall add_3ds_object, ebx,dword[level_stack],edx
768
			cmp byte[ecx+4],1
789
			cmp byte[ecx+4],1
769
			je .bl_data
790
			je .bl_data
770
				;¡«®ª ᮤ¥à¦¨â ¤®ç¥à­¨¥ ¡«®ª¨
791
				;¡«®ª ᮤ¥à¦¨â ¤®ç¥à­¨¥ ¡«®ª¨
771
				call block_children ;¢å®¤ ¢ ¤®ç¥à­¨© ¡«®ª
792
				call block_children ;¢å®¤ ¢ ¤®ç¥à­¨© ¡«®ª
Line 780... Line 801...
780
	.end_open:
801
	.end_open:
781
	ret
802
	ret
Line 782... Line 803...
782
 
803
 
783
; ­ «¨§ ¤ ­­ëå ¡«®ª 
804
; ­ «¨§ ¤ ­­ëå ¡«®ª 
-
 
805
;input:
784
;input:
806
; eax - stack pointer
785
; esi - memory pointer
807
; esi - memory pointer
786
;output:
808
;output:
787
; eax - new stack pointer
809
; eax - new stack pointer
788
; esi - new memory pointer
810
; esi - new memory pointer
Line 831... Line 853...
831
		sub ecx,2
853
		sub ecx,2
Line 832... Line 854...
832
 
854
 
833
		sub ecx,eax
855
		sub ecx,eax
834
		cmp ecx,1
856
		cmp ecx,1
-
 
857
		jl .data_3 ;¯à®¢¥à塞 ¥áâì «¨ ¡«®ª ®¯¨á뢠î騩 ¬ â¥à¨ «, ¯à¨¬¥­ï¥¬ë© ª ®¡ê¥ªâã
-
 
858
if 1
-
 
859
			add esi,eax
-
 
860
			mov ecx,dword[esi+2]
-
 
861
			stdcall add_3ds_object, 10,ebx,ecx,0 ;¤ ­­ë¥ ¬ â¥à¨ « 
-
 
862
			sub esi,eax
835
		jl .data_3 ;¯à®¢¥à塞 ¥áâì «¨ ¡«®ª ®¯¨á뢠î騩 ¬ â¥à¨ «, ¯à¨¬¥­ï¥¬ë© ª ®¡ê¥ªâã
863
else
836
			add esi,eax
864
			add esi,eax
837
			pop eax
865
			pop eax
-
 
866
			jmp .next_bl
838
			jmp .next_bl
867
end if
Line 839... Line 868...
839
		.data_3:
868
		.data_3:
840
 
869
 
841
		sub esi,8 ;¢®ááâ ­®¢«¥­¨¥ esi
870
		sub esi,8 ;¢®ááâ ­®¢«¥­¨¥ esi
Line 1042... Line 1071...
1042
		stosb
1071
		stosb
1043
		mov byte[edi],0
1072
		mov byte[edi],0
1044
	@@:
1073
	@@:
1045
	ret
1074
	ret
Line 1046... Line -...
1046
 
-
 
1047
align 4
-
 
1048
proc hex_in_str, buf:dword,val:dword,zif:dword
-
 
1049
	pushad
-
 
1050
		mov edi,dword[buf]
-
 
1051
		mov ecx,dword[zif]
-
 
1052
		add edi,ecx
-
 
1053
		dec edi
-
 
1054
		mov ebx,dword[val]
-
 
1055
 
-
 
1056
		.cycle:
-
 
1057
			mov al,bl
-
 
1058
			and al,0xf
-
 
1059
			cmp al,10
-
 
1060
			jl @f
-
 
1061
				add al,'a'-'0'-10
-
 
1062
			@@:
-
 
1063
			add al,'0'
-
 
1064
			mov byte[edi],al
-
 
1065
			dec edi
-
 
1066
			shr ebx,4
-
 
1067
		loop .cycle
-
 
1068
	popad
-
 
1069
	ret
-
 
1070
endp
-
 
1071
 
1075
 
1072
;¤ ­­ë¥ ¤«ï ¤¨ «®£  ®âªàëâ¨ï ä ©«®¢
1076
;¤ ­­ë¥ ¤«ï ¤¨ «®£  ®âªàëâ¨ï ä ©«®¢
1073
align 4
1077
align 4
1074
OpenDialog_data:
1078
OpenDialog_data:
1075
.type			dd 0 ;0 - ®âªàëâì, 1 - á®åà ­¨âì, 2 - ¢ë¡à âì ¤â४â®à¨î
1079
.type			dd 0 ;0 - ®âªàëâì, 1 - á®åà ­¨âì, 2 - ¢ë¡à âì ¤â४â®à¨î
Line 1446... Line 1450...
1446
mat_shininess dd 3.0 ;  §¬¥à ¡«¨ª  (®¡à â­ ï ¯à®¯®àæ¨ï)
1450
mat_shininess dd 3.0 ;  §¬¥à ¡«¨ª  (®¡à â­ ï ¯à®¯®àæ¨ï)
1447
white_light dd 0.8, 0.8, 0.8, 1.0 ; –¢¥â ¨ ¨­â¥­á¨¢­®áâì ®á¢¥é¥­¨ï, £¥­¥à¨à㥬®£® ¨áâ®ç­¨ª®¬
1451
white_light dd 0.8, 0.8, 0.8, 1.0 ; –¢¥â ¨ ¨­â¥­á¨¢­®áâì ®á¢¥é¥­¨ï, £¥­¥à¨à㥬®£® ¨áâ®ç­¨ª®¬
1448
lmodel_ambient dd 0.3, 0.3, 0.3, 1.0 ;  à ¬¥âàë ä®­®¢®£® ®á¢¥é¥­¨ï
1452
lmodel_ambient dd 0.3, 0.3, 0.3, 1.0 ;  à ¬¥âàë ä®­®¢®£® ®á¢¥é¥­¨ï
Line 1449... Line 1453...
1449
 
1453
 
1450
if lang eq ru
1454
if lang eq ru
1451
capt db 'info 3ds [user] ¢¥àá¨ï 16.01.16',0 ;¯®¤¯¨áì ®ª­ 
1455
capt db 'info 3ds [user] ¢¥àá¨ï 19.01.16',0 ;¯®¤¯¨áì ®ª­ 
1452
else
1456
else
1453
capt db 'info 3ds [user] version 16.01.16',0 ;window caption
1457
capt db 'info 3ds [user] version 19.01.16',0 ;window caption
Line 1454... Line 1458...
1454
end if
1458
end if
1455
 
1459
 
1456
align 16
1460
align 16