'vox_editor' update

git-svn-id: svn://kolibrios.org@2974 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
IgorA 2012-09-13 19:51:21 +00:00
parent 0cf74faa74
commit ff07aa50ca
6 changed files with 1847 additions and 10 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@ -17,7 +17,7 @@ include 'dll.inc'
include 'vox_draw.inc' include 'vox_draw.inc'
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load @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 struct FileInfoBlock
Function dd ? Function dd ?
@ -34,7 +34,7 @@ image_data dd 0 ;㪠
fn_toolbar db 'toolbar.png',0 fn_toolbar db 'toolbar.png',0
IMAGE_TOOLBAR_ICON_SIZE equ 16*16*3 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 image_data_toolbar dd 0
cursors_count equ 4 cursors_count equ 4
IMAGE_CURSORS_SIZE equ 4096*cursors_count ;à §¬¥à ª à⨭ª¨ á ªãàá®à ¬¨ IMAGE_CURSORS_SIZE equ 4096*cursors_count ;à §¬¥à ª à⨭ª¨ á ªãàá®à ¬¨
@ -494,6 +494,9 @@ pushad
add ebx,25 shl 16 add ebx,25 shl 16
mov edx,23 mov edx,23
int 0x40 int 0x40
add ebx,25 shl 16
mov edx,24
int 0x40
; *** à¨á®¢ ­¨¥ ¨ª®­®ª ­  ª­®¯ª å *** ; *** à¨á®¢ ­¨¥ ¨ª®­®ª ­  ª­®¯ª å ***
mov eax,7 mov eax,7
@ -552,6 +555,9 @@ pushad
add edx,(25 shl 16) ;­ à¨á®¢ âì ª¨áâì add edx,(25 shl 16) ;­ à¨á®¢ âì ª¨áâì
int 0x40 int 0x40
add ebx,IMAGE_TOOLBAR_ICON_SIZE 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 add edx,(25 shl 16) ;è¨à¨­  ª¨á⨠-1
int 0x40 int 0x40
add ebx,IMAGE_TOOLBAR_ICON_SIZE add ebx,IMAGE_TOOLBAR_ICON_SIZE
@ -697,11 +703,11 @@ button:
@@: @@:
cmp ah,10 cmp ah,10
jne @f jne @f
call but_5 call but_plane_inc
@@: @@:
cmp ah,11 cmp ah,11
jne @f jne @f
call but_6 call but_plane_dec
@@: @@:
cmp ah,12 cmp ah,12
jne @f jne @f
@ -738,17 +744,21 @@ button:
@@: @@:
cmp ah,20 cmp ah,20
jne @f jne @f
call but_bru_w_m call but_brush_clear
@@: @@:
cmp ah,21 cmp ah,21
jne @f jne @f
call but_bru_w_p call but_bru_w_m
@@: @@:
cmp ah,22 cmp ah,22
jne @f jne @f
call but_bru_h_m call but_bru_w_p
@@: @@:
cmp ah,23 cmp ah,23
jne @f
call but_bru_h_m
@@:
cmp ah,24
jne @f jne @f
call but_bru_h_p call but_bru_h_p
@@: @@:
@ -769,12 +779,14 @@ button:
stdcall mem.Free,[open_file_vox] stdcall mem.Free,[open_file_vox]
mcall -1 mcall -1
;¤ ­­ë¥ ¤«ï ¨­¨æ¨ «¨§ æ¨¨ ¢®ªá¥«ì­®£® ®¡ê¥ªâ 
align 4 align 4
vox_new_data: vox_new_data:
db 2,0,0,0 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 dd 0 ;null node
;¨­¨æ¨ «¨§ æ¨ï ¢®ªá¥«ì­®£® ®¡ê¥ªâ 
align 4 align 4
proc but_new_file uses ecx edi esi proc but_new_file uses ecx edi esi
mov ecx,vox_offs_data+4 mov ecx,vox_offs_data+4
@ -941,7 +953,7 @@ but_4:
;ᤢ¨£ ¥¬ ¯«®áª®áâì á१  ;ᤢ¨£ ¥¬ ¯«®áª®áâì á१ 
align 4 align 4
but_5: but_plane_inc:
push eax ecx push eax ecx
inc dword[n_plane] inc dword[n_plane]
mov eax,[v_zoom] mov eax,[v_zoom]
@ -984,7 +996,7 @@ pop ecx eax
;ᤢ¨£ ¥¬ ¯«®áª®áâì á१  ;ᤢ¨£ ¥¬ ¯«®áª®áâì á१ 
align 4 align 4
but_6: but_plane_dec:
dec dword[n_plane] dec dword[n_plane]
cmp dword[n_plane],0 cmp dword[n_plane],0
jge .end_f jge .end_f
@ -1317,6 +1329,57 @@ popad
.end_f: .end_f:
ret 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 align 4
draw_palete: draw_palete:
stdcall [buf2d_clear], buf_0, [buf_0.color] ;ç¨á⨬ ¡ãä¥à stdcall [buf2d_clear], buf_0, [buf_0.color] ;ç¨á⨬ ¡ãä¥à

View File

@ -1,7 +1,10 @@
if not exist bin mkdir bin if not exist bin mkdir bin
if not exist bin\toolbar.png @copy toolbar.png bin\toolbar.png if not exist bin\toolbar.png @copy toolbar.png bin\toolbar.png
if not exist bin\toolbar_m.png @copy toolbar_m.png bin\toolbar_m.png
if not exist bin\buf2d.obj @fasm.exe -m 16384 ..\..\..\develop\libraries\buf2d\trunk\buf2d.asm bin\buf2d.obj if not exist bin\buf2d.obj @fasm.exe -m 16384 ..\..\..\develop\libraries\buf2d\trunk\buf2d.asm bin\buf2d.obj
@kpack bin\buf2d.obj @kpack bin\buf2d.obj
@fasm.exe -m 16384 vox_creator.asm bin\vox_creator.kex @fasm.exe -m 16384 vox_creator.asm bin\vox_creator.kex
@kpack bin\vox_creator.kex @kpack bin\vox_creator.kex
@fasm.exe -m 16384 vox_mover.asm bin\vox_mover.kex
@kpack bin\vox_mover.kex
pause pause

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,12 @@
[Window]
t=10
l=10
w=740
h=535
buf_w=390
buf_h=455
c_background=239,255,255
[Options]
s_zoom=6
tile_size=5
file_size=256 ;¬ ªá¨¬ «ì­ë© à §¬¥à ä ©«  ¢ Š¡