Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 7610 → Rev 7609

/data/Tupfile.lua
147,6 → 147,7
{"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/usb_boot_1251.txt"},
{"kolibrios/3D/info3ds/INFO3DS.INI", PROGS .. "/develop/info3ds/info3ds.ini"},
{"kolibrios/3D/info3ds/OBJECTS.PNG", PROGS .. "/develop/info3ds/objects.png"},
{"kolibrios/3D/info3ds/TL_SYS_16.PNG", PROGS .. "/develop/info3ds/tl_sys_16.png"},
{"kolibrios/3D/info3ds/TOOLBAR.PNG", PROGS .. "/develop/info3ds/toolbar.png"},
{"kolibrios/3D/info3ds/FONT8X9.BMP", PROGS .. "/fs/kfar/trunk/font8x9.bmp"},
{"kolibrios/3D/md2view/", "common/3d/md2view/*"},
/programs/develop/info3ds/convert_stl_3ds.inc
File deleted
\ No newline at end of file
/programs/develop/info3ds/info3ds.asm
1,5 → 1,5
use32
org 0
org 0x0
db 'MENUET01' ;¨¤¥­â¨ä. ¨á¯®«­ï¥¬®£® ä ©«  ¢á¥£¤  8 ¡ ©â
dd 1, start, i_end, mem, stacktop, file_name, sys_path
 
16,7 → 16,6
include 'info_fun_float.inc'
include 'info_menu.inc'
include 'data.inc'
include 'convert_stl_3ds.inc'
 
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
 
71,8 → 70,8
mov edi,openfile_path
@@:
lodsd
or eax,eax
jz @f ;¢ë室, ¥á«¨ 0
cmp eax,0
je @f ;¢ë室, ¥á«¨ 0
stosd
jmp @b
@@:
138,9 → 137,9
stdcall [ksubmenu_add], [main_menu], eax
 
mov dword[w_scr_t1.type],1
stdcall [tl_data_init], tree1
stdcall dword[tl_data_init], tree1
;á¨á⥬­ë¥ ¨ª®­ª¨ 16*16 ¤«ï tree_list
include_image_file 'tl_sys_16.png', icon_tl_sys
load_image_file 'tl_sys_16.png', icon_tl_sys
;¥á«¨ ¨§®¡à ¦¥­¨¥ ­¥ ®âªàë«®áì, â® ¢ icon_tl_sys ¡ã¤ãâ
;­¥ ¨­¨æ¨ «¨§¨à®¢ ­­ë¥ ¤ ­­ë¥, ­® ®è¨¡ª¨ ­¥ ¡ã¤¥â, â. ª. ¡ãä¥à ­ã¦­®£® à §¬¥à 
mov eax,dword[icon_tl_sys]
257,8 → 256,8
@@:
sub ebx,eax
mcall SF_WAIT_EVENT_TIMEOUT
or eax,eax
jz timer_funct
cmp eax,0
je timer_funct
 
cmp al,1
jne @f
444,7 → 443,7
int 0x40
 
mov dword[w_scr_t1.all_redraw],1
stdcall [tl_draw], tree1
stdcall [tl_draw],dword tree1
 
stdcall [buf2d_draw], buf_0
 
569,17 → 568,7
init_tree:
stdcall [tl_info_clear], tree1 ;®ç¨á⪠ ᯨ᪠ ®¡ê¥ªâ®¢
 
mov esi,[open_file_data]
stdcall convert_stl_3ds, esi,[open_file_size] ;¯à®¢¥à塞 ä ©« ä®à¬ â  *.stl ?
or eax,eax
jz @f
;¥á«¨ ä ©« ¢ ä®à¬ â¥ *.stl
mov [open_file_size],ecx
mov esi,eax
stdcall mem.Free,[open_file_data]
mov [open_file_data],esi
mov byte[can_save],1
@@:
mov esi,dword[open_file_data]
cmp word[esi],CHUNK_MAIN
je @f
stdcall buf_draw_beg, buf_0
594,8 → 583,8
stdcall add_3ds_object, ID_ICON_CHUNK_MAIN,0,dword[esi+2],0
call block_children ;¢å®¤ ¢ ¤®ç¥à­¨© ¡«®ª
 
mov edi,[file_3ds.offs]
add edi,[file_3ds.size]
mov edi,dword[file_3ds.offs]
add edi,dword[file_3ds.size]
.cycle_main:
cmp dword[level_stack],0
jle .end_cycle
603,7 → 592,7
cmp esi,edi ;¥á«¨ ª®­¥æ ä ©« 
jge .end_cycle
 
mov edx,[esi+2] ;à §¬¥à ¡«®ª 
mov edx,dword[esi+2] ;à §¬¥à ¡«®ª 
call block_analiz
cmp dword[bl_found],0
jne @f
767,9 → 756,9
mov dword[level_stack],FILE_ERROR_CHUNK_SIZE
jmp .end_f
@@:
mov [eax],esi ;㪠§ â¥«ì ­  ­ ç «® ¡«®ª 
mov ebx,[esi+2]
mov [eax+4],ebx ;à §¬¥à ¡«®ª 
mov dword[eax],esi ;㪠§ â¥«ì ­  ­ ç «® ¡«®ª 
mov ebx,dword[esi+2]
mov dword[eax+4],ebx ;à §¬¥à ¡«®ª 
add esi,6 ;¯¥à¥å®¤¨¬ ª ¤ ­­ë¬ ¡«®ª 
inc dword[level_stack]
add eax,8
826,10 → 815,8
 
;input:
; esi - 㪠§ â¥«ì ­   ­ «¨§¨àã¥¬ë¥ ¤ ­­ë¥
; icon - ­®¬¥à ¨ª®­ª¨
; level - ã஢¥­ì ¢«®¦¥­­®á⨠㧫 
; size_bl - à §¬¥à ¡«®ª 
; info_bl - áâப  á ®¯¨á ­¨¥¬ ¡«®ª 
align 4
proc add_3ds_object, icon:dword, level:dword, size_bl:dword, info_bl:dword
pushad
843,8 → 830,8
mov ecx,dword[size_bl]
mov dword[buffer+4],ecx ;à §¬¥à ¡«®ª  (¨á¯®«ì§ã¥âáï ¢ ä㭪樨 buf_draw_hex_table ¤«ï à¨á®¢ ­¨ï «¨­¨¨)
mov ecx,dword[bl_found]
or ecx,ecx
jz @f
cmp ecx,0
je @f
;... §¤¥áì ­ã¦¥­ ¤à㣮©  «£®à¨â¬ § é¨âë ®â 㤠«¥­¨ï
mov cl,byte[ecx+4]
@@:
855,8 → 842,8
mov dword[buffer+list_offs_p_data],ecx
stdcall hex_in_str, buffer+list_offs_text,dword[esi+1],2
stdcall hex_in_str, buffer+list_offs_text+2,dword[esi],2 ;ª®¤ 3ds ¡«®ª 
or ecx,ecx
jnz @f
cmp ecx,0
jne @f
mov byte[buffer+list_offs_text+4],0 ;0 - ᨬ¢®« ª®­æ  áâப¨
jmp .no_capt
@@:
893,7 → 880,7
 
align 4
.str:
mov ecx,10
mov ecx,0x0a
cmp eax,ecx
jb @f
xor edx,edx
1036,7 → 1023,6
dd Filter.end - Filter.1
.1:
db '3DS',0
db 'STL',0
db 'PNG',0
.end:
db 0
1060,38 → 1046,38
 
