20,7 → 20,7 |
debug equ 0 |
|
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
capt db 'info 3ds 17.08.11',0 ;¯®¤¯¨áì ®ª |
capt db 'info 3ds 18.08.11',0 ;¯®¤¯¨áì ®ª |
|
struct FileInfoBlock |
Function dd ? |
45,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 256*5 ;à §¬¥à bmp ä ©« á ¨ª®ª ¬¨ ®¡ê¥ªâ®¢ |
TOOLBAR_ICON_BMP_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*6+54 ;à §¬¥à bmp ä ©« á ¨ª®ª ¬¨ ®¡ê¥ªâ®¢ |
; |
IMAGE_FILE1_SIZE equ 128*144*3 ;à §¬¥à ä ©« á ¨§®¡à ¦¥¨¥¬ 640 x 480 |
|
101,7 → 101,6 |
CHUNK_MAIN equ 0x4D4D ; [-] áæ¥ |
CHUNK_color_1 equ 0x0011 ; [+] 梥â rgb (byte format) |
CHUNK_ambient_color equ 0x2100 ; [-] ambient color |
CHUNK_VERSIONF equ 0x0002 ; [+] ¨ä®à¬ æ¨ï ® ¢¥àᨨ ä ©« |
CHUNK_OBJMESH equ 0x3D3D ; [-] ¢áïç¥áª¨¥ ®¡ê¥ªâë |
CHUNK_OBJBLOCK equ 0x4000 ; [+] ®¡ê¥ªâ |
CHUNK_TRIMESH equ 0x4100 ; [-] trimesh-®¡ê¥ªâ |
134,15 → 133,21 |
level_stack dd 0 |
offs_last_timer dd 0 ;¯®á«¥¤¨© ᤢ¨£ ¯®ª § ë© ¢ äãªæ¨¨ â ©¬¥à |
|
ID_ICON_CHUNK_MAIN equ 0 |
ID_ICON_CHUNK_NOT_FOUND equ 1 |
ID_ICON_DATA equ 2 |
ID_ICON_CHUNK_MAIN equ 0 ;¨ª®ª £« ¢®£® ¡«®ª |
ID_ICON_CHUNK_NOT_FOUND equ 1 ;¨ª®ª ¥ ¨§¢¥á⮣® ¡«®ª |
ID_ICON_DATA equ 2 ;¨ª®ª ¤«ï ¤ ëå ¡«®ª , ¥ ®¯à¥¤¥«¥®© áâàãªâãàë |
|
FILE_ERROR_CHUNK_SIZE equ -3 ;®è¨¡ª ¢ à §¬¥à¥ ¡«®ª |
|
align 4 |
type_bloks: |
block_3ds 0x0002,5,1 ;¨ä®à¬ æ¨ï ® ¢¥àᨨ ä ©« |
block_3ds 0x3d3e,5,1 ;mesh version |
block_3ds 0xA010,4,0 ;material ambient color |
block_3ds 0xA020,4,0 ;material diffuse color |
block_3ds 0xA030,4,0 ;material specular color |
block_3ds CHUNK_color_1, 4,1 ; [+] 梥â rgb (byte format) |
block_3ds CHUNK_ambient_color,3,0 ; [-] ambient color |
block_3ds CHUNK_VERSIONF, 3,1 ; [+] ä®à¬ æ¨ï ® ¢¥àᨨ ä ©« |
block_3ds CHUNK_OBJMESH, 3,0 ; [-] ¢áïç¥áª¨¥ ®¡ê¥ªâë |
block_3ds CHUNK_OBJBLOCK, 3,1 ; [+] ®¡ê¥ªâ |
block_3ds CHUNK_TRIMESH, 3,0 ; [-] trimesh-®¡ê¥ªâ |
181,6 → 186,7 |
txt_open_3ds db 'âªàëâ ä ©«:',0 |
txt_no_3ds db 'âªàëâë© ä ©« ¥ ¢ ä®à¬ ⥠*.3ds',0 |
txt_3ds_big_file db ' §¬¥à ä ©« ¡®«ìè¥ MAX_FILE_SIZE',0 |
txt_3ds_err_sizes db '®§¬®¦® ä ©« ¯®¢à¥¦¤¥',0 |
txt_3ds_offs: |
db '¬¥é¥¨¥: ' |
.dig: rb 8 |
189,6 → 195,7 |
txt_open_3ds db 'Open file:',0 |
txt_no_3ds db 'âªàëâë© ä ©« ¥ ¢ ä®à¬ ⥠*.3ds',0 |
txt_3ds_big_file db ' §¬¥à ä ©« ¡®«ìè¥ MAX_FILE_SIZE',0 |
txt_3ds_err_sizes db '®§¬®¦® ä ©« ¯®¢à¥¦¤¥',0 |
txt_3ds_offs: |
db 'Offset: ' |
.dig: rb 8 |
311,6 → 318,10 |
stdcall [buf2d_clear], buf_0, [buf_0.color] ;ç¨á⨬ ¡ãä¥à |
stdcall [buf2d_draw_text], buf_0, buf_1,txt_open_3ds,5,5,0xff |
stdcall [buf2d_draw_text], buf_0, buf_1,openfile_path,5,15,0xff |
cmp dword[level_stack],FILE_ERROR_CHUNK_SIZE ;¢®§¬®¦ ®è¨¡ª ä ©« |
jne @f |
stdcall [buf2d_draw_text], buf_0, buf_1,txt_3ds_err_sizes,5,25,0xff0000 |
@@: |
ret |
|
align 4 |
321,7 → 332,6 |
endl |
mov esi,dword[offs] |
mov edi,dword[open_file_lif] |
add edi,6 |
add edi,dword[file_3ds+4] ;edi - 㪠§ â¥«ì ª®¥æ ä ©« ¢ ¯ ¬ï⨠|
mov dword[txt_3ds_offs.dig],0 |
cld |
375,7 → 385,7 |
pushad |
mcall 12,1 |
xor eax,eax |
mov ebx,(20 shl 16)+510 |
mov ebx,(20 shl 16)+560 |
mov ecx,(20 shl 16)+315 |
mov edx,[sc.work] |
or edx,(3 shl 24)+0x10000000+0x20000000 |
394,10 → 404,10 |
mov edx,4 |
int 0x40 |
|
mov ebx,(55 shl 16)+20 |
mov ecx,(5 shl 16)+20 |
mov edx,5 |
int 0x40 |
;mov ebx,(55 shl 16)+20 |
;mov ecx,(5 shl 16)+20 |
;mov edx,5 |
;int 0x40 |
|
|
mov eax,7 |
410,9 → 420,9 |
mov edx,(32 shl 16)+7 ;open |
int 0x40 |
|
add ebx,IMAGE_TOOLBAR_ICON_SIZE |
mov edx,(57 shl 16)+7 ;open |
int 0x40 |
;add ebx,IMAGE_TOOLBAR_ICON_SIZE |
;mov edx,(57 shl 16)+7 ;save |
;int 0x40 |
|
mov dword[w_scr_t1.all_redraw],1 |
stdcall [tl_draw],dword tree1 |
518,13 → 528,17 |
stdcall add_3ds_object, ID_ICON_CHUNK_MAIN,0,dword[esi+2] |
call block_children ;¢å®¤ ¢ ¤®ç¥à¨© ¡«®ª |
|
mov edi,dword[file_3ds.offs] |
add edi,dword[file_3ds.size] |
.cycle_main: |
cmp dword[level_stack],0 |
je .end_cycle |
jle .end_cycle |
|
cmp esi,edi ;¥á«¨ ª®¥æ ä ©« |
jge .end_cycle |
|
call block_analiz |
mov edx,dword[esi+2] ;à §¬¥à ¡«®ª ¡¥§ § £®«®¢ª |
add edx,6 ;à §¬¥à ¡«®ª ¢¬¥áâ¥ á § £®«®¢ª®¬ |
mov edx,dword[esi+2] ;à §¬¥à ¡«®ª |
|
cmp dword[eax],0 |
jne @f |
564,7 → 578,8 |
block_analiz_data: |
pushad |
mov ax,word[esi] |
mov ecx,dword[esi+2] ;à §¬¥à ¡«®ª |
mov ecx,dword[esi+2] |
sub ecx,6 ;à §¬¥à ¤ ëå ¢ ¡«®ª¥ |
add esi,6 |
mov ebx,dword[level_stack] |
inc ebx |
583,9 → 598,24 |
popad |
ret |
|
;¢å®¤ ¢ ¤®ç¥à¨© ¡«®ª |
;¢å®¤ ¢ 1-© ¤®ç¥à¨© ¡«®ª |
;output: |
; edx - destroy |
align 4 |
block_children: |
push ecx |
;¯à®¢¥àª ¯à ¢¨«ì®áâ¨ à §¬¥à®¢ ¤®ç¥à¥£® ¡«®ª |
mov ebx,esi ;ᬥ饨¥ ç « த¨â¥«ì᪮£® ¡«®ª |
add ebx,6 ;¯¥à¥å®¤ ç «® ¤®ç¥à¥£® ¡«®ª |
add ebx,dword[ebx+2] ;¤®¡ ¢«ï¥¬ à §¬¥à ¤®ç¥à¥£® ¡«®ª |
mov ecx,esi ;ᬥ饨¥ ç « த¨â¥«ì᪮£® ¡«®ª |
add ecx,dword[esi+2] ;¤®¡ ¢«ï¥¬ à §¬¥à த¨â¥«ì᪮£® ¡«®ª |
cmp ebx,ecx ;ãç¨âë¢ âì § £®«®¢ª¨ ¥ 㦮, â. ª. áà ¢¨¢ îâáï ⮫쪮 ¤ ë¥ ¡«®ª®¢ |
jle @f |
;¤¨ £®áâ¨à®¢ «¨ ®è¨¡ªã ä ©« , ¤®ç¥à¨© ¡«®ª ¢ë室¨â § ¯à¥¤¥«ë த¨â¥«ì᪮£® |
mov dword[level_stack],FILE_ERROR_CHUNK_SIZE |
jmp .end_f |
@@: |
mov dword[eax],esi ;㪠§ ⥫ì ç «® ¡«®ª |
mov ebx,dword[esi+2] |
mov dword[eax+4],ebx ;à §¬¥à ¡«®ª |
592,6 → 622,8 |
add esi,6 ;¯¥à¥å®¤¨¬ ª ¤ ë¬ ¡«®ª |
inc dword[level_stack] |
add eax,8 |
.end_f: |
pop ecx |
ret |
|
;¯¥à¥å®¤ ª á«¥¤ã饬㠡«®ªã ⥪ã饣® ã஢ï |
599,12 → 631,10 |
block_next: |
push ebx |
add esi,dword[esi+2] ;¯à®¯ã᪠¥¬ ¤ ë¥ ¡«®ª |
add esi,6 |
|
;¯à®¢¥àª à §¬¥à®¢ த¨â¥«ì᪮£® ¡«®ª , ¤«ï ¢®§¬®¦®£® ¢ë室 ¢¥à娩 ã஢¥ì ¥á«¨ ª®¥æ ¡«®ª |
mov ebx,dword[eax-8] |
add ebx,dword[eax-4] |
add ebx,6 |
cmp esi,ebx |
jl @f |
dec dword[level_stack] |
1080,7 → 1110,7 |
|
align 4 |
buf_0: dd 0 ;㪠§ â¥«ì ¡ãä¥à ¨§®¡à ¦¥¨ï |
dw 155 ;+4 left |
dw 205 ;+4 left |
dw 35 ;+6 top |
.w: dd 340 ;+8 w |
.h: dd 250 ;+12 h |
1099,7 → 1129,7 |
|
el_focus dd tree1 |
tree1 tree_list size_one_list,100+2, tl_key_no_edit+tl_draw_par_line,\ |
16,16, 0xffffff,0xb0d0ff,0xd000ff, 5,35,145-16,250, 0,8,0, el_focus,\ |
16,16, 0xffffff,0xb0d0ff,0xd000ff, 5,35,195-16,250, 0,8,0, el_focus,\ |
w_scr_t1,0 |
|
align 4 |