17,7 → 17,7 |
include 'vox_draw.inc' |
|
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
caption db 'Voxel editor 23.08.12',0 ;¯®¤¯¨áì ®ª |
caption db 'Voxel editor 12.09.12',0 ;¯®¤¯¨áì ®ª |
|
struct FileInfoBlock |
Function dd ? |
34,7 → 34,7 |
|
fn_toolbar db 'toolbar.png',0 |
IMAGE_TOOLBAR_ICON_SIZE equ 16*16*3 |
IMAGE_TOOLBAR_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*21 |
IMAGE_TOOLBAR_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*22 |
image_data_toolbar dd 0 |
cursors_count equ 4 |
IMAGE_CURSORS_SIZE equ 4096*cursors_count ;à §¬¥à ª à⨪¨ á ªãàá®à ¬¨ |
494,6 → 494,9 |
add ebx,25 shl 16 |
mov edx,23 |
int 0x40 |
add ebx,25 shl 16 |
mov edx,24 |
int 0x40 |
|
; *** à¨á®¢ ¨¥ ¨ª®®ª ª®¯ª å *** |
mov eax,7 |
552,6 → 555,9 |
add edx,(25 shl 16) ; à¨á®¢ âì ª¨áâì |
int 0x40 |
add ebx,IMAGE_TOOLBAR_ICON_SIZE |
add edx,(25 shl 16) ;㤠«¨âì ª¨áâì |
int 0x40 |
add ebx,IMAGE_TOOLBAR_ICON_SIZE |
add edx,(25 shl 16) ;è¨à¨ ª¨á⨠-1 |
int 0x40 |
add ebx,IMAGE_TOOLBAR_ICON_SIZE |
697,11 → 703,11 |
@@: |
cmp ah,10 |
jne @f |
call but_5 |
call but_plane_inc |
@@: |
cmp ah,11 |
jne @f |
call but_6 |
call but_plane_dec |
@@: |
cmp ah,12 |
jne @f |
738,18 → 744,22 |
@@: |
cmp ah,20 |
jne @f |
call but_bru_w_m |
call but_brush_clear |
@@: |
cmp ah,21 |
jne @f |
call but_bru_w_p |
call but_bru_w_m |
@@: |
cmp ah,22 |
jne @f |
call but_bru_h_m |
call but_bru_w_p |
@@: |
cmp ah,23 |
jne @f |
call but_bru_h_m |
@@: |
cmp ah,24 |
jne @f |
call but_bru_h_p |
@@: |
cmp ah,1 |
769,12 → 779,14 |
stdcall mem.Free,[open_file_vox] |
mcall -1 |
|
;¤ ë¥ ¤«ï ¨¨æ¨ «¨§ 樨 ¢®ªá¥«ì®£® ®¡ê¥ªâ |
align 4 |
vox_new_data: |
db 2,0,0,0 |
db 000b,001b,010b,011b, 100b,101b,110b,111b ;default table |
db 0,1,2,3,4,5,6,7 ;default table |
dd 0 ;null node |
|
;¨¨æ¨ «¨§ æ¨ï ¢®ªá¥«ì®£® ®¡ê¥ªâ |
align 4 |
proc but_new_file uses ecx edi esi |
mov ecx,vox_offs_data+4 |
941,7 → 953,7 |
|
;ᤢ¨£ ¥¬ ¯«®áª®áâì á१ |
align 4 |
but_5: |
but_plane_inc: |
push eax ecx |
inc dword[n_plane] |
mov eax,[v_zoom] |
984,7 → 996,7 |
|
;ᤢ¨£ ¥¬ ¯«®áª®áâì á१ |
align 4 |
but_6: |
but_plane_dec: |
dec dword[n_plane] |
cmp dword[n_plane],0 |
jge .end_f |
1318,6 → 1330,57 |
ret |
|
align 4 |
but_brush_clear: |
cmp dword[v_pen_mode],3 |
jne .end_f |
pushad |
mov eax,[v_cur_x] |
mov ebx,[n_plane] |
mov edx,[v_cur_y] |
|
mov ecx,[v_zoom] |
cmp ecx,[scaled_zoom] |
jle @f |
;¯à¥®¡à §®¢ ¨¥ ª®®à¤¨ â, á ãç¥â®¬ 㢥«¨ç¥¨ï |
;sub ecx,[scaled_zoom] ;¢ ecx ¯à¨à®áâ ¬ áèâ ¡ (ecx>0) |
mov ecx,[scaled_zoom] |
|
mov edi,[cam_x] |
shl edi,cl |
add eax,edi |
mov edi,[cam_y] |
shl edi,cl |
add ebx,edi |
mov edi,[cam_z] |
shl edi,cl |
add edx,edi |
@@: |
|
cld |
mov edi,brush_data |
mov esi,edx |
sub esi,[brush_h] |
.cycle_0: |
mov ecx,[brush_w] |
@@: |
bt dword[edi],31 ;¡¨â ¯à®§à ç®á⨠|
jc .end_2 |
stdcall buf2d_vox_obj_delete_node, [open_file_vox], eax,ebx,edx, [v_zoom] |
.end_2: |
inc eax |
add edi,4 |
loop @b |
dec edx |
sub eax,[brush_w] |
cmp edx,esi |
jg .cycle_0 |
|
call draw_objects |
popad |
.end_f: |
ret |
|
align 4 |
draw_palete: |
stdcall [buf2d_clear], buf_0, [buf_0.color] ;ç¨á⨬ ¡ãä¥à |
stdcall buf2d_draw_palete, buf_0, 5,3, 9,6, 18, 512 |