if lang eq ru
head_f_i:
head_f_l db '"‘¨á⥬­ ï ®è¨¡ª ',0
err_msg_found_lib_0 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'proc_lib.obj',39,'" -tE',0
err_msg_import_0 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,'" -tW',0
err_msg_found_lib_1 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libimg.obj',39,'" -tE',0
err_msg_import_1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,'" -tW',0
err_msg_found_lib_2 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'box_lib.obj',39,'" -tE',0
err_msg_import_2 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'box_lib',39,'" -tW',0
err_msg_found_lib_3 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'buf2d.obj',39,'" -tE',0
err_msg_import_3 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'buf2d',39,'" -tW',0
err_msg_found_lib_4 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'kmenu.obj',39,'" -tE',0
err_msg_import_4 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'kmenu',39,'" -tW',0
err_msg_found_lib_5 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'tinygl.obj',39,'" -tE',0
err_msg_import_5 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'tinygl',39,'" -tW',0
err_msg_found_lib_6 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libini.obj',39,'" -tE',0
err_msg_import_6 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libini',39,'" -tW',0
head_f_l db '‘¨á⥬­ ï ®è¨¡ª ',0
err_msg_found_lib_0 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'proc_lib.obj',39,0
err_msg_import_0 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,0
err_msg_found_lib_1 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libimg.obj',39,0
err_msg_import_1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,0
err_msg_found_lib_2 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'box_lib.obj',39,0
err_msg_import_2 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'box_lib',39,0
err_msg_found_lib_3 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'buf2d.obj',39,0
err_msg_import_3 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'buf2d',39,0
err_msg_found_lib_4 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'kmenu.obj',39,0
err_msg_import_4 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'kmenu',39,0
err_msg_found_lib_5 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'tinygl.obj',39,0
err_msg_import_5 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'tinygl',39,0
err_msg_found_lib_6 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libini.obj',39,0
err_msg_import_6 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libini',39,0
else
head_f_i:
head_f_l db '"System error',0
err_msg_found_lib_0 db 'Sorry I cannot found library ',39,'proc_lib.obj',39,'" -tE',0
err_msg_import_0 db 'Error on load import library ',39,'proc_lib.obj',39,'" -tW',0
err_msg_found_lib_1 db 'Sorry I cannot found library ',39,'libimg.obj',39,'" -tE',0
err_msg_import_1 db 'Error on load import library ',39,'libimg.obj',39,'" -tW',0
err_msg_found_lib_2 db 'Sorry I cannot found library ',39,'box_lib.obj',39,'" -tE',0
err_msg_import_2 db 'Error on load import library ',39,'box_lib.obj',39,'" -tW',0
err_msg_found_lib_3 db 'Sorry I cannot found library ',39,'buf2d.obj',39,'" -tE',0
err_msg_import_3 db 'Error on load import library ',39,'buf2d.obj',39,'" -tW',0
err_msg_found_lib_4 db 'Sorry I cannot found library ',39,'kmenu.obj',39,'" -tE',0
err_msg_import_4 db 'Error on load import library ',39,'kmenu.obj',39,'" -tW',0
err_msg_found_lib_5 db 'Sorry I cannot found library ',39,'tinygl.obj',39,'" -tE',0
err_msg_import_5 db 'Error on load import library ',39,'tinygl',39,'" -tW',0
err_msg_found_lib_6 db 'Sorry I cannot found library ',39,'libini.obj',39,'" -tE',0
err_msg_import_6 db 'Error on load import library ',39,'libini',39,'" -tW',0
head_f_l db 'System error',0
err_msg_found_lib_0 db 'Sorry I cannot found library ',39,'proc_lib.obj',39,0
err_msg_import_0 db 'Error on load import library ',39,'proc_lib.obj',39,0
err_msg_found_lib_1 db 'Sorry I cannot found library ',39,'libimg.obj',39,0
err_msg_import_1 db 'Error on load import library ',39,'libimg.obj',39,0
err_msg_found_lib_2 db 'Sorry I cannot found library ',39,'box_lib.obj',39,0
err_msg_import_2 db 'Error on load import library ',39,'box_lib.obj',39,0
err_msg_found_lib_3 db 'Sorry I cannot found library ',39,'buf2d.obj',39,0
err_msg_import_3 db 'Error on load import library ',39,'buf2d.obj',39,0
err_msg_found_lib_4 db 'Sorry I cannot found 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_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
 
align 4
1387,9 → 1373,9
lmodel_ambient dd 0.3, 0.3, 0.3, 1.0 ;  à ¬¥âàë ä®­®¢®£® ®á¢¥é¥­¨ï
 
if lang eq ru
capt db 'info 3ds ¢¥àá¨ï 14.03.19',0 ;¯®¤¯¨áì ®ª­ 
capt db 'info 3ds ¢¥àá¨ï 10.12.17',0 ;¯®¤¯¨áì ®ª­ 
else
capt db 'info 3ds version 14.03.19',0 ;window caption
capt db 'info 3ds version 10.12.17',0 ;window caption
end if
 
align 16
/programs/develop/info3ds/info3ds_u.asm
16,7 → 16,6
include 'info_fun_float.inc'
include 'info_menu.inc'
include 'data.inc'
include 'convert_stl_3ds.inc'
 
3d_wnd_l equ 205 ;®âáâ㯠¤«ï tinygl ¡ãä¥à  á«¥¢ 
3d_wnd_t equ 47 ;®âáâ㯠¤«ï tinygl ¡ãä¥à  ᢥàåã
79,8 → 78,8
mov edi,openfile_path
@@:
lodsd
or eax,eax
jz @f ;¢ë室, ¥á«¨ 0
cmp eax,0
je @f ;¢ë室, ¥á«¨ 0
stosd
jmp @b
@@:
131,9 → 130,9
stdcall [ksubmenu_add], [main_menu], eax
 
