/programs/develop/info3ds/data.inc |
---|
1,7 → 1,7 |
if lang eq ru |
capt db 'info 3ds ¢¥àá¨ï 12.09.11',0 ;¯®¤¯¨áì ®ª |
capt db 'info 3ds ¢¥àá¨ï 06.12.13',0 ;¯®¤¯¨áì ®ª |
else |
capt db 'info 3ds version 12.09.11',0 ;window caption |
capt db 'info 3ds version 06.12.13',0 ;window caption |
end if |
MAX_FILE_LEVEL equ 20 ;¬ ªá¨¬ «ìë© ã஢¥ì ¢«®¦¥®á⨠¡«®ª®¢ ¤«ï «¨§ |
52,7 → 52,8 |
block_3ds 0x0002,5,1,txt_0002 |
block_3ds 0x3d3e,5,1 ; [+] mesh version |
block_3ds 0x0011,4,1,txt_0011 |
block_3ds CHUNK_ambient_color,3,0 ; [-] ambient color |
block_3ds 0x0100,3,1,txt_0100 |
block_3ds CHUNK_ambient_color,3,0,txt_2100 ; [-] ambient color |
block_3ds CHUNK_OBJMESH, 3,0,txt_3d3d |
block_3ds CHUNK_OBJBLOCK,3,1,txt_4000 |
block_3ds CHUNK_TRIMESH, 3,0,txt_4100 |
70,16 → 71,18 |
block_3ds 0xa030,4,0,txt_a030 |
block_3ds CHUNK_TEXTURE, 3,0,txt_a200 |
block_3ds CHUNK_MAPFILE, 6,1,txt_a300 |
block_3ds CHUNK_KEYFRAMER, 3,0,txt_b000 |
block_3ds CHUNK_KEYFRAMER, 7,0,txt_b000 |
block_3ds CHUNK_TRACKINFO, 3,0,txt_b002 |
block_3ds CHUNK_TRACKOBJNAME,3,1,txt_b010 |
block_3ds 0xb011,3,1,txt_b011 |
block_3ds CHUNK_TRACKPIVOT, 3,1,txt_b013 |
block_3ds 0xb014,3,1,txt_b014 |
block_3ds CHUNK_TRACKPOS, 3,1,txt_b020 |
block_3ds CHUNK_TRACKROTATE, 3,1,txt_b021 |
block_3ds CHUNK_TRACKCAMERA, 3,0,txt_b003 |
block_3ds CHUNK_TRACKFOV, 3,1,txt_b023 |
block_3ds CHUNK_TRACKROLL, 3,1,txt_b024 |
block_3ds CHUNK_TRACKCAMTGT, 3,0,txt_b004 |
block_3ds CHUNK_TRACKCAMERA, 7,0,txt_b003 |
block_3ds CHUNK_TRACKFOV, 7,1,txt_b023 |
block_3ds CHUNK_TRACKROLL, 7,1,txt_b024 |
block_3ds CHUNK_TRACKCAMTGT, 7,0,txt_b004 |
;--- ¤ «¥¥ ¥ ¢® ¢á¥å ¡«®ª å ᬮ£ ©â¨ ®¯¨á ¨¥ àãá᪮¬ ï§ëª¥ |
block_3ds 0x4111, 3,1,txt_4111 |
126,6 → 129,11 |
if lang eq ru |
txt_0002 db '3ds ¢¥àá¨ï',0 |
txt_0011 db '¢¥â rgb (¡ ©â®¢ë© ä®à¬ â)',0 |
;txt_0012 db 'LIN_COLOR_24',0 |
;txt_0030 db 'Percentage value (int)',0 |
;txt_0031 db 'Percentage value (float)',0 |
txt_0100 db 'Master scale',0 |
txt_2100 db '¢¥â ®ªà㦠î饩 á।ë',0 |
txt_3d3d db ' ¡®à ®¡ê¥ªâ®¢',0 |
txt_4000 db '¡ê¥ªâ (á ¨¬¥¥¬)',0 |
txt_4100 db 'à¥ã£®«ìë¥ á¥âª¨',0 |
137,16 → 145,22 |
txt_4600 db '¢¥â',0 |
txt_4700 db ' ¬¥à ',0 |
txt_a000 db ' §¢ ¨¥ ¬ â¥à¨ « ',0 |
;txt_a100 db 'MAT_SHADING',0 |
txt_a010 db 'ªà㦠î騩 梥â',0 |
txt_a020 db '¨ääã§ë© 梥â',0 |
txt_a030 db '¥àª «ìë© æ¢¥â',0 |
txt_a200 db '¥ªáâãà ¬ â¥à¨ « 1',0 |
txt_a300 db '¬ï ä ©« ⥪áâãàë',0 |
;txt_a353 db 'MAT_MAP_TEXBLUR',0 |
txt_afff db ' â¥à¨ «',0 |
txt_b000 db 'ä®à¬ æ¨ï ®¡ ¨¬ 樨',0 |
txt_b002 db '®¢¥¤¥¨¥ ®¡ê¥ªâ ',0 |
;txt_b009 db 'KFCURTIME',0 |
;txt_b00a db 'KFHDR',0 |
txt_b010 db ' §¢ ¨¥ ®¡ê¥ªâ ',0 |
txt_b011 db '¬ï íª§¥¬¯«ïà ',0 |
txt_b013 db '¥âà ¢à é¥¨ï ®¡ê¥ªâ ',0 |
txt_b014 db 'Bound box',0 |
txt_b020 db 'à ¥ªâ®à¨ï ¤¢¨¦¥¨ï',0 |
txt_b021 db 'à ¥ªâ®à¨ï ¢à 饨ï',0 |
txt_b003 db '®¢¥¤¥¨¥ ª ¬¥àë',0 |
194,10 → 208,14 |
txt_a08a db 'In tranc',0 |
txt_a08c db 'Soften',0 |
txt_a08e db 'Wire in units',0 |
txt_not_delete db '¥ ¬®£ã 㤠«¨âì ¢ë¡à ë© ¡«®ª. § é¨é¥.',0 |
else |
txt_0002 db '3ds version',0 |
txt_0011 db 'Color rgb (byte format)',0 |
txt_0100 db 'Master scale',0 |
txt_2100 db 'Ambient color',0 |
txt_3d3d db 'Editor chunk',0 |
txt_4000 db 'Object (with name)',0 |
txt_4100 db 'Triangular mesh',0 |
218,7 → 236,9 |
txt_b000 db 'Keyframer',0 |
txt_b002 db 'Mesh information',0 |
txt_b010 db 'Object name',0 |
txt_b011 db 'Instance name',0 |
txt_b013 db 'Object pivot point',0 |
txt_b014 db 'Bound box',0 |
txt_b020 db 'Position track',0 |
txt_b021 db 'Rotation track',0 |
txt_b003 db 'Camera information',0 |
266,6 → 286,8 |
txt_a08a db 'In tranc',0 |
txt_a08c db 'Soften',0 |
txt_a08e db 'Wire in units',0 |
txt_not_delete db 'I can not delete the selected chunk. It is protected.',0 |
end if |
if lang eq ru |
/programs/develop/info3ds/info3ds.asm |
---|
34,6 → 34,7 |
run_file_70 FileInfoBlock |
image_data dd 0 ;㪠§ â¥«ì ¢à¥¬¥ãî ¯ ¬ïâì. ¤«ï 㦥 ¯à¥®¡à §®¢ ¨ï ¨§®¡à ¦¥¨ï |
open_file_lif dd 0 ;㪠§ â¥«ì ¯ ¬ïâì ¤«ï ®âªàëâ¨ï ä ©«®¢ 3ds |
open_file_size dd 0 ;à §¬¥à ®âªàë⮣® ä ©« |
; |
fn_toolbar db 'toolbar.png',0 |
44,7 → 45,7 |
TREE_ICON_SYS16_BMP_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*11+54 ;à §¬¥à bmp ä ©« á á¨á⥬묨 ¨ª®ª ¬¨ |
icon_tl_sys dd 0 ;㪠§ ⥥«ì ¯ ¬ïâì ¤«ï åà ¥¨ï á¨á⥬ëå ¨ª®®ª |
icon_toolbar dd 0 ;㪠§ ⥥«ì ¯ ¬ïâì ¤«ï åà ¥¨ï ¨ª®®ª ®¡ê¥ªâ®¢ |
TOOLBAR_ICON_BMP_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*7+54 ;à §¬¥à bmp ä ©« á ¨ª®ª ¬¨ ®¡ê¥ªâ®¢ |
TOOLBAR_ICON_BMP_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*8+54 ;à §¬¥à bmp ä ©« á ¨ª®ª ¬¨ ®¡ê¥ªâ®¢ |
; |
IMAGE_FILE1_SIZE equ 128*144*3+54 ;à §¬¥à ä ©« á ¨§®¡à ¦¥¨¥¬ |
100,13 → 101,16 |
FILE_ERROR_CHUNK_SIZE equ -3 ;®è¨¡ª ¢ à §¬¥à¥ ¡«®ª |
align 4 |
file_3ds: |
file_3ds: ;¯¥à¥¬¥ë¥ ¨á¯®«ì§ã¥¬ë¥ ¯à¨ ®âªàë⨨ ä ©« |
.offs: dd 0 ;+0 㪠§ ⥫ì ç «® ¡«®ª |
.size: dd 0 ;+4 à §¬¥à ¡«®ª (¤«ï 1-£® ¯ à ¬¥âà = à §¬¥à ä ©« 3ds) |
rb 8*MAX_FILE_LEVEL |
size_one_list equ 40 |
list_offs_text equ 12 ;ᤢ¨£ ç « ⥪áâ ¢ «¨á⥠|
size_one_list equ 42 |
list_offs_chunk_del equ 8 ;¬®¦¥â «¨ ¡«®ª 㤠«ïâáï |
list_offs_chunk_lev equ 9 ;ã஢¥ì ¡«®ª (¯à®¯¨á ¢ ¤ ë¥ ã§« ) |
list_offs_p_data equ 10 ;㪠§ â¥«ì ¯®¤¯¨áì ¡«®ª |
list_offs_text equ 14 ;ᤢ¨£ ç « ⥪áâ ¢ «¨á⥠|
buffer rb size_one_list ;¡ãä¥à ¤«ï ¤®¡ ¢«¥¨ï áâàãªâãà ¢ ᯨ᮪ tree1 |
txt_3ds_symb db 0,0 |
226,7 → 230,7 |
mov dword[offs_last_timer],eax |
call buf_draw_beg |
stdcall [buf2d_draw_text], buf_0, buf_1,txt_3ds_offs,5,35,0xb000 |
mov edx,dword[ebx+8] |
mov edx,dword[ebx+list_offs_p_data] |
cmp edx,0 ;ᬮâਬ ¥áâì «¨ ®¯¨á ¨¥ ¡«®ª |
je .no_info |
stdcall [buf2d_draw_text], buf_0, buf_1,edx,5,45,0xb000 |
353,7 → 357,6 |
int 0x40 |
mov ebx,(30 shl 16)+20 |
mov ecx,(5 shl 16)+20 |
mov edx,4 |
int 0x40 |
360,16 → 363,18 |
cmp byte[can_save],0 |
je @f |
mov ebx,(55 shl 16)+20 |
mov ecx,(5 shl 16)+20 |
mov edx,5 |
int 0x40 |
@@: |
mov ebx,(85 shl 16)+20 |
mov ecx,(5 shl 16)+20 |
mov edx,6 ;®ª® á ª®®à¤¨ â ¬¨ |
int 0x40 |
mov ebx,(110 shl 16)+20 |
mov edx,7 ;㤠«¥¨¥ ¡«®ª |
int 0x40 |
mov eax,7 |
mov ebx,[image_data_toolbar] |
mov ecx,(16 shl 16)+16 |
385,8 → 390,17 |
add ebx,IMAGE_TOOLBAR_ICON_SIZE |
mov edx,(57 shl 16)+7 ;save |
int 0x40 |
sub ebx,IMAGE_TOOLBAR_ICON_SIZE |
@@: |
add ebx,4*IMAGE_TOOLBAR_ICON_SIZE |
mov edx,(87 shl 16)+7 |
int 0x40 |
add ebx,IMAGE_TOOLBAR_ICON_SIZE |
mov edx,(112 shl 16)+7 |
int 0x40 |
mov dword[w_scr_t1.all_redraw],1 |
stdcall [tl_draw],dword tree1 |
422,6 → 436,10 |
jne @f |
call but_wnd_coords |
@@: |
cmp ah,7 |
jne @f |
call but_delete_chunk |
@@: |
cmp ah,1 |
jne still |
441,7 → 459,6 |
mov byte[can_save],0 |
stdcall [tl_info_clear], tree1 ;®ç¨á⪠ᯨ᪠®¡ê¥ªâ®¢ |
stdcall [buf2d_clear], buf_0, [buf_0.color] ;ç¨á⨬ ¡ãä¥à |
;;;call draw_window |
stdcall [tl_draw], tree1 |
stdcall [buf2d_draw], buf_0 ;®¡®¢«ï¥¬ ¡ãä¥à íªà ¥ |
ret |
469,11 → 486,19 |
cmp ebx,0xffffffff |
je .end_open_file |
;add ebx,[open_file_lif] |
;mov byte[ebx],0 ; á«ãç © ¥á«¨ à ¥¥ ¡ë« ®âªàëâ ä ©« ¡®«ì襣® à §¬¥à ç¨á⨬ ª®¥æ ¡ãä¥à á ä ©«®¬ |
mov [open_file_size],ebx |
;mcall 71,1,openfile_path |
mov byte[can_save],0 |
call init_tree |
stdcall [buf2d_draw], buf_0 ;®¡®¢«ï¥¬ ¡ãä¥à íªà ¥ |
.end_open_file: |
popad |
ret |
align 4 |
init_tree: |
stdcall [tl_info_clear], tree1 ;®ç¨á⪠ᯨ᪠®¡ê¥ªâ®¢ |
mov esi,dword[open_file_lif] |
532,10 → 557,6 |
stdcall [tl_cur_beg], tree1 |
stdcall [tl_draw], tree1 |
.end_open: |
stdcall [buf2d_draw], buf_0 ;®¡®¢«ï¥¬ ¡ãä¥à íªà ¥ |
.end_open_file: |
popad |
ret |
; «¨§ ¤ ëå ¡«®ª |
676,6 → 697,8 |
ret |
;¯¥à¥å®¤ ª á«¥¤ã饬㠡«®ªã ⥪ã饣® ã஢ï |
;input: |
; eax - ¤à¥á áâàãªâãàë á ¯¥à¥¬¥ë¬¨ |
align 4 |
block_next: |
push ebx |
722,6 → 745,8 |
;input: |
; esi - 㪠§ â¥«ì «¨§¨àã¥¬ë¥ ¤ ë¥ |
; level - ã஢¥ì ¢«®¦¥®á⨠㧫 |
; size_bl - à §¬¥à ¡«®ª |
align 4 |
proc add_3ds_object, icon:dword,level:dword,size_bl:dword,info_bl:dword |
pushad |
734,13 → 759,22 |
mov dword[buffer],eax ;ᬥ饨¥ ¡«®ª |
mov ecx,dword[size_bl] |
mov dword[buffer+4],ecx ;à §¬¥à ¡«®ª (¨á¯®«ì§ã¥âáï ¢ äãªæ¨¨ buf_draw_hex_table ¤«ï à¨á®¢ ¨ï «¨¨¨) |
mov ecx,dword[bl_found] |
cmp ecx,0 |
je @f |
;... §¤¥áì 㦥 ¤à㣮© «£®à¨â¬ § é¨âë ®â 㤠«¥¨ï |
mov cl,byte[ecx+4] |
@@: |
mov byte[buffer+list_offs_chunk_del],cl |
mov ecx,[level] |
mov byte[buffer+list_offs_chunk_lev],cl |
mov ecx,dword[info_bl] |
mov dword[buffer+8],ecx |
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 ¡«®ª |
cmp ecx,0 |
jne @f |
mov byte[buffer+list_offs_text+4],0 ;0 - ᨬ¢®« ª®¥æ áâப¨ |
mov byte[buffer+list_offs_text+4],0 ;0 - ᨬ¢®« ª®æ áâப¨ |
jmp .no_capt |
@@: |
mov byte[buffer+list_offs_text+4],' ' |
857,7 → 891,62 |
@@: |
ret |
;description: |
; 㤠«¥¨¥ ¢ë¡à ®£® ¡«®ª ¨§ ®âªàë⮣® ä ©« |
align 4 |
but_delete_chunk: |
pushad |
stdcall [tl_node_get_data],tree1 |
pop ebx |
cmp ebx,0 |
je .end_f |
cmp byte[ebx+list_offs_chunk_del],0 ;¥á«¨ ¡«®ª § é¨é¥ ®â 㤠«¥¨ï |
jne .notify |
;(1) ª®¯¨à®¢ ¨¥ ¨¦¥© ç áâ¨ ä ©« |
mov edx,dword[ebx+4] ;à §¬¥à ¡«®ª |
sub [open_file_size],edx ;¨§¬¥¥¨¥ à §¬¥à®¢ ä ©« |
mov ecx,[open_file_size] |
mov eax,dword[ebx] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ë¡à ®£® ¡«®ª ®â®á¨â¥«ì® ç « ä ©« |
sub ecx,eax ;ecx - à §¬¥à ¨¦¥© ᤢ¨£ ¥¬®© ç áâ¨ ä ©« |
add eax,dword[open_file_lif] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ ¯ ¬ï⨠|
mov edi,eax |
mov esi,eax |
add esi,edx |
mov al,byte[ebx+list_offs_chunk_lev] ;¡¥à¥¬ ã஢¥ì ⥪ã饣® 㧫 |
rep movsb |
mov byte[can_save],1 |
;(2) ¨§¬¥¥¨¥ à §¬¥à®¢ த¨â¥«ìáª¨å ¡«®ª®¢ |
cmp al,0 |
je .end_2 |
.cycle_2: |
stdcall [tl_cur_perv], tree1 |
stdcall [tl_node_get_data],tree1 |
pop ebx |
cmp ebx,0 |
je .end_2 |
cmp byte[ebx+list_offs_chunk_lev],al |
jge .cycle_2 |
mov al,byte[ebx+list_offs_chunk_lev] |
mov ecx,[ebx] |
add ecx,[open_file_lif] |
sub dword[ecx+2],edx |
cmp al,0 ;¥á«¨ á ¬ë© ¢¥à娩 㧥«, â® al=0 |
jne .cycle_2 |
.end_2: |
;(3) ®¡®¢«¥¨¥ ᯨ᪠tree1 |
call init_tree |
call draw_window |
jmp .end_f |
.notify: |
notify_window_run txt_not_delete |
.end_f: |
popad |
ret |
;input: |
; buf - 㪠§ ⥫ì áâபã, ç¨á«® ¤®«¦® ¡ëâì ¢ 10 ¨«¨ 16 à¨ç®¬ ¢¨¤¥ |
;output: |
1215,7 → 1304,7 |
db 24 ;+20 bit in pixel |
el_focus dd tree1 |
tree1 tree_list size_one_list,200+2, tl_key_no_edit+tl_draw_par_line,\ |
tree1 tree_list size_one_list,300+2, tl_key_no_edit+tl_draw_par_line,\ |
16,16, 0xffffff,0xb0d0ff,0xd000ff, 5,35,195-16,250, 16,list_offs_text,0, el_focus,\ |
w_scr_t1,0 |
/programs/develop/info3ds/info_wnd_coords.inc |
---|
32,13 → 32,35 |
stdcall [tl_node_get_data],tree1 |
pop ebx |
xor edx,edx |
mov dword[capt_p],txt_q |
cmp ebx,0 |
je @f |
je .no_points |
mov ebx,dword[ebx] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ë¡à ®£® ¡«®ª |
add ebx,dword[open_file_lif] |
mov dx,word[ebx+6] ;ª®««¨ç¥á⢮ â®ç¥ª |
@@: |
cmp word[ebx],CHUNK_VERTLIST |
jne @f |
movzx edx,word[ebx+6] ;ª®««¨ç¥á⢮ â®ç¥ª |
add ebx,8 |
mov dword[capt_p],txt_4110 |
jmp .no_points |
@@: |
cmp word[ebx],0xb013 |
jne @f |
inc edx |
add ebx,6 |
mov dword[capt_p],txt_b013 |
jmp .no_points |
@@: |
cmp word[ebx],0xb014 |
jne @f |
mov edx,2 |
add ebx,6 |
mov dword[capt_p],txt_b014 |
;jmp .no_points |
@@: |
.no_points: |
; áâனª ᯨ᪠®¡ê¥ªâ®¢ |
mov dword[tree3.info_max_count],2 |
add dword[tree3.info_max_count],edx ;áâ ¢¨¬ ç¨á«® 㧫®¢, à ¢®¥ ª®««¨ç¥áâ¢ã â®ç¥ª (+2 ç «® ¨ ª®¥æ ᯨ᪠) |
48,11 → 70,8 |
mov eax,dword[icon_toolbar] |
mov dword[tree3.data_img],eax |
cmp ebx,0 |
cmp edx,0 |
je .no_object |
cmp word[ebx],CHUNK_VERTLIST |
jne .no_object ;¥á«¨ ¥ â®â ®¡ê¥ªâ |
add ebx,8 |
mov word[NumberSymbolsAD],5 |
finit |
.new_point: |
94,7 → 113,7 |
mcall 12,1 |
xor eax,eax |
mov edi,txt_4110 ;caption |
mov edi,dword[capt_p] ;children window caption |
mov bx,word[procinfo.box.left] |
add bx,word[buf_0.l] |
shl ebx,16 |
289,6 → 308,8 |
mov byte[prop_wnd_run],0 ;®¡ã«ï¥¬ áç¥â稪 ®ª® |
mcall -1 ;¢ë室 ¨§ ¯à®£à ¬¬ë |
capt_p dd 0 |
;¤¥à¥¢® á ®¡ê¥ªâ ¬¨ ¢ ¯®«ì§®¢ ⥫ì᪮¬ ä ©«¥ |
tree3 tree_list MAX_OBJECT_SIZE,3,\ |
tl_key_no_edit+tl_list_box_mode,\ |
/programs/develop/info3ds/objects.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/programs/develop/info3ds/toolbar.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |