1,16 → 1,11 |
use32 |
org 0x0 |
db 'MENUET01' ;¨¤¥â¨ä. ¨á¯®«ï¥¬®£® ä ©« ¢á¥£¤ 8 ¡ ©â |
dd 0x1 |
dd start |
dd i_end ;à §¬¥à ¯à¨«®¦¥¨ï |
dd mem |
dd stacktop |
dd 0 |
dd sys_path |
dd 1,start,i_end,mem,stacktop,0,sys_path |
|
include '../../../../programs/macros.inc' |
include '../../../../programs/proc32.inc' |
include '../../../../programs/KOSfuncs.inc' |
include '../../../../programs/develop/libraries/box_lib/load_lib.mac' |
include '../../../../programs/dll.inc' |
include '../trunk/str.inc' |
21,7 → 16,7 |
include '../trunk/vox_rotate.inc' |
|
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
caption db 'Voxel creator 29.01.15',0 ;¯®¤¯¨áì ®ª |
caption db 'Voxel creator 08.02.16',0 ;¯®¤¯¨áì ®ª |
|
struct FileInfoBlock |
Function dd ? |
70,24 → 65,22 |
db 0 |
@@: |
;32 - áâ ¤ àâë© ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥ ¡ëâì ¡ãä¥à á á¨áâ¥¬ë¬ ¯ã⥬ |
copy_path .path_str,[32],file_name,0x0 |
copy_path .path_str,[32],file_name,0 |
else |
copy_path path,[32],file_name,0x0 ;ä®à¬¨à㥬 ¯®«ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ® ¢ ®¤®© ¯ ¯ª¥ á ¯à®£à ¬¬®© |
copy_path path,[32],file_name,0 ;ä®à¬¨à㥬 ¯®«ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ® ¢ ®¤®© ¯ ¯ª¥ á ¯à®£à ¬¬®© |
end if |
|
stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥¨ï |
mov [buf],eax |
|
mov eax,70 ;70-ï äãªæ¨ï à ¡®â á ä ©« ¬¨ |
mov [run_file_70.Function], 0 |
mov [run_file_70.Function], SSF_READ_FILE |
mov [run_file_70.Position], 0 |
mov [run_file_70.Flags], 0 |
mov [run_file_70.Count], dword size |
m2m [run_file_70.Buffer], [buf] |
mov [run_file_70.Buffer], eax |
mov byte[run_file_70+20], 0 |
mov [run_file_70.FileName], file_name |
mov ebx,run_file_70 |
int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥¨ï |
mcall SF_FILE,run_file_70 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥¨ï |
cmp ebx,0xffffffff |
je @f |
;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥ë© ¡ãä¥à image_data |
109,10 → 102,10 |
mov ebp,lib_0 |
cmp dword [ebp+ll_struc_size-4],0 |
jz @f |
mcall -1 ;exit not correct |
mcall SF_TERMINATE_PROCESS |
@@: |
mcall 48,3,sc,sizeof.system_colors |
mcall 40,0x27 |
mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sizeof.system_colors |
mcall SF_SET_EVENTS_MASK,0x27 |
stdcall [OpenDialog_Init],OpenDialog_data ;¯®¤£®â®¢ª ¤¨ «®£ |
|
stdcall [buf2d_create], buf_0 ;ᮧ¤ ¨¥ ¡ãä¥à |
126,7 → 119,7 |
stdcall mem.Alloc,max_open_file_size |
mov dword[open_file_img],eax |
|
mcall 26,9 |
mcall SF_SYSTEM_GET,SSF_TIME_COUNT |
mov [last_time],eax |
|
align 4 |
135,7 → 128,7 |
|
align 4 |
still: |
mcall 26,9 |
mcall SF_SYSTEM_GET,SSF_TIME_COUNT |
mov ebx,[last_time] |
add ebx,10 ;§ ¤¥à¦ª |
cmp ebx,eax |
143,11 → 136,7 |
mov ebx,eax |
@@: |
sub ebx,eax |
;cmp ebx,10 ;§ ¤¥à¦ª |
;ja timer_funct |
;test ebx,ebx |
;jz timer_funct |
mcall 23 |
mcall SF_WAIT_EVENT_TIMEOUT |
cmp eax,0 |
je timer_funct |
|
166,7 → 155,7 |
je still |
|
pushad |
mcall 26,9 |
mcall SF_SYSTEM_GET,SSF_TIME_COUNT |
mov [last_time],eax |
|
; ᪨¤ë¢ ¥¬ 㪠§ ⥫¨ ¡ãä¥à®¢ buf_npl_p, buf_npl, buf_npl_n |
394,17 → 383,16 |
align 4 |
draw_window: |
pushad |
mcall 12,1 |
mcall SF_REDRAW,SSF_BEGIN_DRAW |
|
; *** à¨á®¢ ¨¥ £« ¢®£® ®ª (¢ë¯®«ï¥âáï 1 à § ¯à¨ § ¯ã᪥) *** |
xor eax,eax |
mov edx,[sc.work] |
or edx,(3 shl 24)+0x30000000 |
mcall ,(20 shl 16)+410,(20 shl 16)+520,,,caption |
mcall SF_CREATE_WINDOW,(20 shl 16)+410,(20 shl 16)+520,,,caption |
|
; *** ᮧ¤ ¨¥ ª®¯®ª ¯ ¥«ì *** |
mov esi,[sc.work_button] |
mcall 8,(5 shl 16)+20,(5 shl 16)+20,3 |
mcall SF_DEFINE_BUTTON,(5 shl 16)+20,(5 shl 16)+20,3 |
|
mov ebx,(30 shl 16)+20 |
mov edx,4 |
444,7 → 432,7 |
|
; *** à¨á®¢ ¨¥ ¨ª®®ª ª®¯ª å *** |
mov edx,(7 shl 16)+7 ;icon new |
mcall 7,[image_data_toolbar],(16 shl 16)+16 |
mcall SF_PUT_IMAGE,[image_data_toolbar],(16 shl 16)+16 |
|
add ebx,IMAGE_TOOLBAR_ICON_SIZE |
add edx,(25 shl 16) ;icon open |
478,7 → 466,7 |
call draw_buffers |
call draw_pok |
|
mcall 12,2 |
mcall SF_REDRAW,SSF_END_DRAW |
popad |
ret |
|
513,19 → 501,19 |
mov ecx,[sc.work_text] |
or ecx,0x80000000 or (1 shl 30) |
mov edi,[sc.work] ;梥â ä® ®ª |
mcall 4,(275 shl 16)+7,,txt_f_size |
mcall SF_DRAW_TEXT,(275 shl 16)+7,,txt_f_size |
|
ret |
|
align 4 |
key: |
mcall 2 |
mcall SF_GET_KEY |
jmp still |
|
|
align 4 |
button: |
mcall 17 |
mcall SF_GET_BUTTON |
cmp ah,3 |
jne @f |
call but_new_file |
581,7 → 569,7 |
stdcall mem.Free,[image_data_toolbar] |
stdcall mem.Free,[open_file_vox] |
stdcall mem.Free,[open_file_img] |
mcall -1 |
mcall SF_TERMINATE_PROCESS |
|
|
align 4 |
641,7 → 629,7 |
cmp bx,28 ;28=0+1+2+...+7 |
jne .err_open |
|
mcall 71,1,openfile_path |
mcall SF_SET_CAPTION,1,openfile_path |
stdcall buf2d_vox_obj_get_size,[open_file_vox] |
mov [vox_obj_size],eax |
call draw_object |
1108,11 → 1096,11 |
jmp .end_0 |
@@: |
; *** ¨§¬¥ï¥¬ à §¬¥àë ¡ãä¥à®¢ |
stdcall [buf2d_resize], edi, eax,eax |
stdcall [buf2d_resize], edi, eax,eax,1 |
mov edi,buf_npl_p |
stdcall [buf2d_resize], edi, eax,eax |
stdcall [buf2d_resize], edi, eax,eax,1 |
mov edi,buf_npl_n |
stdcall [buf2d_resize], edi, eax,eax |
stdcall [buf2d_resize], edi, eax,eax,1 |
.end_0: |
mov dword[n_plane],1 |
mov byte[calc],1 |
1205,7 → 1193,7 |
@@: |
mov ebx,dword[eax+4] |
mov ecx,dword[eax+8] |
stdcall [buf2d_resize], edi, ebx,ecx ;¨§¬¥ï¥¬ à §¬¥àë ¡ãä¥à |
stdcall [buf2d_resize], edi, ebx,ecx,1 ;¨§¬¥ï¥¬ à §¬¥àë ¡ãä¥à |
imul ecx,ebx |
lea ecx,[ecx+ecx*2] |
mov edi,buf2d_data |