mov dword[w_scr_t1.type],1
stdcall [tl_data_init], tree1
stdcall dword[tl_data_init], tree1
;á¨á⥬­ë¥ ¨ª®­ª¨ 16*16 ¤«ï tree_list
include_image_file 'tl_sys_16.png', icon_tl_sys
load_image_file 'tl_sys_16.png', icon_tl_sys
;¥á«¨ ¨§®¡à ¦¥­¨¥ ­¥ ®âªàë«®áì, â® ¢ icon_tl_sys ¡ã¤ãâ
;­¥ ¨­¨æ¨ «¨§¨à®¢ ­­ë¥ ¤ ­­ë¥, ­® ®è¨¡ª¨ ­¥ ¡ã¤¥â, â. ª. ¡ãä¥à ­ã¦­®£® à §¬¥à 
mov eax,dword[icon_tl_sys]
253,8 → 252,8
@@:
sub ebx,eax
mcall SF_WAIT_EVENT_TIMEOUT
or eax,eax
jz timer_funct
cmp eax,0
je timer_funct
 
cmp al,1
jne @f
285,8 → 284,8
jne .end_m
 
stdcall [tl_node_get_data],tree1
or eax,eax
jz .end_d
cmp eax,0
je .end_d
mov ebx,dword[eax]
add ebx,dword[open_file_data] ;¯®«ãç ¥¬ §­ ç¥­¨¥ ᤢ¨£  ¢ ¯ ¬ïâ¨
cmp word[ebx],CHUNK_OBJBLOCK
376,8 → 375,8
 
;¯à®á¬ âਢ ¥¬ ¢ë¤¥«¥­­ë© ¡«®ª ¤ ­­ëå
stdcall [tl_node_get_data],tree1
or eax,eax
jz .end_f
cmp eax,0
je .end_f
mov edi,eax
add edi,list_offs_obj3d
mov ebx,eax
423,8 → 422,8
stdcall buf_draw_beg, buf_ogl
stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_3ds_offs,5,35,0xb000
mov edx,dword[ebx+list_offs_p_data]
or edx,edx ;ᬮâਬ ¥áâì «¨ ®¯¨á ­¨¥ ¡«®ª 
jz .no_info
cmp edx,0 ;ᬮâਬ ¥áâì «¨ ®¯¨á ­¨¥ ¡«®ª 
je .no_info
stdcall [buf2d_draw_text], buf_ogl, buf_1,edx,5,45,0xb000
.no_info:
stdcall [buf2d_draw], buf_ogl ;®¡­®¢«ï¥¬ ¡ãä¥à ­  íªà ­¥
509,8 → 508,8
fadd dword[delt_size]
fstp dword[angle_x]
stdcall [tl_node_get_data],tree1
or eax,eax
jz .end
cmp eax,0
je .end
add eax,list_offs_obj3d
stdcall draw_3d, eax
jmp .end
521,8 → 520,8
fsub dword[delt_size]
fstp dword[angle_x]
stdcall [tl_node_get_data],tree1
or eax,eax
jz .end
cmp eax,0
je .end
add eax,list_offs_obj3d
stdcall draw_3d, eax
jmp .end
533,8 → 532,8
fadd dword[delt_size]
fstp dword[angle_y]
stdcall [tl_node_get_data],tree1
or eax,eax
jz .end
cmp eax,0
je .end
add eax,list_offs_obj3d
stdcall draw_3d, eax
jmp .end
545,8 → 544,8
fsub dword[delt_size]
fstp dword[angle_y]
stdcall [tl_node_get_data],tree1
or eax,eax
jz .end
cmp eax,0
je .end
add eax,list_offs_obj3d
stdcall draw_3d, eax
;jmp .end
628,17 → 627,17
align 4
but_new_file:
push eax ebx
stdcall [tl_node_poi_get_info], tree1,0
stdcall dword[tl_node_poi_get_info], tree1,0
@@:
or eax,eax
jz @f
cmp eax,0
je @f
mov ebx,eax
stdcall [tl_node_poi_get_data], tree1,ebx
add eax,list_offs_obj3d
stdcall obj_clear_param, eax
stdcall [tl_node_poi_get_next_info], tree1,ebx
or eax,eax
jnz @b
stdcall dword[tl_node_poi_get_next_info], tree1,ebx
cmp eax,0
jne @b
@@:
pop ebx eax
stdcall [tl_info_clear], tree1 ;®ç¨á⪠ ᯨ᪠ ®¡ê¥ªâ®¢
695,38 → 694,25
align 4
init_tree:
;ç¨á⨬ ¯ ¬ïâì § ­ïâãî ®¡ê¥ªâ ¬¨
stdcall [tl_node_poi_get_info], tree1,0
stdcall dword[tl_node_poi_get_info], tree1,0
@@:
or eax,eax
jz @f
cmp eax,0
je @f
mov ebx,eax
stdcall [tl_node_poi_get_data], tree1,ebx
or eax,eax
jz @f
cmp eax,0
je @f
add eax,list_offs_obj3d
stdcall obj_clear_param, eax
stdcall [tl_node_poi_get_next_info], tree1,ebx
or eax,eax
jnz @b
stdcall dword[tl_node_poi_get_next_info], tree1,ebx
cmp eax,0
jne @b
@@:
stdcall [tl_info_clear], tree1 ;®ç¨á⪠ ᯨ᪠ ®¡ê¥ªâ®¢
 
mov esi,[open_file_data]
stdcall convert_stl_3ds, esi,[open_file_size] ;¯à®¢¥à塞 ä ©« ä®à¬ â  *.stl ?
or eax,eax
jz @f
;¥á«¨ ä ©« ¢ ä®à¬ â¥ *.stl
mov [open_file_size],ecx
mov esi,eax
stdcall mem.Free,[open_file_data]
mov [open_file_data],esi
mov byte[can_save],1
@@:
mov esi,dword[open_file_data]
cmp word[esi],CHUNK_MAIN
je @f
mov eax,[esi]
bswap eax
stdcall hex_in_str, txt_no_3ds.zag, eax,8
stdcall buf_draw_beg, buf_ogl
stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_no_3ds,5,25,0xff0000 ;à¨á㥬 áâபã á ⥪á⮬
jmp .end_open
739,8 → 725,8
stdcall add_3ds_object, ID_ICON_CHUNK_MAIN,0,dword[esi+2],0
call block_children ;¢å®¤ ¢ ¤®ç¥à­¨© ¡«®ª
 
mov edi,[file_3ds.offs]
add edi,[file_3ds.size]
mov edi,dword[file_3ds.offs]
add edi,dword[file_3ds.size]
.cycle_main:
cmp dword[level_stack],0
jle .end_cycle
748,7 → 734,7
cmp esi,edi ;¥á«¨ ª®­¥æ ä ©« 
jge .end_cycle
 
mov edx,[esi+2] ;à §¬¥à ¡«®ª 
mov edx,dword[esi+2] ;à §¬¥à ¡«®ª 
call block_analiz
cmp word[esi],CHUNK_MATERIAL
je @f
810,8 → 796,8
; esi - new memory pointer
align 4
proc block_analiz_data uses ebx ecx edx edi
mov dx,[esi]
mov ecx,[esi+2]
mov dx,word[esi]
mov ecx,dword[esi+2]
sub ecx,6 ;à §¬¥à ¤ ­­ëå ¢ ¡«®ª¥
add esi,6
mov ebx,dword[level_stack]
916,10 → 902,11
block_children:
push ecx
;¯à®¢¥àª  ¯à ¢¨«ì­®á⨠ࠧ¬¥à®¢ ¤®ç¥à­¥£® ¡«®ª 
lea ebx,[esi+6] ;¯¥à¥å®¤ ­  ­ ç «® ¤®ç¥à­¥£® ¡«®ª 
add ebx,[ebx+2] ;¤®¡ ¢«ï¥¬ à §¬¥à ¤®ç¥à­¥£® ¡«®ª 
mov ebx,esi
add ebx,6 ;¯¥à¥å®¤ ­  ­ ç «® ¤®ç¥à­¥£® ¡«®ª 
add ebx,dword[ebx+2] ;¤®¡ ¢«ï¥¬ à §¬¥à ¤®ç¥à­¥£® ¡«®ª 
mov ecx,esi
add ecx,[esi+2] ;¤®¡ ¢«ï¥¬ à §¬¥à த¨â¥«ì᪮£® ¡«®ª 
add ecx,dword[esi+2] ;¤®¡ ¢«ï¥¬ à §¬¥à த¨â¥«ì᪮£® ¡«®ª 
cmp ebx,ecx ;ãç¨â뢠âì § £®«®¢ª¨ ­¥ ­ã¦­®, â. ª. áà ¢­¨¢ îâáï ⮫쪮 ¤ ­­ë¥ ¡«®ª®¢
jle @f
;¤¨ £­®áâ¨à®¢ «¨ ®è¨¡ªã ä ©« , ¤®ç¥à­¨© ¡«®ª ¢ë室¨â §  ¯à¥¤¥«ë த¨â¥«ì᪮£®
926,9 → 913,9
mov dword[level_stack],FILE_ERROR_CHUNK_SIZE
jmp .end_f
@@:
mov [eax],esi ;㪠§ â¥«ì ­  ­ ç «® ¡«®ª 
mov ebx,[esi+2]
mov [eax+4],ebx ;à §¬¥à ¡«®ª 
mov dword[eax],esi ;㪠§ â¥«ì ­  ­ ç «® ¡«®ª 
mov ebx,dword[esi+2]
mov dword[eax+4],ebx ;à §¬¥à ¡«®ª 
add esi,6 ;¯¥à¥å®¤¨¬ ª ¤ ­­ë¬ ¡«®ª 
inc dword[level_stack]
add eax,8
985,10 → 972,8
 
