'vox_creator': small update, add lost file toolbar.png

git-svn-id: svn://kolibrios.org@2915 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
IgorA 2012-08-08 18:25:25 +00:00
parent cfa8509ec1
commit 24d344231c
2 changed files with 69 additions and 5 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -16,7 +16,7 @@ include '../trunk/mem.inc'
include '../trunk/dll.inc'
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
caption db 'Voxel creator 1.08.12',0 ;¯®¤¯¨áì ®ª­ 
caption db 'Voxel creator 8.08.12',0 ;¯®¤¯¨áì ®ª­ 
struct FileInfoBlock
Function dd ?
@ -44,6 +44,10 @@ vox_offs_data equ 12
run_file_70 FileInfoBlock
image_data dd 0 ;㪠§ â¥«ì ­  ¢à¥¬¥­­ãî ¯ ¬ïâì. ¤«ï ­ã¦¥­ ¯à¥®¡à §®¢ ­¨ï ¨§®¡à ¦¥­¨ï
vox_obj_size dd 0 ;à §¬¥à ¢®ªá¥«ì­®£® ®¡ê¥ªâ  (¤«ï ã᪮७¨ï ¢áâ ¢ª¨)
txt_space db ' ',0
txt_pref db ' ¡ ',0,' Š¡',0,' Œ¡',0,' ƒ¡',0 ;¯à¨áâ ¢ª¨: ª¨«®, ¬¥£ , £¨£ 
txt_f_size: db '<27> §¬¥à: '
.size: rb 16
fn_toolbar db 'toolbar.png',0
IMAGE_TOOLBAR_ICON_SIZE equ 16*16*3
@ -217,6 +221,7 @@ timer_funct:
stdcall [buf2d_draw], buf_npl
inc dword[n_plane] ;¯¥à¥¬¥é ¥¬ ¯«®áª®áâì á¥ç¥­¨ï
call draw_pok
.end_f:
popad
jmp still
@ -499,6 +504,7 @@ pushad
int 0x40
call draw_buffers
call draw_pok
mcall 12,2
popad
@ -513,6 +519,34 @@ draw_buffers:
stdcall [buf2d_draw], buf_i2
ret
align 4
draw_pok:
;®¡­®¢«¥­¨¥ ¯®¤¯¨á¨ à §¬¥à  ä ©« 
mov edi,txt_f_size.size
mov dword[edi],0
mov eax,dword[vox_obj_size]
mov ebx,txt_pref
.cycle:
cmp eax,1024
jl @f
shr eax,10
add ebx,4
jmp .cycle
@@:
call convert_int_to_str
stdcall str_cat, edi,ebx
stdcall str_cat, edi,txt_space ;§ ¢¥àè î騩 ¯à®¡¥«
mov eax,4 ;à¨á®¢ ­¨¥ ⥪áâ 
mov ebx,(275 shl 16)+7
mov ecx,[sc.work_text]
or ecx,0x80000000 or (1 shl 30)
mov edx,txt_f_size
mov edi,[sc.work] ;梥â ä®­  ®ª­ 
int 0x40
ret
align 4
key:
mcall 2
@ -1293,6 +1327,35 @@ proc conv_str_to_int, buf:dword
ret
endp
align 4
proc str_cat uses eax ecx edi esi, str1:dword, str2:dword
mov esi,dword[str2]
stdcall str_len,esi
mov ecx,eax
inc ecx
mov edi,dword[str1]
stdcall str_len,edi
add edi,eax
cld
repne movsb
ret
endp
;output:
; eax = strlen
align 4
proc str_len, str1:dword
mov eax,[str1]
@@:
cmp byte[eax],0
je @f
inc eax
jmp @b
@@:
sub eax,[str1]
ret
endp
msgbox_0:
db 1,0
db '‚­¨¬ ­¨¥',0
@ -1646,15 +1709,16 @@ buf_vox:
;íâ®â ª®¤ ­¥ ¬®©, ®­ ¯à¥®¡à §ã¥â ç¨á«® ¢ áâபã
;input:
; eax = value
; edi = string buffer
;output:
align 4
tl_convert_to_str:
convert_int_to_str:
pushad
cld
mov dword[edi+1],0
mov word[edi+5],0
call .str
popad
ret
@ -1677,9 +1741,9 @@ align 4
ret ;¢¥à­ãâìáï ç¥­ì ¨­â¥à¥á­ë© 室 â.ª. ¯®ª  ¢ á⥪¥ åà ­¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï
i_end:
rb 1024
rb 2048
thread:
rb 1024
rb 2048
stacktop:
sys_path rb 1024
file_name: