17,7 → 17,7 |
include 'vox_draw.inc' |
|
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
caption db 'Voxel editor 17.07.12',0 ;¯®¤¯¨áì ®ª |
caption db 'Voxel editor 21.06.12',0 ;¯®¤¯¨áì ®ª |
|
struct FileInfoBlock |
Function dd ? |
37,31 → 37,9 |
IMAGE_TOOLBAR_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*14 |
image_data_toolbar dd 0 |
|
;§ ç¥¨ï § ¤ ¢ ¥¬ë¥ ¯® 㬮«ç ¨î, ¡¥§ ini ä ©« |
ini_def_window_t equ 10 |
ini_def_window_l equ 10 |
ini_def_window_w equ 550 |
ini_def_window_h equ 415 |
ini_def_buf_w equ 198 ;=192+6 |
ini_def_buf_h equ 231 ;=224+7 |
ini_def_s_zoom equ 5 |
ini_def_t_size equ 10 |
ini_def_color_b equ 0xffffff |
;®¯¨á ¨¥ ¯ à ¬ â஢ ¤«ï ini ä ©« |
ini_name db 'vox_editor.ini',0 |
ini_sec_window db 'Window',0 |
key_window_t db 't',0 |
key_window_l db 'l',0 |
key_window_w db 'w',0 |
key_window_h db 'h',0 |
key_buf_w db 'buf_w',0 |
key_buf_h db 'buf_h',0 |
ini_sec_options db 'Options',0 |
key_s_zoom db 's_zoom',0 |
key_t_size db 'tile_size',0 |
key_f_size db 'file_size',0 |
key_col_b db 'c_background',0 |
max_open_file_size equ 64*1024 ;64 Kb |
|
|
macro load_image_file path,buf,size { ;¬ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥¨© |
;path - ¬®¦¥â ¡ëâì ¯¥à¥¬¥®© ¨«¨ áâப®¢ë¬ ¯ à ¬¥â஬ |
if path eqtype '' ;¯à®¢¥à塞 § ¤ «¨ áâப®© ¯ à ¬¥âà path |
103,6 → 81,7 |
|
OT_MAP_X equ 0 |
OT_MAP_Y equ 0 |
TILE_SIZE equ 10 ;à §¬¥à ª¢ ¤à ⨪ ¯«®áª®á⨠á á¥ç¥¨¥¬ |
OT_CAPT_X_COLOR equ 5 ;®âáâ㯠¤«ï ¯®¤¯¨á¨ 梥â |
OT_CAPT_Y_COLOR equ 30 |
|
119,51 → 98,6 |
mcall 40,0x27 |
stdcall [OpenDialog_Init],OpenDialog_data ;¯®¤£®â®¢ª ¤¨ «®£ |
|
;--- load ini file --- |
copy_path ini_name,sys_path,file_name,0 |
;window startup pozition |
stdcall dword[ini_get_int],file_name,ini_sec_window,key_window_l,ini_def_window_l |
mov word[wnd_s_pos+2],ax |
stdcall dword[ini_get_int],file_name,ini_sec_window,key_window_w,ini_def_window_w |
mov word[wnd_s_pos],ax |
stdcall dword[ini_get_int],file_name,ini_sec_window,key_window_t,ini_def_window_t |
mov word[wnd_s_pos+6],ax |
stdcall dword[ini_get_int],file_name,ini_sec_window,key_window_h,ini_def_window_h |
mov word[wnd_s_pos+4],ax |
;image buffer size |
stdcall dword[ini_get_int],file_name,ini_sec_window,key_buf_w,ini_def_buf_w |
mov [buf_0.w],eax |
mov [buf_0z.w],eax |
add ax,15 |
mov [buf_pl.l],ax ;®âáâ㯠¤«ï ¯à ¢®£® ®ª |
stdcall dword[ini_get_int],file_name,ini_sec_window,key_buf_h,ini_def_buf_h |
mov [buf_0.h],eax |
mov [buf_0z.h],eax |
;梥â ä® |
stdcall dword[ini_get_color],file_name,ini_sec_window,key_col_b,ini_def_color_b |
mov [buf_0.color],eax |
mov [buf_pl.color],eax |
|
;¬ áâ ¡, ¯®á«¥ ª®â®à®£® ¡ã¤¥â 㢥«¨ç¥¨¥ |
stdcall dword[ini_get_int],file_name,ini_sec_options,key_s_zoom,ini_def_s_zoom |
mov [scaled_zoom],eax |
;à §¬¥à ª¢ ¤à ⨪ ¯«®áª®á⨠á¥ç¥¨ï |
stdcall dword[ini_get_int],file_name,ini_sec_options,key_t_size,ini_def_t_size |
mov [tile_size],eax |
|
stdcall dword[ini_get_int],file_name,ini_sec_options,key_f_size,64 |
shl eax,10 |
mov [max_open_file_size],eax |
|
mov ecx,[scaled_zoom] |
xor eax,eax |
inc eax |
shl eax,cl |
imul eax,[tile_size] |
mov [buf_pl.w],eax |
add eax,[tile_size] |
mov [buf_pl.h],eax |
|
stdcall [buf2d_create], buf_0 ;ᮧ¤ ¨¥ ¡ãä¥à ¨§®¡à ¦¥¨ï |
stdcall [buf2d_create], buf_0z ;ᮧ¤ ¨¥ ¡ãä¥à £«ã¡¨ë |
stdcall [buf2d_create], buf_pl ;ᮧ¤ ¨¥ ¡ãä¥à ¤«ï á¥ç¥¨ï |
172,7 → 106,7 |
|
load_image_file fn_toolbar, image_data_toolbar,IMAGE_TOOLBAR_SIZE |
|
stdcall mem.Alloc,[max_open_file_size] |
stdcall mem.Alloc,max_open_file_size |
mov dword[open_file_vox],eax |
|
call but_new_file |
265,7 → 199,7 |
jl .end_f |
sub eax,edx |
xor edx,edx |
mov ecx,[tile_size] ;H |
mov ecx,TILE_SIZE ;H |
div ecx |
movzx edx,word[buf_pl.l] |
add edx,OT_MAP_X |
280,7 → 214,7 |
sub ebx,edx |
mov eax,ebx |
xor edx,edx |
mov ecx,[tile_size] ;W |
mov ecx,TILE_SIZE ;W |
div ecx |
mov [n_plane],eax |
jmp .end_1 |
289,7 → 223,7 |
sub ebx,edx |
mov eax,ebx |
xor edx,edx |
mov ecx,[tile_size] ;W |
mov ecx,TILE_SIZE ;W |
div ecx |
mov [v_cur_x],eax ;X-coord |
|
400,10 → 334,13 |
mcall 12,1 |
|
; *** à¨á®¢ ¨¥ £« ¢®£® ®ª (¢ë¯®«ï¥âáï 1 à § ¯à¨ § ¯ã᪥) *** |
xor eax,eax |
mov ebx,(20 shl 16)+550 |
mov ecx,(20 shl 16)+415 |
mov edx,[sc.work] |
or edx,(3 shl 24)+0x30000000 |
mov edi,caption |
mcall 0,dword[wnd_s_pos],dword[wnd_s_pos+4] |
int 0x40 |
|
; *** ᮧ¤ ¨¥ ª®¯®ª ¯ ¥«ì *** |
mov eax,8 |
690,7 → 627,7 |
mov [run_file_70.Function], 0 |
mov [run_file_70.Position], 0 |
mov [run_file_70.Flags], 0 |
m2m dword[run_file_70.Count], dword[max_open_file_size] |
mov dword[run_file_70.Count], max_open_file_size |
m2m [run_file_70.Buffer], [open_file_vox] |
mov byte[run_file_70+20], 0 |
mov dword[run_file_70.FileName], openfile_path |
699,8 → 636,8 |
cmp ebx,0xffffffff |
je .end_open_file |
|
;add ebx,[open_file_vox] |
;mov byte[ebx],0 ; á«ãç © ¥á«¨ à ¥¥ ¡ë« ®âªàëâ ä ©« ¡®«ì襣® à §¬¥à ç¨á⨬ ª®¥æ ¡ãä¥à á ä ©«®¬ |
add ebx,[open_file_vox] |
mov byte[ebx],0 ; á«ãç © ¥á«¨ à ¥¥ ¡ë« ®âªàëâ ä ©« ¡®«ì襣® à §¬¥à ç¨á⨬ ª®¥æ ¡ãä¥à á ä ©«®¬ |
mcall 71,1,openfile_path |
|
;--- |
1045,8 → 982,6 |
cam_y dd 0 |
cam_z dd 0 |
scaled_zoom dd 5 ;¬ áèâ ¡ ¯®á«¥ ª®â®à®£® ç¨ ¥âáï à¨á®¢ ¨¥ ç á⨠¨§®¡à ¦¥¨ï |
tile_size dd ? ;à §¬¥à ª¢ ¤à ⨪ ¯«®áª®á⨠á á¥ç¥¨¥¬ |
max_open_file_size dd ? |
|
txt_zoom db ' áèâ ¡:',0 |
txt_cur_x db 'x:',0 |
1087,7 → 1022,7 |
stdcall [buf2d_vox_obj_draw_3g], buf_0, buf_0z, buf_vox,\ |
[open_file_vox], ebx,ecx, 0, eax |
stdcall [buf2d_vox_obj_draw_pl], buf_pl, [open_file_vox],\ |
OT_MAP_X,OT_MAP_Y,[tile_size], eax, [n_plane], [sc.work_graph] |
OT_MAP_X,OT_MAP_Y,TILE_SIZE, eax, [n_plane], [sc.work_graph] |
stdcall [buf2d_vox_obj_draw_1g], buf_0, buf_0z,\ |
[open_file_vox], 0,0, eax |
bt dword[mode_light],0 |
1101,7 → 1036,7 |
stdcall [buf2d_vox_obj_draw_3g_scaled], buf_0, buf_0z, buf_vox,\ |
[open_file_vox], 0,0, 0, [scaled_zoom], [cam_x],[cam_y],[cam_z],eax, [sc.work_graph] ;scroll -> 2^eax |
stdcall [buf2d_vox_obj_draw_pl_scaled], buf_pl, [open_file_vox],\ |
OT_MAP_X,OT_MAP_Y,[tile_size], [scaled_zoom], [n_plane], [sc.work_graph],[cam_x],[cam_y],[cam_z],eax |
OT_MAP_X,OT_MAP_Y,TILE_SIZE, [scaled_zoom], [n_plane], [sc.work_graph],[cam_x],[cam_y],[cam_z],eax |
bt dword[mode_light],0 |
jnc .end_2 |
stdcall [buf2d_vox_obj_draw_3g_shadows], buf_0, buf_0z, buf_vox, 0,0, 0, [scaled_zoom], 3 |
1131,7 → 1066,7 |
mov eax,[v_cur_x] |
cmp eax,edx |
jge .end_f ;ªãàá®à § ¯à¥¤¥« ¬¨ ¯®«ï |
mov edi,[tile_size] |
mov edi,TILE_SIZE |
imul eax,edi |
add eax,OT_MAP_X |
mov ebx,edx |
1155,7 → 1090,7 |
mov ecx,OT_MAP_X |
add edi,ecx |
stdcall [buf2d_line], buf_pl, ecx,ebx, eax,ebx,[sc.work_graph] |
add eax,[tile_size] |
add eax,TILE_SIZE |
inc eax |
cmp eax,edi |
jge @f ;¥á«¨ ªãàá®à ªà î ¯®«ï |
1300,11 → 1235,6 |
err_msg_found_lib_2 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'buf2d.obj',39,0 |
err_msg_import_2 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'buf2d',39,0 |
|
system_dir_3 db '/sys/lib/' |
lib_name_3 db 'libini.obj',0 |
err_msg_found_lib_3 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'libini.obj',39,0 |
err_msg_import_3 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libini',39,0 |
|
l_libs_start: |
lib0 l_libs lib_name_0, sys_path, file_name, system_dir_0,\ |
err_message_found_lib_0, head_f_l, proclib_import,err_message_import_0, head_f_i |
1312,8 → 1242,6 |
err_message_found_lib_1, head_f_l, import_libimg, err_message_import_1, head_f_i |
lib_2 l_libs lib_name_2, sys_path, library_path, system_dir_2,\ |
err_msg_found_lib_2,head_f_l,import_buf2d,err_msg_import_2,head_f_i |
lib_3 l_libs lib_name_3, sys_path, library_path, system_dir_3,\ |
err_msg_found_lib_3,head_f_l,import_libini,err_msg_import_3,head_f_i |
l_libs_end: |
|
align 4 |
1446,18 → 1374,6 |
sz_buf2d_vox_obj_draw_pl db 'buf2d_vox_obj_draw_pl',0 |
sz_buf2d_vox_obj_draw_pl_scaled db 'buf2d_vox_obj_draw_pl_scaled',0 |
|
align 4 |
import_libini: |
dd alib_init2 |
ini_get_str dd aini_get_str |
ini_get_int dd aini_get_int |
ini_get_color dd aini_get_color |
dd 0,0 |
alib_init2 db 'lib_init',0 |
aini_get_str db 'ini_get_str',0 |
aini_get_int db 'ini_get_int',0 |
aini_get_color db 'ini_get_color',0 |
|
mouse_dd dd 0x0 |
sc system_colors |
|
1516,18 → 1432,17 |
align 4 |
buf_vox: |
db 6,7,4,3 ;w,h,h_osn,n |
rb BUF_STRUCT_SIZE*(3+1) |
rb BUF_STRUCT_SIZE*(2+1) |
|
|
i_end: |
wnd_s_pos: ;¬¥áâ® ¤«ï áâ஥ª áâ à⮢®© ¯®§¨æ¨¨ ®ª |
rq 0 |
rb 4096 ;2048 |
rb 2048 |
stacktop: |
sys_path rb 1024 |
file_name: |
rb 1024 ;4096 |
library_path rb 1024 |
plugin_path rb 1024 ;4096 |
openfile_path rb 1024 ;4096 |
plugin_path rb 4096 |
openfile_path rb 4096 |
filename_area rb 256 |
mem: |