;input:
; esi - 㪠§ â¥«ì ­   ­ «¨§¨àã¥¬ë¥ ¤ ­­ë¥
; icon - ­®¬¥à ¨ª®­ª¨
; level - ã஢¥­ì ¢«®¦¥­­®á⨠㧫 
; size_bl - à §¬¥à ¡«®ª 
; info_bl - áâப  á ®¯¨á ­¨¥¬ ¡«®ª 
align 4
proc add_3ds_object, icon:dword, level:dword, size_bl:dword, info_bl:dword
pushad
1002,8 → 987,8
mov ecx,dword[size_bl]
mov dword[buffer+4],ecx ;à §¬¥à ¡«®ª  (¨á¯®«ì§ã¥âáï ¢ ä㭪樨 buf_draw_hex_table ¤«ï à¨á®¢ ­¨ï «¨­¨¨)
mov ecx,dword[bl_found]
or ecx,ecx
jz @f
cmp ecx,0
je @f
;... §¤¥áì ­ã¦¥­ ¤à㣮©  «£®à¨â¬ § é¨âë ®â 㤠«¥­¨ï
mov cl,byte[ecx+4]
@@:
1014,8 → 999,8
mov dword[buffer+list_offs_p_data],ecx
stdcall hex_in_str, buffer+list_offs_text,dword[esi+1],2
stdcall hex_in_str, buffer+list_offs_text+2,dword[esi],2 ;ª®¤ 3ds ¡«®ª 
or ecx,ecx
jnz @f
cmp ecx,0
jne @f
mov byte[buffer+list_offs_text+4],0 ;0 - ᨬ¢®« ª®­æ  áâப¨
jmp .no_capt
@@:
1057,7 → 1042,7
 
align 4
.str:
mov ecx,10
mov ecx,0x0a
cmp eax,ecx
jb @f
xor edx,edx
1109,7 → 1094,6
dd Filter.end - Filter.1
.1:
db '3DS',0
db 'STL',0
db 'PNG',0
.end:
db 0
1133,38 → 1117,38
 
