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 |
|