mirror of
https://github.com/KolibriOS/kolibrios.git
synced 2024-11-28 11:43:09 +03:00
update program, use *.ini file
git-svn-id: svn://kolibrios.org@5938 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
9dc87d083b
commit
612d1e757d
@ -2,6 +2,7 @@ if not exist bin mkdir bin
|
|||||||
@erase lang.inc
|
@erase lang.inc
|
||||||
@echo lang fix en >lang.inc
|
@echo lang fix en >lang.inc
|
||||||
@copy objects.png bin\objects.png
|
@copy objects.png bin\objects.png
|
||||||
|
if not exist bin\info3ds.ini @copy info3ds.ini bin\info3ds.ini
|
||||||
if not exist bin\tl_sys_16.png @copy tl_sys_16.png bin\tl_sys_16.png
|
if not exist bin\tl_sys_16.png @copy tl_sys_16.png bin\tl_sys_16.png
|
||||||
if not exist bin\toolbar.png @copy toolbar.png bin\toolbar.png
|
if not exist bin\toolbar.png @copy toolbar.png bin\toolbar.png
|
||||||
if not exist bin\font8x9.bmp @copy ..\..\fs\kfar\trunk\font8x9.bmp bin\font8x9.bmp
|
if not exist bin\font8x9.bmp @copy ..\..\fs\kfar\trunk\font8x9.bmp bin\font8x9.bmp
|
||||||
|
@ -2,6 +2,7 @@ if not exist bin mkdir bin
|
|||||||
@erase lang.inc
|
@erase lang.inc
|
||||||
@echo lang fix ru >lang.inc
|
@echo lang fix ru >lang.inc
|
||||||
@copy objects.png bin\objects.png
|
@copy objects.png bin\objects.png
|
||||||
|
if not exist bin\info3ds.ini @copy info3ds.ini bin\info3ds.ini
|
||||||
if not exist bin\tl_sys_16.png @copy tl_sys_16.png bin\tl_sys_16.png
|
if not exist bin\tl_sys_16.png @copy tl_sys_16.png bin\tl_sys_16.png
|
||||||
if not exist bin\toolbar.png @copy toolbar.png bin\toolbar.png
|
if not exist bin\toolbar.png @copy toolbar.png bin\toolbar.png
|
||||||
if not exist bin\font8x9.bmp @copy ..\..\fs\kfar\trunk\font8x9.bmp bin\font8x9.bmp
|
if not exist bin\font8x9.bmp @copy ..\..\fs\kfar\trunk\font8x9.bmp bin\font8x9.bmp
|
||||||
|
@ -1,11 +1,8 @@
|
|||||||
if lang eq ru
|
;
|
||||||
capt db 'info 3ds ¢¥àá¨ï 26.11.15',0 ;¯®¤¯¨áì ®ª
|
; §¤¥áì ᮡà ë ¤ ë¥ ¯® ¡«®ª ¬ *.3ds
|
||||||
else
|
;
|
||||||
capt db 'info 3ds version 26.11.15',0 ;window caption
|
|
||||||
end if
|
|
||||||
|
|
||||||
MAX_FILE_LEVEL equ 20 ;¬ ªá¨¬ «ìë© ã஢¥ì ¢«®¦¥®á⨠¡«®ª®¢ ¤«ï «¨§
|
MAX_FILE_LEVEL equ 20 ;¬ ªá¨¬ «ìë© ã஢¥ì ¢«®¦¥®á⨠¡«®ª®¢ ¤«ï «¨§
|
||||||
MAX_FILE_SIZE equ 150*0x400 ;¬ ªá¨¬ «ìë© à §¬¥à ä ©« (0x400=1Kb)
|
|
||||||
|
|
||||||
sizeof.block_3ds equ 9
|
sizeof.block_3ds equ 9
|
||||||
can_save db 0 ;¨§¬¥ï«áï «¨ ä ©«
|
can_save db 0 ;¨§¬¥ï«áï «¨ ä ©«
|
||||||
@ -295,7 +292,6 @@ end if
|
|||||||
if lang eq ru
|
if lang eq ru
|
||||||
txt_open_3ds db 'Žâªàëâ ä ©«:',0
|
txt_open_3ds db 'Žâªàëâ ä ©«:',0
|
||||||
txt_no_3ds db 'Žâªàëâë© ä ©« ¥ ¢ ä®à¬ ⥠*.3ds',0
|
txt_no_3ds db 'Žâªàëâë© ä ©« ¥ ¢ ä®à¬ ⥠*.3ds',0
|
||||||
txt_3ds_big_file db '<27> §¬¥à ä ©« ¡®«ìè¥ MAX_FILE_SIZE',0
|
|
||||||
txt_3ds_err_sizes db '‚®§¬®¦® ä ©« ¯®¢à¥¦¤¥',0
|
txt_3ds_err_sizes db '‚®§¬®¦® ä ©« ¯®¢à¥¦¤¥',0
|
||||||
txt_count db 'Š®«¨ç¥á⢮',0
|
txt_count db 'Š®«¨ç¥á⢮',0
|
||||||
txt_3ds_offs:
|
txt_3ds_offs:
|
||||||
@ -307,7 +303,6 @@ txt_3ds_offs:
|
|||||||
else
|
else
|
||||||
txt_open_3ds db 'Open file:',0
|
txt_open_3ds db 'Open file:',0
|
||||||
txt_no_3ds db 'Žâªàëâë© ä ©« ¥ ¢ ä®à¬ ⥠*.3ds',0
|
txt_no_3ds db 'Žâªàëâë© ä ©« ¥ ¢ ä®à¬ ⥠*.3ds',0
|
||||||
txt_3ds_big_file db '<27> §¬¥à ä ©« ¡®«ìè¥ MAX_FILE_SIZE',0
|
|
||||||
txt_3ds_err_sizes db '‚®§¬®¦® ä ©« ¯®¢à¥¦¤¥',0
|
txt_3ds_err_sizes db '‚®§¬®¦® ä ©« ¯®¢à¥¦¤¥',0
|
||||||
txt_count db 'Count',0
|
txt_count db 'Count',0
|
||||||
txt_3ds_offs:
|
txt_3ds_offs:
|
||||||
|
@ -27,10 +27,12 @@ struct FileInfoBlock
|
|||||||
FileName dd ?
|
FileName dd ?
|
||||||
ends
|
ends
|
||||||
|
|
||||||
run_file_70 FileInfoBlock
|
align 4
|
||||||
|
fl255 dd 255.0
|
||||||
image_data dd 0 ;㪠§ â¥«ì ¢à¥¬¥ãî ¯ ¬ïâì, 㦥 ¤«ï ¯à¥®¡à §®¢ ¨ï ¨§®¡à ¦¥¨ï
|
image_data dd 0 ;㪠§ â¥«ì ¢à¥¬¥ãî ¯ ¬ïâì, 㦥 ¤«ï ¯à¥®¡à §®¢ ¨ï ¨§®¡à ¦¥¨ï
|
||||||
open_file_lif dd 0 ;㪠§ â¥«ì ¯ ¬ïâì ¤«ï ®âªàëâ¨ï ä ©«®¢ 3ds
|
open_file_data dd 0 ;㪠§ â¥«ì ¯ ¬ïâì ¤«ï ®âªàëâ¨ï ä ©«®¢ 3ds
|
||||||
open_file_size dd 0 ;à §¬¥à ®âªàë⮣® ä ©«
|
open_file_size dd 0 ;à §¬¥à ®âªàë⮣® ä ©«
|
||||||
|
open_b rb 560
|
||||||
|
|
||||||
;
|
;
|
||||||
main_wnd_height equ 460 ;¢ëá®â £« ¢®£® ®ª ¯à®£à ¬¬ë
|
main_wnd_height equ 460 ;¢ëá®â £« ¢®£® ®ª ¯à®£à ¬¬ë
|
||||||
@ -126,7 +128,7 @@ start:
|
|||||||
add ebp,ll_struc_size
|
add ebp,ll_struc_size
|
||||||
cmp ebp,l_libs_end
|
cmp ebp,l_libs_end
|
||||||
jl .test_lib_open
|
jl .test_lib_open
|
||||||
mcall 48,3,sc,sizeof.system_colors
|
mcall 48,3,sc,sizeof.sys_colors_new
|
||||||
mcall 40,0x27
|
mcall 40,0x27
|
||||||
stdcall [OpenDialog_Init],OpenDialog_data ;¯®¤£®â®¢ª ¤¨ «®£
|
stdcall [OpenDialog_Init],OpenDialog_data ;¯®¤£®â®¢ª ¤¨ «®£
|
||||||
|
|
||||||
@ -141,12 +143,16 @@ start:
|
|||||||
stdcall [ksubmenu_add], [main_menu_view], eax
|
stdcall [ksubmenu_add], [main_menu_view], eax
|
||||||
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_Faces, 6
|
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_Faces, 6
|
||||||
stdcall [ksubmenu_add], [main_menu_view], eax
|
stdcall [ksubmenu_add], [main_menu_view], eax
|
||||||
|
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_Faces_Fill, 7
|
||||||
|
stdcall [ksubmenu_add], [main_menu_view], eax
|
||||||
|
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_Light, 8
|
||||||
|
stdcall [ksubmenu_add], [main_menu_view], eax
|
||||||
stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
|
stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
|
||||||
stdcall [ksubmenu_add], [main_menu_view], eax
|
stdcall [ksubmenu_add], [main_menu_view], eax
|
||||||
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_Light, 7
|
|
||||||
stdcall [ksubmenu_add], [main_menu_view], eax
|
|
||||||
stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_View, [main_menu_view]
|
stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_View, [main_menu_view]
|
||||||
stdcall [ksubmenu_add], [main_menu], eax
|
stdcall [ksubmenu_add], [main_menu], eax
|
||||||
|
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_Reset, 9
|
||||||
|
stdcall [ksubmenu_add], [main_menu_view], eax
|
||||||
|
|
||||||
mov dword[w_scr_t1.type],1
|
mov dword[w_scr_t1.type],1
|
||||||
stdcall dword[tl_data_init], tree1
|
stdcall dword[tl_data_init], tree1
|
||||||
@ -171,16 +177,69 @@ start:
|
|||||||
|
|
||||||
load_image_file fn_toolbar, image_data_toolbar,IMAGE_TOOLBAR_SIZE
|
load_image_file fn_toolbar, image_data_toolbar,IMAGE_TOOLBAR_SIZE
|
||||||
|
|
||||||
stdcall mem.Alloc,MAX_FILE_SIZE
|
;à ¡®â á ä ©«®¬ áâ஥ª
|
||||||
mov dword[open_file_lif],eax
|
copy_path ini_name,sys_path,file_name,0
|
||||||
|
mov dword[def_dr_mode],0
|
||||||
|
stdcall dword[ini_get_int],file_name,ini_sec_w3d,key_dv,1
|
||||||
|
or eax,eax
|
||||||
|
jz @f
|
||||||
|
or dword[def_dr_mode], 1 shl bit_vertexes
|
||||||
|
@@:
|
||||||
|
stdcall dword[ini_get_int],file_name,ini_sec_w3d,key_df,1
|
||||||
|
or eax,eax
|
||||||
|
jz @f
|
||||||
|
or dword[def_dr_mode], 1 shl bit_faces
|
||||||
|
@@:
|
||||||
|
stdcall dword[ini_get_int],file_name,ini_sec_w3d,key_dff,1
|
||||||
|
or eax,eax
|
||||||
|
jz @f
|
||||||
|
or dword[def_dr_mode], 1 shl bit_faces_fill
|
||||||
|
@@:
|
||||||
|
stdcall dword[ini_get_int],file_name,ini_sec_w3d,key_dl,1
|
||||||
|
or eax,eax
|
||||||
|
jz @f
|
||||||
|
or dword[def_dr_mode], 1 shl bit_light
|
||||||
|
@@:
|
||||||
|
stdcall dword[ini_get_color],file_name,ini_sec_w3d,key_ox,0x0000ff
|
||||||
|
mov [color_ox],eax
|
||||||
|
stdcall dword[ini_get_color],file_name,ini_sec_w3d,key_oy,0xff0000
|
||||||
|
mov [color_oy],eax
|
||||||
|
stdcall dword[ini_get_color],file_name,ini_sec_w3d,key_oz,0x00ff00
|
||||||
|
mov [color_oz],eax
|
||||||
|
stdcall dword[ini_get_color],file_name,ini_sec_w3d,key_bk,0x000000
|
||||||
|
mov [color_bk],eax
|
||||||
|
shr eax,8
|
||||||
|
mov [color_bk+4],eax
|
||||||
|
shr eax,8
|
||||||
|
mov [color_bk+8],eax
|
||||||
|
stdcall dword[ini_get_color],file_name,ini_sec_w3d,key_vert,0xffffff
|
||||||
|
mov [color_vert],eax
|
||||||
|
stdcall dword[ini_get_color],file_name,ini_sec_w3d,key_face,0x808080
|
||||||
|
mov [color_face],eax
|
||||||
|
finit
|
||||||
|
fild dword[color_bk+8]
|
||||||
|
fdiv dword[fl255]
|
||||||
|
fstp dword[color_bk+8]
|
||||||
|
mov eax,[color_bk+4]
|
||||||
|
and eax,0xff
|
||||||
|
mov [color_bk+4],eax
|
||||||
|
fild dword[color_bk+4]
|
||||||
|
fdiv dword[fl255]
|
||||||
|
fstp dword[color_bk+4]
|
||||||
|
mov eax,[color_bk]
|
||||||
|
and eax,0xff
|
||||||
|
mov [color_bk],eax
|
||||||
|
fild dword[color_bk]
|
||||||
|
fdiv dword[fl255]
|
||||||
|
fstp dword[color_bk]
|
||||||
|
|
||||||
mcall 26,9
|
mcall 26,9
|
||||||
mov [last_time],eax
|
mov [last_time],eax
|
||||||
|
|
||||||
stdcall [kosglMakeCurrent], 5,23,320,240,ctx1
|
stdcall [kosglMakeCurrent], 3d_wnd_l,3d_wnd_t,3d_wnd_w,3d_wnd_h,ctx1
|
||||||
stdcall [glEnable], GL_DEPTH_TEST
|
stdcall [glEnable], GL_DEPTH_TEST
|
||||||
stdcall [glEnable], GL_NORMALIZE ;¤¥« ¬ ®à¬ «¨ ®¤¨ ª®¢®© ¢¥«¨ç¨ë ¢® ¨§¡¥¦ ¨¥ àâ¥ä ªâ®¢
|
stdcall [glEnable], GL_NORMALIZE ;¤¥« ¬ ®à¬ «¨ ®¤¨ ª®¢®© ¢¥«¨ç¨ë ¢® ¨§¡¥¦ ¨¥ àâ¥ä ªâ®¢
|
||||||
stdcall [glClearColor], 0.0,0.0,0.0,0.0
|
stdcall [glClearColor], [color_bk+8],[color_bk+4],[color_bk],0.0
|
||||||
stdcall [glShadeModel], GL_SMOOTH
|
stdcall [glShadeModel], GL_SMOOTH
|
||||||
stdcall [gluNewQuadric]
|
stdcall [gluNewQuadric]
|
||||||
mov [qObj],eax
|
mov [qObj],eax
|
||||||
@ -240,7 +299,7 @@ timer_funct:
|
|||||||
stdcall hex_in_str, txt_3ds_offs.dig, eax,8
|
stdcall hex_in_str, txt_3ds_offs.dig, eax,8
|
||||||
stdcall hex_in_str, txt_3ds_offs.siz, ecx,8
|
stdcall hex_in_str, txt_3ds_offs.siz, ecx,8
|
||||||
|
|
||||||
add eax,dword[open_file_lif] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ ¯ ¬ïâ¨
|
add eax,dword[open_file_data] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ ¯ ¬ïâ¨
|
||||||
cmp dword[offs_last_timer],eax
|
cmp dword[offs_last_timer],eax
|
||||||
je @f
|
je @f
|
||||||
;¥á«¨ ¢ë¤¥«¥ë© ¡«®ª ¤ ëå ¥ ᮢ¯ ¤ ¥â á ¯®á«¥¤¨¬ § ¯®¬¥ë¬
|
;¥á«¨ ¢ë¤¥«¥ë© ¡«®ª ¤ ëå ¥ ᮢ¯ ¤ ¥â á ¯®á«¥¤¨¬ § ¯®¬¥ë¬
|
||||||
@ -257,12 +316,6 @@ timer_funct:
|
|||||||
stdcall [buf2d_draw], buf_0 ;®¡®¢«ï¥¬ ¡ãä¥à íªà ¥
|
stdcall [buf2d_draw], buf_0 ;®¡®¢«ï¥¬ ¡ãä¥à íªà ¥
|
||||||
@@:
|
@@:
|
||||||
popad
|
popad
|
||||||
|
|
||||||
;¯à®á¬®âà ®ª á ª®®à¤¨ â ¬¨ â®ç¥ª
|
|
||||||
;cmp byte[prop_wnd_run],0
|
|
||||||
;je @f
|
|
||||||
; call prop_timer_funct
|
|
||||||
;@@:
|
|
||||||
jmp still
|
jmp still
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
@ -283,7 +336,7 @@ proc buf_draw_hex_table, offs:dword, size_line:dword
|
|||||||
coord_y dd 55 ;ª®®à¤¨ â y ¤«ï ç « ¢ë¢®¤ â ¡«¨æë
|
coord_y dd 55 ;ª®®à¤¨ â y ¤«ï ç « ¢ë¢®¤ â ¡«¨æë
|
||||||
endl
|
endl
|
||||||
mov esi,dword[offs]
|
mov esi,dword[offs]
|
||||||
mov edi,dword[open_file_lif]
|
mov edi,dword[open_file_data]
|
||||||
add edi,dword[file_3ds.size] ;edi - 㪠§ â¥«ì ª®¥æ ä ©« ¢ ¯ ¬ïâ¨
|
add edi,dword[file_3ds.size] ;edi - 㪠§ â¥«ì ª®¥æ ä ©« ¢ ¯ ¬ïâ¨
|
||||||
mov dword[txt_3ds_offs.dig],0
|
mov dword[txt_3ds_offs.dig],0
|
||||||
cld
|
cld
|
||||||
@ -461,7 +514,7 @@ button:
|
|||||||
stdcall [buf2d_delete],buf_0
|
stdcall [buf2d_delete],buf_0
|
||||||
stdcall [buf2d_delete],buf_1 ;㤠«ï¥¬ ¡ãä¥à
|
stdcall [buf2d_delete],buf_1 ;㤠«ï¥¬ ¡ãä¥à
|
||||||
stdcall mem.Free,[image_data_toolbar]
|
stdcall mem.Free,[image_data_toolbar]
|
||||||
stdcall mem.Free,[open_file_lif]
|
stdcall mem.Free,[open_file_data]
|
||||||
stdcall [gluDeleteQuadric], [qObj]
|
stdcall [gluDeleteQuadric], [qObj]
|
||||||
mcall -1
|
mcall -1
|
||||||
|
|
||||||
@ -485,16 +538,29 @@ but_open_file:
|
|||||||
je .end_open_file
|
je .end_open_file
|
||||||
;ª®¤ ¯à¨ 㤠箬 ®âªàë⨨ ¤¨ «®£
|
;ª®¤ ¯à¨ 㤠箬 ®âªàë⨨ ¤¨ «®£
|
||||||
|
|
||||||
mov [run_file_70.Function], 0
|
mov [run_file_70.Function], 5
|
||||||
mov [run_file_70.Position], 0
|
mov [run_file_70.Position], 0
|
||||||
mov [run_file_70.Flags], 0
|
mov [run_file_70.Flags], 0
|
||||||
mov dword[run_file_70.Count], MAX_FILE_SIZE
|
mov dword[run_file_70.Count], 0
|
||||||
m2m [run_file_70.Buffer], dword[open_file_lif]
|
mov dword[run_file_70.Buffer], open_b
|
||||||
mov byte[run_file_70+20], 0
|
mov byte[run_file_70+20], 0
|
||||||
mov dword[run_file_70.FileName], openfile_path
|
mov dword[run_file_70.FileName], openfile_path
|
||||||
mcall 70,run_file_70 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥¨ï
|
mcall 70,run_file_70
|
||||||
cmp ebx,0xffffffff
|
|
||||||
je .end_open_file
|
mov ecx,dword[open_b+32] ;+32 qword: à §¬¥à ä ©« ¢ ¡ ©â å
|
||||||
|
stdcall mem.ReAlloc,[open_file_data],ecx
|
||||||
|
mov [open_file_data],eax
|
||||||
|
|
||||||
|
mov [run_file_70.Function], 0
|
||||||
|
mov [run_file_70.Position], 0
|
||||||
|
mov [run_file_70.Flags], 0
|
||||||
|
mov dword[run_file_70.Count], ecx
|
||||||
|
m2m dword[run_file_70.Buffer], dword[open_file_data]
|
||||||
|
mov byte[run_file_70+20], 0
|
||||||
|
mov dword[run_file_70.FileName], openfile_path
|
||||||
|
mcall 70,run_file_70 ;§ £à㦠¥¬ ä ©« 3ds
|
||||||
|
cmp ebx,0xffffffff
|
||||||
|
je .end_open_file
|
||||||
|
|
||||||
mov [open_file_size],ebx
|
mov [open_file_size],ebx
|
||||||
;mcall 71,1,openfile_path
|
;mcall 71,1,openfile_path
|
||||||
@ -517,19 +583,13 @@ align 4
|
|||||||
init_tree:
|
init_tree:
|
||||||
stdcall [tl_info_clear], tree1 ;®ç¨á⪠ᯨ᪠®¡ê¥ªâ®¢
|
stdcall [tl_info_clear], tree1 ;®ç¨á⪠ᯨ᪠®¡ê¥ªâ®¢
|
||||||
|
|
||||||
mov esi,dword[open_file_lif]
|
mov esi,dword[open_file_data]
|
||||||
cmp word[esi],CHUNK_MAIN
|
cmp word[esi],CHUNK_MAIN
|
||||||
je @f
|
je @f
|
||||||
call buf_draw_beg
|
call buf_draw_beg
|
||||||
stdcall [buf2d_draw_text], buf_0, buf_1,txt_no_3ds,5,25,0xff0000 ;à¨á㥬 áâபã á ⥪á⮬
|
stdcall [buf2d_draw_text], buf_0, buf_1,txt_no_3ds,5,25,0xff0000 ;à¨á㥬 áâபã á ⥪á⮬
|
||||||
jmp .end_open
|
jmp .end_open
|
||||||
@@:
|
@@:
|
||||||
cmp dword[esi+2],MAX_FILE_SIZE
|
|
||||||
jle @f
|
|
||||||
call buf_draw_beg
|
|
||||||
stdcall [buf2d_draw_text], buf_0, buf_1,txt_3ds_big_file,5,25,0xff0000 ;à¨á㥬 áâபã á ⥪á⮬
|
|
||||||
jmp .end_open
|
|
||||||
@@:
|
|
||||||
;--- ®¡à ¡®âª ®âªàë⮣® *.3ds ä ©«
|
;--- ®¡à ¡®âª ®âªàë⮣® *.3ds ä ©«
|
||||||
mov eax,file_3ds
|
mov eax,file_3ds
|
||||||
mov dword[level_stack],0 ;®¡ã«ï¥¬ ã஢¥ì á⥪
|
mov dword[level_stack],0 ;®¡ã«ï¥¬ ã஢¥ì á⥪
|
||||||
@ -771,7 +831,7 @@ proc add_3ds_object, icon:dword,level:dword,size_bl:dword,info_bl:dword
|
|||||||
mov bx,word[level]
|
mov bx,word[level]
|
||||||
|
|
||||||
mov eax,esi
|
mov eax,esi
|
||||||
sub eax,dword[open_file_lif]
|
sub eax,dword[open_file_data]
|
||||||
mov dword[buffer],eax ;ᬥ饨¥ ¡«®ª
|
mov dword[buffer],eax ;ᬥ饨¥ ¡«®ª
|
||||||
mov ecx,dword[size_bl]
|
mov ecx,dword[size_bl]
|
||||||
mov dword[buffer+4],ecx ;à §¬¥à ¡«®ª (¨á¯®«ì§ã¥âáï ¢ äãªæ¨¨ buf_draw_hex_table ¤«ï à¨á®¢ ¨ï «¨¨¨)
|
mov dword[buffer+4],ecx ;à §¬¥à ¡«®ª (¨á¯®«ì§ã¥âáï ¢ äãªæ¨¨ buf_draw_hex_table ¤«ï à¨á®¢ ¨ï «¨¨¨)
|
||||||
@ -841,14 +901,17 @@ proc print_err, fun:dword, mes:dword ;
|
|||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
end if
|
||||||
|
|
||||||
;input:
|
;input:
|
||||||
; eax - value
|
; eax - value
|
||||||
; edi - string buffer
|
; buf - string buffer
|
||||||
; len - buffer len
|
; len - buffer len
|
||||||
;output:
|
;output:
|
||||||
align 4
|
align 4
|
||||||
proc convert_int_to_str, len:dword
|
proc convert_int_to_str, buf:dword, len:dword
|
||||||
pushad
|
pushad
|
||||||
|
mov edi,[buf]
|
||||||
mov esi,[len]
|
mov esi,[len]
|
||||||
add esi,edi
|
add esi,edi
|
||||||
dec esi
|
dec esi
|
||||||
@ -876,8 +939,6 @@ align 4
|
|||||||
@@:
|
@@:
|
||||||
ret
|
ret
|
||||||
|
|
||||||
end if
|
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
proc hex_in_str, buf:dword,val:dword,zif:dword
|
proc hex_in_str, buf:dword,val:dword,zif:dword
|
||||||
pushad
|
pushad
|
||||||
@ -917,7 +978,7 @@ but_save_file:
|
|||||||
mov [run_file_70.Function], 2
|
mov [run_file_70.Function], 2
|
||||||
mov [run_file_70.Position], 0
|
mov [run_file_70.Position], 0
|
||||||
mov [run_file_70.Flags], 0
|
mov [run_file_70.Flags], 0
|
||||||
mov ebx, dword[open_file_lif]
|
mov ebx, dword[open_file_data]
|
||||||
mov [run_file_70.Buffer], ebx
|
mov [run_file_70.Buffer], ebx
|
||||||
mov ebx,dword[ebx+2]
|
mov ebx,dword[ebx+2]
|
||||||
mov dword[run_file_70.Count], ebx ;à §¬¥à ä ©«
|
mov dword[run_file_70.Count], ebx ;à §¬¥à ä ©«
|
||||||
@ -958,7 +1019,7 @@ but_delete_chunk:
|
|||||||
mov ecx,[open_file_size]
|
mov ecx,[open_file_size]
|
||||||
mov ebx,dword[eax] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ë¡à ®£® ¡«®ª ®â®á¨â¥«ì® ç « ä ©«
|
mov ebx,dword[eax] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ë¡à ®£® ¡«®ª ®â®á¨â¥«ì® ç « ä ©«
|
||||||
sub ecx,ebx ;ecx - à §¬¥à ¨¦¥© ᤢ¨£ ¥¬®© ç áâ¨ ä ©«
|
sub ecx,ebx ;ecx - à §¬¥à ¨¦¥© ᤢ¨£ ¥¬®© ç áâ¨ ä ©«
|
||||||
add ebx,dword[open_file_lif] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ ¯ ¬ïâ¨
|
add ebx,dword[open_file_data] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ ¯ ¬ïâ¨
|
||||||
mov edi,ebx
|
mov edi,ebx
|
||||||
mov esi,ebx
|
mov esi,ebx
|
||||||
add esi,edx
|
add esi,edx
|
||||||
@ -978,7 +1039,7 @@ but_delete_chunk:
|
|||||||
jge .cycle_2
|
jge .cycle_2
|
||||||
mov bl,byte[eax+list_offs_chunk_lev]
|
mov bl,byte[eax+list_offs_chunk_lev]
|
||||||
mov ecx,[eax]
|
mov ecx,[eax]
|
||||||
add ecx,[open_file_lif]
|
add ecx,[open_file_data]
|
||||||
sub dword[ecx+2],edx
|
sub dword[ecx+2],edx
|
||||||
cmp bl,0 ;¥á«¨ á ¬ë© ¢¥à娩 㧥«, â® bl=0
|
cmp bl,0 ;¥á«¨ á ¬ë© ¢¥à娩 㧥«, â® bl=0
|
||||||
jne .cycle_2
|
jne .cycle_2
|
||||||
@ -1119,6 +1180,8 @@ system_dir_4 db '/sys/lib/'
|
|||||||
lib_name_4 db 'kmenu.obj',0
|
lib_name_4 db 'kmenu.obj',0
|
||||||
system_dir_5 db '/sys/lib/'
|
system_dir_5 db '/sys/lib/'
|
||||||
lib_name_5 db 'tinygl.obj',0
|
lib_name_5 db 'tinygl.obj',0
|
||||||
|
system_dir_6 db '/sys/lib/'
|
||||||
|
lib_name_6 db 'libini.obj',0
|
||||||
|
|
||||||
if lang eq ru
|
if lang eq ru
|
||||||
head_f_i:
|
head_f_i:
|
||||||
@ -1135,6 +1198,8 @@ if lang eq ru
|
|||||||
err_msg_import_4 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'kmenu',39,0
|
err_msg_import_4 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'kmenu',39,0
|
||||||
err_msg_found_lib_5 db '<27>¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'tinygl.obj',39,0
|
err_msg_found_lib_5 db '<27>¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'tinygl.obj',39,0
|
||||||
err_msg_import_5 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'tinygl',39,0
|
err_msg_import_5 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'tinygl',39,0
|
||||||
|
err_msg_found_lib_6 db '<27>¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'libini.obj',39,0
|
||||||
|
err_msg_import_6 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libini',39,0
|
||||||
else
|
else
|
||||||
head_f_i:
|
head_f_i:
|
||||||
head_f_l db 'System error',0
|
head_f_l db 'System error',0
|
||||||
@ -1150,6 +1215,8 @@ else
|
|||||||
err_msg_import_4 db 'Error on load import library ',39,'kmenu.obj',39,0
|
err_msg_import_4 db 'Error on load import library ',39,'kmenu.obj',39,0
|
||||||
err_msg_found_lib_5 db 'Sorry I cannot found library ',39,'tinygl.obj',39,0
|
err_msg_found_lib_5 db 'Sorry I cannot found library ',39,'tinygl.obj',39,0
|
||||||
err_msg_import_5 db 'Error on load import library ',39,'tinygl',39,0
|
err_msg_import_5 db 'Error on load import library ',39,'tinygl',39,0
|
||||||
|
err_msg_found_lib_6 db 'Sorry I cannot found library ',39,'libini.obj',39,0
|
||||||
|
err_msg_import_6 db 'Error on load import library ',39,'libini',39,0
|
||||||
end if
|
end if
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
@ -1165,7 +1232,9 @@ l_libs_start:
|
|||||||
lib_4 l_libs lib_name_4, sys_path, library_path, system_dir_4,\
|
lib_4 l_libs lib_name_4, sys_path, library_path, system_dir_4,\
|
||||||
err_msg_found_lib_4, head_f_l, import_libkmenu,err_msg_import_4,head_f_i
|
err_msg_found_lib_4, head_f_l, import_libkmenu,err_msg_import_4,head_f_i
|
||||||
lib_5 l_libs lib_name_5, sys_path, library_path, system_dir_5,\
|
lib_5 l_libs lib_name_5, sys_path, library_path, system_dir_5,\
|
||||||
err_msg_found_lib_5, head_f_l, import_lib_tinygl,err_msg_import_5,head_f_i
|
err_msg_found_lib_5, head_f_l, import_lib_tinygl,err_msg_import_5,head_f_i
|
||||||
|
lib_6 l_libs lib_name_6, sys_path, library_path, system_dir_6,\
|
||||||
|
err_msg_found_lib_6, head_f_l, import_libini, err_msg_import_6,head_f_i
|
||||||
l_libs_end:
|
l_libs_end:
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
@ -1386,6 +1455,18 @@ macro E_LIB n
|
|||||||
}
|
}
|
||||||
include '../../develop/libraries/TinyGL/asm_fork/export.inc'
|
include '../../develop/libraries/TinyGL/asm_fork/export.inc'
|
||||||
|
|
||||||
|
align 4
|
||||||
|
import_libini:
|
||||||
|
dd alib_init0
|
||||||
|
ini_get_str dd aini_get_str
|
||||||
|
ini_get_int dd aini_get_int
|
||||||
|
ini_get_color dd aini_get_color
|
||||||
|
dd 0,0
|
||||||
|
alib_init0 db 'lib_init',0
|
||||||
|
aini_get_str db 'ini_get_str',0
|
||||||
|
aini_get_int db 'ini_get_int',0
|
||||||
|
aini_get_color db 'ini_get_color',0
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
mouse_dd dd 0x0
|
mouse_dd dd 0x0
|
||||||
last_time dd 0
|
last_time dd 0
|
||||||
@ -1420,10 +1501,6 @@ ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext
|
|||||||
;sizeof.TinyGLContext = 28
|
;sizeof.TinyGLContext = 28
|
||||||
|
|
||||||
qObj dd 0
|
qObj dd 0
|
||||||
angle_x dd 0.0
|
|
||||||
angle_y dd 0.0
|
|
||||||
angle_z dd 0.0
|
|
||||||
delt_size dd 3.0
|
|
||||||
|
|
||||||
light_position dd 0.0, 0.0, -2.0, 1.0 ; <20> ᯮ«®¦¥¨¥ ¨áâ®ç¨ª [0][1][2]
|
light_position dd 0.0, 0.0, -2.0, 1.0 ; <20> ᯮ«®¦¥¨¥ ¨áâ®ç¨ª [0][1][2]
|
||||||
;[3] = (0.0 - ¡¥áª®¥ç® 㤠«¥ë© ¨áâ®ç¨ª, 1.0 - ¨áâ®ç¨ª ᢥ⠮¯à¥¤¥«¥®¬ à ááâ®ï¨¨)
|
;[3] = (0.0 - ¡¥áª®¥ç® 㤠«¥ë© ¨áâ®ç¨ª, 1.0 - ¨áâ®ç¨ª ᢥ⠮¯à¥¤¥«¥®¬ à ááâ®ï¨¨)
|
||||||
@ -1434,10 +1511,27 @@ mat_shininess dd 3.0 ;
|
|||||||
white_light dd 0.8, 0.8, 0.8, 1.0 ; –¢¥â ¨ ¨â¥á¨¢®áâì ®á¢¥é¥¨ï, £¥¥à¨à㥬®£® ¨áâ®ç¨ª®¬
|
white_light dd 0.8, 0.8, 0.8, 1.0 ; –¢¥â ¨ ¨â¥á¨¢®áâì ®á¢¥é¥¨ï, £¥¥à¨à㥬®£® ¨áâ®ç¨ª®¬
|
||||||
lmodel_ambient dd 0.3, 0.3, 0.3, 1.0 ; <20> à ¬¥âàë ä®®¢®£® ®á¢¥é¥¨ï
|
lmodel_ambient dd 0.3, 0.3, 0.3, 1.0 ; <20> à ¬¥âàë ä®®¢®£® ®á¢¥é¥¨ï
|
||||||
|
|
||||||
|
if lang eq ru
|
||||||
|
capt db 'info 3ds ¢¥àá¨ï 29.11.15',0 ;¯®¤¯¨áì ®ª
|
||||||
|
else
|
||||||
|
capt db 'info 3ds version 29.11.15',0 ;window caption
|
||||||
|
end if
|
||||||
|
|
||||||
align 16
|
align 16
|
||||||
i_end:
|
i_end:
|
||||||
procinfo process_information
|
procinfo process_information
|
||||||
|
run_file_70 FileInfoBlock
|
||||||
sc system_colors
|
sc system_colors
|
||||||
|
rb sizeof.sys_colors_new-sizeof.system_colors
|
||||||
|
angle_x rd 1 ;ã£«ë ¯®¢®à®â áæ¥ë
|
||||||
|
angle_y rd 1
|
||||||
|
angle_z rd 1
|
||||||
|
color_ox rd 1
|
||||||
|
color_oy rd 1
|
||||||
|
color_oz rd 1
|
||||||
|
color_bk rd 3
|
||||||
|
color_vert rd 1
|
||||||
|
color_face rd 1
|
||||||
rb 2048
|
rb 2048
|
||||||
align 16
|
align 16
|
||||||
thread_coords:
|
thread_coords:
|
||||||
|
11
programs/develop/info3ds/info3ds.ini
Normal file
11
programs/develop/info3ds/info3ds.ini
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
[Window 3d]
|
||||||
|
draw_vertices=1
|
||||||
|
draw_faces=1
|
||||||
|
draw_faces_fill=0
|
||||||
|
draw_light=0
|
||||||
|
col_ox=255,0,0
|
||||||
|
col_oy=0,0,255
|
||||||
|
col_oz=0,255,0
|
||||||
|
col_bkgnd=0,32,64
|
||||||
|
col_vertices=255,255,255
|
||||||
|
col_faces=128,192,192
|
@ -1 +1 @@
|
|||||||
if lang eq ru
sz_main_menu_View db '‚¨¤', 0
sz_main_menu_Veiw_Vertexes db '‚¥àè¨ë ¢ª«./¢ëª«.', 0
sz_main_menu_Veiw_Faces db 'ƒà ¨ ¢ª«./¢ëª«.', 0
sz_main_menu_Veiw_Light db '‘¢¥â ¢ª«./¢ëª«.', 0
else
sz_main_menu_View db 'View', 0
sz_main_menu_Veiw_Vertexes db 'Vertexes on/off', 0
sz_main_menu_Veiw_Faces db 'Faces on/off', 0
sz_main_menu_Veiw_Light db 'Light on/off', 0
end if
main_menu dd 0
main_menu_file dd 0
main_menu_view dd 0
KMENUITEM_NORMAL equ 0
KMENUITEM_SUBMENU equ 1
KMENUITEM_SEPARATOR equ 2
|
if lang eq ru
sz_main_menu_View db '‚¨¤', 0
sz_main_menu_Veiw_Vertexes db '‚¥àè¨ë ¢ª«./¢ëª«.', 0
sz_main_menu_Veiw_Faces db 'ƒà ¨ ¢ª«./¢ëª«.', 0
sz_main_menu_Veiw_Faces_Fill db '‡ «¨¢ª £à ¥© ¢ª«./¢ëª«.', 0
sz_main_menu_Veiw_Light db '‘¢¥â ¢ª«./¢ëª«.', 0
Light db '‘¢¥â ¢ª«./¢ëª«.', 0
Light db '‘¢¥â ¢ª«./¢ëª«.', 0
else
sz_main_menu_View db 'View', 0
sz_main_menu_Veiw_Vertexes db 'Vertexes on/off', 0
sz_main_menu_Veiw_Faces db 'Faces on/off', 0
sz_main_menu_Veiw_Faces_Fill db 'Faces fill on/off', 0
sz_main_menu_Veiw_Light db 'Light on/off', 0
sz_main_menu_Veiw_Reset db 'Reset settings', 0
end if
main_menu dd 0
main_menu_file dd 0
main_menu_view dd 0
KMENUITEM_NORMAL equ 0
KMENUITEM_SUBMENU equ 1
KMENUITEM_SEPARATOR equ 2
|
@ -3,8 +3,12 @@
|
|||||||
; à ¡®âë ®ª á ª®®à¤¨ â ¬¨ ¢¥àè¨
|
; à ¡®âë ®ª á ª®®à¤¨ â ¬¨ ¢¥àè¨
|
||||||
;
|
;
|
||||||
|
|
||||||
prop_wnd_width equ 340 ;è¨à¨ ®ª ᮠ᢮©á⢠¬¨ ®¡ê¥ªâ
|
prop_wnd_width equ 340 ;è¨à¨ ®ª ᮠ᢮©á⢠¬¨ ®¡ê¥ªâ
|
||||||
prop_wnd_height equ 460
|
prop_wnd_height equ 460 ;¢ëá®â ®ª ᮠ᢮©á⢠¬¨ ®¡ê¥ªâ
|
||||||
|
3d_wnd_l equ 5 ;®âáâ㯠¤«ï tinygl ¡ãä¥à á«¥¢
|
||||||
|
3d_wnd_t equ 23 ;®âáâ㯠¤«ï tinygl ¡ãä¥à ᢥàåã
|
||||||
|
3d_wnd_w equ 320
|
||||||
|
3d_wnd_h equ 240
|
||||||
SIZE_ONE_FLOAT equ 14
|
SIZE_ONE_FLOAT equ 14
|
||||||
MAX_OBJECT_SIZE equ (4+SIZE_ONE_FLOAT*3+1)
|
MAX_OBJECT_SIZE equ (4+SIZE_ONE_FLOAT*3+1)
|
||||||
|
|
||||||
@ -12,7 +16,19 @@ bit_vertexes equ 0
|
|||||||
bit_faces equ 1
|
bit_faces equ 1
|
||||||
bit_faces_fill equ 2
|
bit_faces_fill equ 2
|
||||||
bit_light equ 3
|
bit_light equ 3
|
||||||
def_dr_mode equ 0x1111b
|
|
||||||
|
ini_name db 'info3ds.ini',0
|
||||||
|
ini_sec_w3d db 'Window 3d',0
|
||||||
|
key_dv db 'draw_vertices',0
|
||||||
|
key_df db 'draw_faces',0
|
||||||
|
key_dff db 'draw_faces_fill',0
|
||||||
|
key_dl db 'draw_light',0
|
||||||
|
key_ox db 'col_ox',0
|
||||||
|
key_oy db 'col_oy',0
|
||||||
|
key_oz db 'col_oz',0
|
||||||
|
key_bk db 'col_bkgnd',0
|
||||||
|
key_vert db 'col_vertices',0
|
||||||
|
key_face db 'col_faces',0
|
||||||
|
|
||||||
prop_wnd_run db 0 ;¯¥à¥¬¥ ï á«¥¤ïé ï § ⥬ çâ®-¡ë ¥ § ¯ã᪠âì ¡®«ìè¥ 1-£® ®ª ᮠ᢮©á⢠¬¨ ®¤®¢à¥¬¥®
|
prop_wnd_run db 0 ;¯¥à¥¬¥ ï á«¥¤ïé ï § ⥬ çâ®-¡ë ¥ § ¯ã᪠âì ¡®«ìè¥ 1-£® ®ª ᮠ᢮©á⢠¬¨ ®¤®¢à¥¬¥®
|
||||||
|
|
||||||
@ -46,29 +62,68 @@ pushad
|
|||||||
cmp eax,0
|
cmp eax,0
|
||||||
je .no_points
|
je .no_points
|
||||||
mov ebx,[eax] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ë¡à ®£® ¡«®ª
|
mov ebx,[eax] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ë¡à ®£® ¡«®ª
|
||||||
add ebx,[open_file_lif]
|
add ebx,[open_file_data]
|
||||||
|
|
||||||
cmp word[ebx],CHUNK_VERTLIST
|
cmp word[ebx],CHUNK_OBJBLOCK
|
||||||
jne .end_vlist
|
jne .end_oblo
|
||||||
movzx edx,word[ebx+6] ;ª®««¨ç¥á⢮ â®ç¥ª
|
mov dword[capt_p],txt_4000
|
||||||
add ebx,8
|
call found_block_data
|
||||||
mov dword[capt_p],txt_4110
|
cmp eax,0
|
||||||
;¯®¨áª ¤ ëå ¤«ï âà¥ã£®«ìª®¢
|
je .no_points
|
||||||
mov ecx,eax
|
mov esi,eax
|
||||||
stdcall [tl_node_poi_get_info], tree1,0
|
|
||||||
@@:
|
|
||||||
mov esi,eax
|
|
||||||
stdcall [tl_node_poi_get_data], tree1,esi
|
|
||||||
cmp eax,ecx
|
|
||||||
je @f ;¥á«¨ ¯®¯ «¨ ¢ë¡à ë© ã§¥«
|
|
||||||
stdcall [tl_node_poi_get_next_info], tree1,esi
|
|
||||||
cmp eax,0
|
|
||||||
jne @b
|
|
||||||
jmp .set_points
|
|
||||||
@@:
|
|
||||||
;¥á«¨ 諨 ¢ë¡à ë© ã§¥«, â® ¤ «¥¥ ¯ëâ ¥¬áï ©â¨ ã§¥« á âà¥ã£®«ì¨ª ¬¨
|
|
||||||
movzx ecx,byte[esi+2] ;cl - ã஢¥ì ¢ë¡à ®£® 㧫
|
movzx ecx,byte[esi+2] ;cl - ã஢¥ì ¢ë¡à ®£® 㧫
|
||||||
.cycle_0:
|
.cycle_0:
|
||||||
|
stdcall [tl_node_poi_get_next_info], tree1,esi
|
||||||
|
cmp eax,0
|
||||||
|
je .no_points
|
||||||
|
cmp byte[eax+2],cl
|
||||||
|
jle .no_points
|
||||||
|
mov esi,eax
|
||||||
|
stdcall [tl_node_poi_get_data], tree1,esi
|
||||||
|
mov ebx,[eax]
|
||||||
|
add ebx,[open_file_data]
|
||||||
|
cmp word[ebx],CHUNK_VERTLIST
|
||||||
|
je .ini_vlist
|
||||||
|
jmp .cycle_0
|
||||||
|
jmp .no_points
|
||||||
|
.end_oblo:
|
||||||
|
cmp word[ebx],CHUNK_TRIMESH
|
||||||
|
jne .end_trim
|
||||||
|
mov dword[capt_p],txt_4100
|
||||||
|
call found_block_data
|
||||||
|
cmp eax,0
|
||||||
|
je .no_points
|
||||||
|
mov esi,eax
|
||||||
|
movzx ecx,byte[esi+2] ;cl - ã஢¥ì ¢ë¡à ®£® 㧫
|
||||||
|
.cycle_1:
|
||||||
|
stdcall [tl_node_poi_get_next_info], tree1,esi
|
||||||
|
cmp eax,0
|
||||||
|
je .no_points
|
||||||
|
cmp byte[eax+2],cl
|
||||||
|
jle .no_points
|
||||||
|
mov esi,eax
|
||||||
|
stdcall [tl_node_poi_get_data], tree1,esi
|
||||||
|
mov ebx,[eax]
|
||||||
|
add ebx,[open_file_data]
|
||||||
|
cmp word[ebx],CHUNK_VERTLIST
|
||||||
|
je .ini_vlist
|
||||||
|
jmp .cycle_1
|
||||||
|
jmp .no_points
|
||||||
|
.end_trim:
|
||||||
|
cmp word[ebx],CHUNK_VERTLIST
|
||||||
|
jne .end_vlist
|
||||||
|
mov dword[capt_p],txt_4110
|
||||||
|
.ini_vlist:
|
||||||
|
movzx edx,word[ebx+6] ;ª®««¨ç¥á⢮ â®ç¥ª
|
||||||
|
add ebx,8
|
||||||
|
;¯®¨áª ¤ ëå ¤«ï âà¥ã£®«ìª®¢
|
||||||
|
call found_block_data
|
||||||
|
cmp eax,0
|
||||||
|
je .set_points
|
||||||
|
mov esi,eax
|
||||||
|
;¥á«¨ 諨 ¢ë¡à ë© ã§¥«, â® ¤ «¥¥ ¯ëâ ¥¬áï ©â¨ ã§¥« á âà¥ã£®«ì¨ª ¬¨
|
||||||
|
movzx ecx,byte[esi+2] ;cl - ã஢¥ì ¢ë¡à ®£® 㧫
|
||||||
|
.cycle_2:
|
||||||
stdcall [tl_node_poi_get_next_info], tree1,esi
|
stdcall [tl_node_poi_get_next_info], tree1,esi
|
||||||
cmp eax,0
|
cmp eax,0
|
||||||
je .set_points
|
je .set_points
|
||||||
@ -77,14 +132,14 @@ pushad
|
|||||||
cmp byte[esi+2],cl
|
cmp byte[esi+2],cl
|
||||||
jl .set_points
|
jl .set_points
|
||||||
je .found
|
je .found
|
||||||
jmp .cycle_0
|
jmp .cycle_2
|
||||||
.found: ;¥á«¨ 諨 㧥« ⮣®¦¥ ã஢ï çâ® ¨ ¢ë¡à ë© ã§¥«
|
.found: ;¥á«¨ 諨 㧥« ⮣®¦¥ ã஢ï çâ® ¨ ¢ë¡à ë© ã§¥«
|
||||||
cmp eax,0
|
cmp eax,0
|
||||||
je .set_points
|
je .set_points
|
||||||
mov eax,[eax]
|
mov eax,[eax]
|
||||||
add eax,[open_file_lif]
|
add eax,[open_file_data]
|
||||||
cmp word[eax],CHUNK_FACELIST
|
cmp word[eax],CHUNK_FACELIST
|
||||||
jne .cycle_0
|
jne .cycle_2
|
||||||
movzx ecx,word[eax+6]
|
movzx ecx,word[eax+6]
|
||||||
mov [obj_tri_count],ecx
|
mov [obj_tri_count],ecx
|
||||||
add eax,8 ;2+4+2 (chunk+size+count)
|
add eax,8 ;2+4+2 (chunk+size+count)
|
||||||
@ -155,6 +210,24 @@ pushad
|
|||||||
stdcall [edit_box_set_text], edit1, txt_q
|
stdcall [edit_box_set_text], edit1, txt_q
|
||||||
stdcall [edit_box_set_text], edit2, txt_q
|
stdcall [edit_box_set_text], edit2, txt_q
|
||||||
stdcall [edit_box_set_text], edit3, txt_q
|
stdcall [edit_box_set_text], edit3, txt_q
|
||||||
|
mov eax,0xc0c0c0
|
||||||
|
mov ebx,[color_ox]
|
||||||
|
shr ebx,2
|
||||||
|
and ebx,0x3f3f3f
|
||||||
|
add eax,ebx
|
||||||
|
mov [edit1.color],eax
|
||||||
|
mov eax,0xc0c0c0
|
||||||
|
mov ebx,[color_oy]
|
||||||
|
shr ebx,2
|
||||||
|
and ebx,0x3f3f3f
|
||||||
|
add eax,ebx
|
||||||
|
mov [edit2.color],eax
|
||||||
|
mov eax,0xc0c0c0
|
||||||
|
mov ebx,[color_oz]
|
||||||
|
shr ebx,2
|
||||||
|
and ebx,0x3f3f3f
|
||||||
|
add eax,ebx
|
||||||
|
mov [edit3.color],eax
|
||||||
popad
|
popad
|
||||||
|
|
||||||
call prop_red_win
|
call prop_red_win
|
||||||
@ -207,7 +280,8 @@ pushad
|
|||||||
add cx,word[buf_0.t]
|
add cx,word[buf_0.t]
|
||||||
shl ecx,16
|
shl ecx,16
|
||||||
mov cx,prop_wnd_height
|
mov cx,prop_wnd_height
|
||||||
mov edx,0xffffd0+0x33000000
|
mov edx,[sc.work]
|
||||||
|
or edx,0x33000000
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
mov esi,[sc.work_button]
|
mov esi,[sc.work_button]
|
||||||
@ -215,7 +289,7 @@ pushad
|
|||||||
mcall , (30 shl 16)+20, (266 shl 16)+20, 4
|
mcall , (30 shl 16)+20, (266 shl 16)+20, 4
|
||||||
|
|
||||||
mov ebx,[image_data_toolbar]
|
mov ebx,[image_data_toolbar]
|
||||||
add ebx,4*IMAGE_TOOLBAR_ICON_SIZE
|
add ebx,3*IMAGE_TOOLBAR_ICON_SIZE
|
||||||
mcall 7, , (16 shl 16)+16, (7 shl 16)+268 ;load
|
mcall 7, , (16 shl 16)+16, (7 shl 16)+268 ;load
|
||||||
|
|
||||||
sub ebx,IMAGE_TOOLBAR_ICON_SIZE
|
sub ebx,IMAGE_TOOLBAR_ICON_SIZE
|
||||||
@ -238,14 +312,39 @@ popad
|
|||||||
;ãáâ ®¢ª ¢á¥å ®á®¢ëå ¯¥à¥¬¥ëå ¯® 㬮«ç ¨î
|
;ãáâ ®¢ª ¢á¥å ®á®¢ëå ¯¥à¥¬¥ëå ¯® 㬮«ç ¨î
|
||||||
align 4
|
align 4
|
||||||
prop_wnd_clear_param:
|
prop_wnd_clear_param:
|
||||||
mov dword[angle_x],0.0
|
;ãáâ ®¢ª ¯ à ¬¥â஢ ®â®¡à ¦¥¨ï
|
||||||
mov dword[angle_y],0.0
|
call mnu_reset_settings
|
||||||
mov dword[angle_z],0.0
|
|
||||||
|
;®¡ã«¥¨¥ 㪠§ ⥫¥© ¤ ë¥ ®¡ê¥ªâ®¢
|
||||||
mov dword[obj_poi_data],0
|
mov dword[obj_poi_data],0
|
||||||
mov dword[obj_poi_count],0
|
mov dword[obj_poi_count],0
|
||||||
mov dword[obj_tri_data],0
|
mov dword[obj_tri_data],0
|
||||||
mov dword[obj_tri_count],0
|
mov dword[obj_tri_count],0
|
||||||
mov dword[draw_mode],def_dr_mode
|
ret
|
||||||
|
|
||||||
|
;¯®¨áª ¤ ëå
|
||||||
|
;input:
|
||||||
|
;eax - ⥪ã騩 㧥«
|
||||||
|
;output:
|
||||||
|
;eax - áâàãªâãà ⥪ã饣® 㧫 (¨«¨ 0 ¯à¨ ¥ã¤ ç¥)
|
||||||
|
align 4
|
||||||
|
found_block_data:
|
||||||
|
push ebx ecx
|
||||||
|
mov ecx,eax
|
||||||
|
stdcall [tl_node_poi_get_info], tree1,0
|
||||||
|
@@:
|
||||||
|
mov ebx,eax
|
||||||
|
stdcall [tl_node_poi_get_data], tree1,ebx
|
||||||
|
cmp eax,ecx
|
||||||
|
je @f ;¥á«¨ ¯®¯ «¨ ¢ë¡à ë© ã§¥«
|
||||||
|
stdcall [tl_node_poi_get_next_info], tree1,ebx
|
||||||
|
cmp eax,0
|
||||||
|
jne @b
|
||||||
|
jmp .end
|
||||||
|
@@:
|
||||||
|
mov eax,ebx
|
||||||
|
.end:
|
||||||
|
pop ecx ebx
|
||||||
ret
|
ret
|
||||||
|
|
||||||
;ãáâ ®¢ª à §¬¥à®¢ ®¡ê¥ªâ
|
;ãáâ ®¢ª à §¬¥à®¢ ®¡ê¥ªâ
|
||||||
@ -418,7 +517,6 @@ align 4
|
|||||||
draw_3d:
|
draw_3d:
|
||||||
cmp dword[obj_poi_count],2
|
cmp dword[obj_poi_count],2
|
||||||
jl .end_f
|
jl .end_f
|
||||||
|
|
||||||
stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;®ç¨á⨬ ¡ãä¥à 梥⠨ £«ã¡¨ë
|
stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;®ç¨á⨬ ¡ãä¥à 梥⠨ £«ã¡¨ë
|
||||||
stdcall [glPushMatrix]
|
stdcall [glPushMatrix]
|
||||||
bt dword[draw_mode],bit_light
|
bt dword[draw_mode],bit_light
|
||||||
@ -439,7 +537,7 @@ draw_3d:
|
|||||||
;à¨á®¢ ¨¥ â®ç¥ª
|
;à¨á®¢ ¨¥ â®ç¥ª
|
||||||
bt dword[draw_mode],bit_vertexes
|
bt dword[draw_mode],bit_vertexes
|
||||||
jnc .end_points
|
jnc .end_points
|
||||||
stdcall [glColor3f], 1.0,1.0,1.0
|
stdcall [glColor3ub],[color_vert+2],[color_vert+1],[color_vert]
|
||||||
stdcall [glBegin],GL_POINTS
|
stdcall [glBegin],GL_POINTS
|
||||||
mov eax,[obj_poi_data]
|
mov eax,[obj_poi_data]
|
||||||
mov ebx,[obj_poi_count]
|
mov ebx,[obj_poi_count]
|
||||||
@ -459,13 +557,13 @@ draw_3d:
|
|||||||
mov eax,[eax]
|
mov eax,[eax]
|
||||||
|
|
||||||
stdcall [glBegin],GL_LINES
|
stdcall [glBegin],GL_LINES
|
||||||
stdcall [glColor3f], 1.0, 0.0, 0.0
|
stdcall [glColor3ub],[color_ox+2],[color_ox+1],[color_ox]
|
||||||
stdcall [glVertex3f], [obj_x_min],[eax+4],[eax+8]
|
stdcall [glVertex3f], [obj_x_min],[eax+4],[eax+8]
|
||||||
stdcall [glVertex3f], [obj_x_max],[eax+4],[eax+8]
|
stdcall [glVertex3f], [obj_x_max],[eax+4],[eax+8]
|
||||||
stdcall [glColor3f], 0.0, 0.0, 1.0
|
stdcall [glColor3ub],[color_oy+2],[color_oy+1],[color_oy]
|
||||||
stdcall [glVertex3f], [eax],[obj_y_min],[eax+8]
|
stdcall [glVertex3f], [eax],[obj_y_min],[eax+8]
|
||||||
stdcall [glVertex3f], [eax],[obj_y_max],[eax+8]
|
stdcall [glVertex3f], [eax],[obj_y_max],[eax+8]
|
||||||
stdcall [glColor3f], 0.0, 1.0, 0.0
|
stdcall [glColor3ub],[color_oz+2],[color_oz+1],[color_oz]
|
||||||
stdcall [glVertex3f], [eax],[eax+4],[obj_z_min]
|
stdcall [glVertex3f], [eax],[eax+4],[obj_z_min]
|
||||||
stdcall [glVertex3f], [eax],[eax+4],[obj_z_max]
|
stdcall [glVertex3f], [eax],[eax+4],[obj_z_max]
|
||||||
stdcall [glEnd]
|
stdcall [glEnd]
|
||||||
@ -484,10 +582,15 @@ draw_3d:
|
|||||||
je .end_triangles
|
je .end_triangles
|
||||||
cmp dword[obj_poi_count],0
|
cmp dword[obj_poi_count],0
|
||||||
je .end_triangles
|
je .end_triangles
|
||||||
stdcall [glColor3f], 0.5,0.5,0.5
|
bt dword[draw_mode],bit_faces_fill
|
||||||
;bt dword[draw_mode],bit_faces_fill
|
jc @f
|
||||||
;jnc @f
|
push GL_LINE
|
||||||
;@@:
|
jmp .end_0
|
||||||
|
@@:
|
||||||
|
push GL_FILL
|
||||||
|
.end_0:
|
||||||
|
stdcall [glPolygonMode], GL_FRONT_AND_BACK ;mode - 㦥 ¢ á⥪¥
|
||||||
|
stdcall [glColor3ub],[color_face+2],[color_face+1],[color_face]
|
||||||
stdcall [glBegin],GL_TRIANGLES
|
stdcall [glBegin],GL_TRIANGLES
|
||||||
mov eax,[obj_tri_data]
|
mov eax,[obj_tri_data]
|
||||||
mov ecx,[obj_tri_count]
|
mov ecx,[obj_tri_count]
|
||||||
@ -596,13 +699,87 @@ endp
|
|||||||
|
|
||||||
align 4
|
align 4
|
||||||
prop_mouse:
|
prop_mouse:
|
||||||
;push ecx edi
|
push eax ebx
|
||||||
|
mcall 37,3
|
||||||
|
bt eax,0
|
||||||
|
jnc .end_m
|
||||||
|
;mouse l. but. move
|
||||||
|
cmp dword[mouse_drag],1
|
||||||
|
jne .end_m
|
||||||
|
mcall 37,1 ;get mouse coords
|
||||||
|
mov ebx,eax
|
||||||
|
shr ebx,16 ;mouse.x
|
||||||
|
cmp ebx,3d_wnd_l
|
||||||
|
jg @f
|
||||||
|
mov ebx,3d_wnd_l
|
||||||
|
@@:
|
||||||
|
sub ebx,3d_wnd_l
|
||||||
|
cmp ebx,3d_wnd_w
|
||||||
|
jle @f
|
||||||
|
mov ebx,3d_wnd_w
|
||||||
|
@@:
|
||||||
|
and eax,0xffff ;mouse.y
|
||||||
|
cmp eax,3d_wnd_t
|
||||||
|
jg @f
|
||||||
|
mov eax,3d_wnd_t
|
||||||
|
@@:
|
||||||
|
sub eax,3d_wnd_t
|
||||||
|
cmp eax,3d_wnd_h
|
||||||
|
jle @f
|
||||||
|
mov eax,3d_wnd_h
|
||||||
|
@@:
|
||||||
|
finit
|
||||||
|
fild dword[mouse_y]
|
||||||
|
mov [mouse_y],eax
|
||||||
|
fisub dword[mouse_y]
|
||||||
|
fdiv dword[angle_dxm] ;¥á«¨ ªãàá®à ¤¢¨¦¥âáï ¯® ®á¨ y (¢¢¥àå ¨«¨ ¢¨§) â® ¯®¢®à®â ¤¥« ¥¬ ¢®ªà㣠®á¨ x
|
||||||
|
fadd dword[angle_x]
|
||||||
|
fstp dword[angle_x]
|
||||||
|
|
||||||
|
fild dword[mouse_x]
|
||||||
|
mov [mouse_x],ebx
|
||||||
|
fisub dword[mouse_x]
|
||||||
|
fdiv dword[angle_dym] ;¥á«¨ ªãàá®à ¤¢¨¦¥âáï ¯® ®á¨ x (¢¢¥àå ¨«¨ ¢¨§) â® ¯®¢®à®â ¤¥« ¥¬ ¢®ªà㣠®á¨ y
|
||||||
|
fadd dword[angle_y]
|
||||||
|
fstp dword[angle_y]
|
||||||
|
|
||||||
|
call draw_3d
|
||||||
|
jmp .end_d
|
||||||
|
.end_m:
|
||||||
|
bt eax,16
|
||||||
|
jnc @f
|
||||||
|
;mouse l. but. up
|
||||||
|
mov dword[mouse_drag],0
|
||||||
|
jmp .end_d
|
||||||
|
@@:
|
||||||
|
bt eax,8
|
||||||
|
jnc .end_d
|
||||||
|
;mouse l. but. press
|
||||||
|
mcall 37,1 ;get mouse coords
|
||||||
|
mov ebx,eax
|
||||||
|
shr ebx,16 ;mouse.x
|
||||||
|
cmp ebx,3d_wnd_l
|
||||||
|
jl .end_d
|
||||||
|
sub ebx,3d_wnd_l
|
||||||
|
cmp ebx,3d_wnd_w
|
||||||
|
jg .end_d
|
||||||
|
and eax,0xffff ;mouse.y
|
||||||
|
cmp eax,3d_wnd_t
|
||||||
|
jl .end_d
|
||||||
|
sub eax,3d_wnd_t
|
||||||
|
cmp eax,3d_wnd_h
|
||||||
|
jg .end_d
|
||||||
|
mov dword[mouse_drag],1
|
||||||
|
mov dword[mouse_x],ebx
|
||||||
|
mov dword[mouse_y],eax
|
||||||
|
.end_d:
|
||||||
|
|
||||||
stdcall [kmainmenu_dispatch_cursorevent], [main_menu]
|
stdcall [kmainmenu_dispatch_cursorevent], [main_menu]
|
||||||
stdcall [tl_mouse], tree3
|
stdcall [tl_mouse], tree3
|
||||||
stdcall [edit_box_mouse], edit1
|
stdcall [edit_box_mouse], edit1
|
||||||
stdcall [edit_box_mouse], edit2
|
stdcall [edit_box_mouse], edit2
|
||||||
stdcall [edit_box_mouse], edit3
|
stdcall [edit_box_mouse], edit3
|
||||||
;pop edi ecx
|
pop ebx eax
|
||||||
ret
|
ret
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
@ -692,10 +869,20 @@ prop_button:
|
|||||||
jmp prop_still.end
|
jmp prop_still.end
|
||||||
@@:
|
@@:
|
||||||
cmp ah,7
|
cmp ah,7
|
||||||
|
jne @f
|
||||||
|
call mnu_faces_fill_on_off
|
||||||
|
jmp prop_still.end
|
||||||
|
@@:
|
||||||
|
cmp ah,8
|
||||||
jne @f
|
jne @f
|
||||||
call mnu_light_on_off
|
call mnu_light_on_off
|
||||||
jmp prop_still.end
|
jmp prop_still.end
|
||||||
@@:
|
@@:
|
||||||
|
cmp ah,9
|
||||||
|
jne @f
|
||||||
|
call mnu_reset_settings
|
||||||
|
jmp prop_still.end
|
||||||
|
@@:
|
||||||
|
|
||||||
cmp ah,1
|
cmp ah,1
|
||||||
jne prop_still.end
|
jne prop_still.end
|
||||||
@ -747,23 +934,49 @@ proc prop_timer_funct uses eax
|
|||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
;¨§¬¥ï¥¬ ०¨¬ à¨á®¢ ¨ï ¢¥àè¨
|
||||||
align 4
|
align 4
|
||||||
mnu_vertexes_on_off:
|
mnu_vertexes_on_off:
|
||||||
xor dword[draw_mode], 1 shl bit_vertexes
|
xor dword[draw_mode], 1 shl bit_vertexes
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
;¨§¬¥ï¥¬ ०¨¬ à¨á®¢ ¨ï £à ¥©
|
||||||
align 4
|
align 4
|
||||||
mnu_faces_on_off:
|
mnu_faces_on_off:
|
||||||
xor dword[draw_mode], 1 shl bit_faces
|
xor dword[draw_mode], 1 shl bit_faces
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
;¨§¬¥ï¥¬ ª ઠáë¥ ¨«¨ ᯫ®èë¥ £à ¨
|
||||||
|
align 4
|
||||||
|
mnu_faces_fill_on_off:
|
||||||
|
xor dword[draw_mode], 1 shl bit_faces_fill
|
||||||
|
or dword[draw_mode], 1 shl bit_faces ;¢ª«îç ¥¬ ०¨¬ à¨á®¢ ¨ï £à ¥© (¥á«¨ ¢¤à㣠¡ë« ®âª«îç¥)
|
||||||
|
ret
|
||||||
|
|
||||||
|
;¢ª«îç ¥¬ ¨«¨ ®âª«îç ¥¬ ®á¢¥é¥¨¥
|
||||||
align 4
|
align 4
|
||||||
mnu_light_on_off:
|
mnu_light_on_off:
|
||||||
xor dword[draw_mode], 1 shl bit_light
|
xor dword[draw_mode], 1 shl bit_light
|
||||||
ret
|
ret
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
draw_mode dd 0
|
mnu_reset_settings:
|
||||||
|
mov dword[angle_x],0.0
|
||||||
|
mov dword[angle_y],0.0
|
||||||
|
mov dword[angle_z],0.0
|
||||||
|
m2m dword[draw_mode],dword[def_dr_mode]
|
||||||
|
ret
|
||||||
|
|
||||||
|
align 4
|
||||||
|
def_dr_mode dd 0 ;०¨¬ à¨á®¢ ¨ï ¯® 㬮«ç ¨î
|
||||||
|
delt_size dd 3.0 ;¨§¬¥¥¨¥ 㣫®¢ ¯à¨ ¯®¢®à®â å á ª«¨¢¨ âãàë
|
||||||
|
mouse_drag dd 0 ;०¨¬ ¯®¢®à®â áæ¥ë ®â ¯¥à¥¬¥é¥¨¨ ªãàá®à ¬ëè¨
|
||||||
|
mouse_x dd 0
|
||||||
|
mouse_y dd 0
|
||||||
|
angle_dxm dd 1.7775 ;~ 3d_wnd_w/180 - ¯à¨¡ ¢«¥¨¥ 㣫®¢ ¯®¢®à®â áæ¥ë ¯à¨ ¢à 饨¨ ¬ë襩
|
||||||
|
angle_dym dd 1.3335 ;~ 3d_wnd_h/180
|
||||||
|
;angle_dzm dd ?
|
||||||
|
draw_mode dd 0 ;०¨¬ à¨á®¢ ¨ï ®¡ê¥ªâ
|
||||||
obj_poi_data dd 0 ;㪠§ â¥«ì ª®®à¤¨ âë ¢¥àè¨
|
obj_poi_data dd 0 ;㪠§ â¥«ì ª®®à¤¨ âë ¢¥àè¨
|
||||||
obj_poi_count dd 0 ;ª®««¨ç¥á⢮ ¢¥àè¨
|
obj_poi_count dd 0 ;ª®««¨ç¥á⢮ ¢¥àè¨
|
||||||
obj_tri_data dd 0 ;㪠§ â¥«ì ¤ ë¥ âà¥ã£®«ì¨ª®¢
|
obj_tri_data dd 0 ;㪠§ â¥«ì ¤ ë¥ âà¥ã£®«ì¨ª®¢
|
||||||
|
Loading…
Reference in New Issue
Block a user