if lang eq ru
head_f_i:
head_f_l db '"‘¨á⥬­ ï ®è¨¡ª ',0
err_msg_found_lib_0 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'proc_lib.obj',39,'" -tE',0
err_msg_import_0 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,'" -tW',0
err_msg_found_lib_1 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libimg.obj',39,'" -tE',0
err_msg_import_1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,'" -tW',0
err_msg_found_lib_2 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'box_lib.obj',39,'" -tE',0
err_msg_import_2 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'box_lib',39,'" -tW',0
err_msg_found_lib_3 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'buf2d.obj',39,'" -tE',0
err_msg_import_3 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'buf2d',39,'" -tW',0
err_msg_found_lib_4 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'kmenu.obj',39,'" -tE',0
err_msg_import_4 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'kmenu',39,'" -tW',0
err_msg_found_lib_5 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'tinygl.obj',39,'" -tE',0
err_msg_import_5 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'tinygl',39,'" -tW',0
err_msg_found_lib_6 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libini.obj',39,'" -tE',0
err_msg_import_6 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libini',39,'" -tW',0
head_f_l db '‘¨á⥬­ ï ®è¨¡ª ',0
err_msg_found_lib_0 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'proc_lib.obj',39,0
err_msg_import_0 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,0
err_msg_found_lib_1 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libimg.obj',39,0
err_msg_import_1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,0
err_msg_found_lib_2 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'box_lib.obj',39,0
err_msg_import_2 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'box_lib',39,0
err_msg_found_lib_3 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'buf2d.obj',39,0
err_msg_import_3 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'buf2d',39,0
err_msg_found_lib_4 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'kmenu.obj',39,0
err_msg_import_4 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'kmenu',39,0
err_msg_found_lib_5 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'tinygl.obj',39,0
err_msg_import_5 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'tinygl',39,0
err_msg_found_lib_6 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libini.obj',39,0
err_msg_import_6 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libini',39,0
else
head_f_i:
head_f_l db '"System error',0
err_msg_found_lib_0 db 'Sorry I cannot found library ',39,'proc_lib.obj',39,'" -tE',0
err_msg_import_0 db 'Error on load import library ',39,'proc_lib.obj',39,'" -tW',0
err_msg_found_lib_1 db 'Sorry I cannot found library ',39,'libimg.obj',39,'" -tE',0
err_msg_import_1 db 'Error on load import library ',39,'libimg.obj',39,'" -tW',0
err_msg_found_lib_2 db 'Sorry I cannot found library ',39,'box_lib.obj',39,'" -tE',0
err_msg_import_2 db 'Error on load import library ',39,'box_lib.obj',39,'" -tW',0
err_msg_found_lib_3 db 'Sorry I cannot found library ',39,'buf2d.obj',39,'" -tE',0
err_msg_import_3 db 'Error on load import library ',39,'buf2d.obj',39,'" -tW',0
err_msg_found_lib_4 db 'Sorry I cannot found library ',39,'kmenu.obj',39,'" -tE',0
err_msg_import_4 db 'Error on load import library ',39,'kmenu.obj',39,'" -tW',0
err_msg_found_lib_5 db 'Sorry I cannot found library ',39,'tinygl.obj',39,'" -tE',0
err_msg_import_5 db 'Error on load import library ',39,'tinygl',39,'" -tW',0
err_msg_found_lib_6 db 'Sorry I cannot found library ',39,'libini.obj',39,'" -tE',0
err_msg_import_6 db 'Error on load import library ',39,'libini',39,'" -tW',0
head_f_l db 'System error',0
err_msg_found_lib_0 db 'Sorry I cannot found library ',39,'proc_lib.obj',39,0
err_msg_import_0 db 'Error on load import library ',39,'proc_lib.obj',39,0
err_msg_found_lib_1 db 'Sorry I cannot found library ',39,'libimg.obj',39,0
err_msg_import_1 db 'Error on load import library ',39,'libimg.obj',39,0
err_msg_found_lib_2 db 'Sorry I cannot found library ',39,'box_lib.obj',39,0
err_msg_import_2 db 'Error on load import library ',39,'box_lib.obj',39,0
err_msg_found_lib_3 db 'Sorry I cannot found library ',39,'buf2d.obj',39,0
err_msg_import_3 db 'Error on load import library ',39,'buf2d.obj',39,0
err_msg_found_lib_4 db 'Sorry I cannot found 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_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
 
align 4
1455,9 → 1439,9
lmodel_ambient dd 0.3, 0.3, 0.3, 1.0 ;  à ¬¥âàë ä®­®¢®£® ®á¢¥é¥­¨ï
 
if lang eq ru
capt db 'info 3ds [user] ¢¥àá¨ï 14.03.19',0 ;¯®¤¯¨áì ®ª­ 
capt db 'info 3ds [user] ¢¥àá¨ï 18.04.17',0 ;¯®¤¯¨áì ®ª­ 
else
capt db 'info 3ds [user] version 14.03.19',0 ;window caption
capt db 'info 3ds [user] version 18.04.17',0 ;window caption
end if
 
align 16
/programs/develop/info3ds/info_o3d.inc
638,8 → 638,6
;¯®¨áª ¬ â¥à¨ «®¢ £à ­¥©
shl edx,3
add esi,edx
cmp esi,ecx
jge .end_points ;¥á«¨ ­¥â ¡«®ª  á ¬ â¥à¨ «®¬
cmp word[esi],CHUNK_FACEMAT
jne .end_points
mov [edi+obj_3d.mat1_data],esi
827,19 → 825,14
bt dword[draw_mode],bit_faces_mat
jnc @f
mov eax,[edi+obj_3d.mat1_data]
or eax,eax
jnz .b_found
stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_mat_null,5,3,[color_select]
jmp .mat_null ;¥á«¨ ­¥â ¬ â¥à¨ « , à¨á㥬 ¢á¥ £à ­¨ ®¤­¨¬ 梥⮬
.b_found:
cmp eax,0
je .end_points
mov ebx,eax
stdcall get_mat_color, eax
stdcall draw_3d_faces_color, edi,ebx,eax
stdcall found_mat_faces, ebx
or eax,eax
jnz .b_found
jmp .end_points
jmp .b_found
@@:
end if
 
846,7 → 839,6
;à¨á®¢ ­¨¥ £à ­¥© ¡¥§ 梥⮢ ¬ â¥à¨ «®¢
bt dword[draw_mode],bit_faces
jnc .end_triangles
.mat_null:
cmp dword[edi+obj_3d.tri_count],0
je .end_triangles
cmp dword[edi+obj_3d.poi_count],0
943,8 → 935,6
@@:
bt dword[draw_mode],bit_light
jnc .norm0
or edx,edx
jz .norm0 ;¥á«¨ ­®à¬ «¥© ­¥â
stdcall [glNormal3fv], edx
add edx,12
.norm0:
987,7 → 977,7
je .end_select
mov ecx,dword[obj_poi_sel_c]
stdcall [glColor3ub],[color_select+2],[color_select+1],[color_select]
stdcall [tl_node_poi_get_info], tree3,0
stdcall dword[tl_node_poi_get_info], tree3,0
align 4
@@:
cmp eax,0
1004,7 → 994,7
dec ecx
jz .end_select
.next_sel:
stdcall [tl_node_poi_get_next_info], tree3,ebx
stdcall dword[tl_node_poi_get_next_info], tree3,ebx
jmp @b
.end_select:
end if
1180,8 → 1170,6
align 4
proc found_mat_faces uses ebx, p_mat:dword
mov eax,[p_mat]
or eax,eax
jz @f
add eax,[eax+2]
cmp word[eax],CHUNK_FACEMAT
je @f
/programs/develop/info3ds/data.inc
291,9 → 291,7
 
if lang eq ru
txt_open_3ds db 'Žâªàëâ ä ©«:',0
txt_no_3ds: db 'Žâªàëâë© ä ©« ­¥ ¢ ä®à¬ â¥ *.3ds ',39
.zag: rb 8
db 39,0
txt_no_3ds db 'Žâªàëâë© ä ©« ­¥ ¢ ä®à¬ â¥ *.3ds',0
txt_3ds_err_sizes db '‚®§¬®¦­® ä ©« ¯®¢à¥¦¤¥­',0
txt_count db 'Š®«¨ç¥á⢮',0
txt_3ds_offs:
302,13 → 300,10
db '  §¬¥à: '
.siz: rb 8
db 0
txt_mat_null db 'Œ â¥à¨ «ë ­¥ ­ ©¤¥­ë',0
else
txt_open_3ds db 'Open file:',0
txt_no_3ds: db 'Open file not in format *.3ds ',39
.zag: rb 8
db 39,0
txt_3ds_err_sizes db 'File may be corrupted',0
txt_no_3ds db 'Žâªàëâë© ä ©« ­¥ ¢ ä®à¬ â¥ *.3ds',0
txt_3ds_err_sizes db '‚®§¬®¦­® ä ©« ¯®¢à¥¦¤¥­',0
txt_count db 'Count',0
txt_3ds_offs:
db 'Offset: '
316,5 → 311,4
db ' Size: '
.siz: rb 8
db 0
txt_mat_null db 'No materials found',0
end if
/programs/develop/info3ds/build_en.bat
3,8 → 3,11
@echo lang fix en >lang.inc
@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\toolbar.png @copy toolbar.png bin\toolbar.png
if not exist bin\font8x9.bmp @copy ..\..\fs\kfar\trunk\font8x9.bmp bin\font8x9.bmp
@fasm.exe -m 16384 ..\libraries\TinyGL\asm_fork\tinygl.asm bin\tinygl.obj
@kpack bin\tinygl.obj
@fasm.exe -m 16384 info3ds.asm bin\info3ds.kex
@kpack bin\info3ds.kex
@fasm.exe -m 16384 info3ds_u.asm bin\info3ds_u.kex
/programs/develop/info3ds/build_ru.bat
3,8 → 3,11
@echo lang fix ru >lang.inc
@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\toolbar.png @copy toolbar.png bin\toolbar.png
if not exist bin\font8x9.bmp @copy ..\..\fs\kfar\trunk\font8x9.bmp bin\font8x9.bmp
@fasm.exe -m 16384 ..\libraries\TinyGL\asm_fork\tinygl.asm bin\tinygl.obj
@kpack bin\tinygl.obj
@fasm.exe -m 16384 info3ds.asm bin\info3ds.kex
@kpack bin\info3ds.kex
@fasm.exe -m 16384 info3ds_u.asm bin\info3ds_u.kex