forked from KolibriOS/kolibrios
'box_lib.obj': update function open file in element 't_edit'
'voxel_editor': small update git-svn-id: svn://kolibrios.org@2808 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
7af0b1d2b1
commit
195ca78286
@ -1,6 +1,6 @@
|
|||||||
; ¬ ªà®á ¤«ï á¨á⥬®© ¡¨¡«¨®â¥ª¨ box_lib.obj
|
; ¬ ªà®á ¤«ï á¨á⥬®© ¡¨¡«¨®â¥ª¨ box_lib.obj
|
||||||
; í«¥¬¥â TextEditor ¤«ï Kolibri OS
|
; í«¥¬¥â TextEditor ¤«ï Kolibri OS
|
||||||
; ä ©« ¯®á«¥¤¨© à § ¨§¬¥ï«áï 22.08.2011 IgorA
|
; ä ©« ¯®á«¥¤¨© à § ¨§¬¥ï«áï 19.06.2012 IgorA
|
||||||
; ª®¤ ¯à¨¬¥¥ GPL2 «¨æ¥§¨ï
|
; ª®¤ ¯à¨¬¥¥ GPL2 «¨æ¥§¨ï
|
||||||
|
|
||||||
;input:
|
;input:
|
||||||
@ -2339,15 +2339,60 @@ endp
|
|||||||
; ebx = ª®««¨ç¥á⢮ ¯à®ç¨â ëå ¡ ©â
|
; ebx = ª®««¨ç¥á⢮ ¯à®ç¨â ëå ¡ ©â
|
||||||
align 4
|
align 4
|
||||||
proc ted_open_file, edit:dword, file:dword, f_name:dword ;äãªæ¨ï ®âªàëâ¨ï ä ©«
|
proc ted_open_file, edit:dword, file:dword, f_name:dword ;äãªæ¨ï ®âªàëâ¨ï ä ©«
|
||||||
push edi
|
push ecx edx edi
|
||||||
mov edi,dword[edit]
|
mov edi,dword[edit]
|
||||||
|
|
||||||
|
; *** ¯à®¢¥à塞 à §¬¥à ¯ ¬ï⨠¨ ¥á«¨ ¥ å¢ â ¥â ⮠㢥«¨ç¨¢ ¥¬ ***
|
||||||
|
;¯à®¡ã¥¬ ¯®«ãç¨âì ¨ä®à¬ æ¨î ® ä ©«¥
|
||||||
|
mov eax,70
|
||||||
|
mov ebx,dword[file]
|
||||||
|
mov dword[ebx], 5
|
||||||
|
mov dword[ebx+4], 0
|
||||||
|
mov dword[ebx+8], 0
|
||||||
|
mov dword[ebx+12], 0
|
||||||
|
m2m dword[ebx+16], ted_tex
|
||||||
|
mov byte[ebx+20], 0
|
||||||
|
push dword[f_name]
|
||||||
|
pop dword[ebx+21]
|
||||||
|
int 0x40
|
||||||
|
cmp eax,0
|
||||||
|
je .end_0
|
||||||
|
mov edx,ted_max_chars
|
||||||
|
cmp eax,2 ;äãªæ¨ï ¥ ¯®¤¤¥à¦¨¢ ¥âáï ¤«ï ¤ ®© ä ©«®¢®© á¨á⥬ë
|
||||||
|
je @f
|
||||||
|
jmp .ret_f
|
||||||
|
.end_0:
|
||||||
|
;¯à®¢¥à塞 å¢ â¨â «¨ ¯ ¬ï⨠¤«ï § £à㧪¨ ä ©«
|
||||||
|
mov ecx,ted_max_chars
|
||||||
|
sub ecx,2 ;ecx = ¬ ªá¨¬ «ì®¥ ç¨á«® ¡ ©â, ¤«ï ª®â®àëå ¡ë« ¢ë¤¥«¥ ¯ ¬ïâì
|
||||||
|
mov edx,ted_tex
|
||||||
|
mov edx,dword[edx+32] ;+32 = +0x20: qword: à §¬¥à ä ©« ¢ ¡ ©â å
|
||||||
|
cmp edx,ecx
|
||||||
|
jl @f
|
||||||
|
;㢥«¨ç¨¢ ¥¬ ¯ ¬ïâì ¥á«¨ ¥ å¢ â¨«®
|
||||||
|
mov ecx,edx ;¯ ¬ïâì ¥®¡å®¤¨¬ ï ¤«ï ®âªàëâ¨ï ä ©«
|
||||||
|
add ecx,2 ;¯ ¬ïâì ¤«ï á«ã¦¥¡ëå ç «ì®£® ¨ ª®¥ç®£® ᨬ¢®«®¢
|
||||||
|
add ecx,ted_increase_size ;¯ ¬ïâì ¤«ï । ªâ¨à®¢ ¨ï ä ©«
|
||||||
|
mov ted_max_chars,ecx
|
||||||
|
imul ecx,sizeof.symbol
|
||||||
|
invoke mem.realloc, ted_tex,ecx
|
||||||
|
mov ted_tex,eax
|
||||||
|
mov ted_tex_1,eax
|
||||||
|
add ted_tex_1,sizeof.symbol
|
||||||
|
add eax,ecx
|
||||||
|
mov ted_tex_end,eax
|
||||||
|
mov ecx,ted_tex_1
|
||||||
|
add ecx,sizeof.symbol
|
||||||
|
mov ted_ptr_free_symb,ecx
|
||||||
|
@@:
|
||||||
|
|
||||||
|
; *** ¯à®¡ã¥¬ ®âªàëâì ä ©« ***
|
||||||
mov eax,70
|
mov eax,70
|
||||||
mov ebx,dword[file]
|
mov ebx,dword[file]
|
||||||
mov dword[ebx], 0
|
mov dword[ebx], 0
|
||||||
mov dword[ebx+4], 0
|
mov dword[ebx+4], 0
|
||||||
mov dword[ebx+8], 0
|
mov dword[ebx+8], 0
|
||||||
m2m dword[ebx+12], ted_max_chars ;ç¨á«® ¡ ©â, ª®â®àë¥ ¬®£ãâ ¡ëâì áç¨â ë á ä ©«
|
m2m dword[ebx+12], edx ;ç¨á«® ¡ ©â, ª®â®àë¥ ¬®£ãâ ¡ëâì áç¨â ë á ä ©« (¥ ¡®«ìè¥ ç¥¬ ted_max_chars)
|
||||||
m2m dword[ebx+16], ted_tex
|
m2m dword[ebx+16], ted_tex
|
||||||
mov byte[ebx+20], 0
|
mov byte[ebx+20], 0
|
||||||
push dword[f_name]
|
push dword[f_name]
|
||||||
@ -2365,7 +2410,7 @@ proc ted_open_file, edit:dword, file:dword, f_name:dword ;
|
|||||||
;if open file
|
;if open file
|
||||||
call ted_on_open_file
|
call ted_on_open_file
|
||||||
.ret_f:
|
.ret_f:
|
||||||
pop edi
|
pop edi edx ecx
|
||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
Binary file not shown.
@ -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 12.06.12',0 ;¯®¤¯¨áì ®ª
|
caption db 'Voxel editor 19.06.12',0 ;¯®¤¯¨áì ®ª
|
||||||
|
|
||||||
struct FileInfoBlock
|
struct FileInfoBlock
|
||||||
Function dd ?
|
Function dd ?
|
||||||
@ -474,13 +474,13 @@ draw_pok:
|
|||||||
mov edi,[sc.work_button]
|
mov edi,[sc.work_button]
|
||||||
int 0x40 ;¬ áèâ ¡
|
int 0x40 ;¬ áèâ ¡
|
||||||
mov ecx,[v_cur_x]
|
mov ecx,[v_cur_x]
|
||||||
add edx,(6*2)*65536+9
|
add edx,9
|
||||||
int 0x40 ;
|
int 0x40 ;ªãàá®à x
|
||||||
mov ecx,[v_cur_y]
|
mov ecx,[v_cur_y]
|
||||||
add edx,(6*0)*65536+9
|
add edx,9
|
||||||
int 0x40 ;
|
int 0x40 ;ªãàá®à y
|
||||||
mov ecx,[n_plane]
|
mov ecx,[n_plane]
|
||||||
add edx,(6*0)*65536+9
|
add edx,9
|
||||||
int 0x40 ;®¬¥à á¥ç¥¨ï
|
int 0x40 ;®¬¥à á¥ç¥¨ï
|
||||||
|
|
||||||
mov eax,4 ;à¨á®¢ ¨¥ ⥪áâ
|
mov eax,4 ;à¨á®¢ ¨¥ ⥪áâ
|
||||||
@ -914,7 +914,8 @@ push edi
|
|||||||
mov ebx,[scaled_zoom]
|
mov ebx,[scaled_zoom]
|
||||||
sub eax,ebx
|
sub eax,ebx
|
||||||
inc ebx
|
inc ebx
|
||||||
stdcall [buf2d_vox_obj_draw_3g_scaled], buf_r_img, buf_r_z, buf_vox, [open_file_vox], 0,0, 0, ebx, [cam_x],[cam_y],[cam_z],eax, 0xd080d0
|
stdcall [buf2d_vox_obj_draw_3g_scaled], buf_r_img, buf_r_z, buf_vox,\
|
||||||
|
[open_file_vox], 0,0, 0, ebx, [cam_x],[cam_y],[cam_z],eax, [sc.work_graph]
|
||||||
bt dword[mode_light],0
|
bt dword[mode_light],0
|
||||||
jnc @f
|
jnc @f
|
||||||
stdcall [buf2d_vox_obj_draw_3g_shadows], buf_r_img, buf_r_z, buf_vox, 0,0, 0, ebx, 3
|
stdcall [buf2d_vox_obj_draw_3g_shadows], buf_r_img, buf_r_z, buf_vox, 0,0, 0, ebx, 3
|
||||||
@ -1038,14 +1039,66 @@ draw_objects:
|
|||||||
stdcall [buf2d_vox_obj_draw_3g_shadows], buf_0, buf_0z, buf_vox, 0,0, 0, [scaled_zoom], 3
|
stdcall [buf2d_vox_obj_draw_3g_shadows], buf_0, buf_0z, buf_vox, 0,0, 0, [scaled_zoom], 3
|
||||||
.end_2:
|
.end_2:
|
||||||
.end_0:
|
.end_0:
|
||||||
|
|
||||||
pop ecx ebx eax
|
pop ecx ebx eax
|
||||||
|
|
||||||
|
call draw_vox_cursor
|
||||||
stdcall [buf2d_draw], buf_0 ;®¡®¢«ï¥¬ ¡ãä¥à íªà ¥
|
stdcall [buf2d_draw], buf_0 ;®¡®¢«ï¥¬ ¡ãä¥à íªà ¥
|
||||||
stdcall [buf2d_draw], buf_pl ;®¡®¢«ï¥¬ ¡ãä¥à íªà ¥
|
stdcall [buf2d_draw], buf_pl ;®¡®¢«ï¥¬ ¡ãä¥à íªà ¥
|
||||||
.end_f:
|
.end_f:
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
;à¨á®¢ ¨¥ ªãàá®à
|
||||||
|
align 4
|
||||||
|
draw_vox_cursor:
|
||||||
|
pushad
|
||||||
|
mov ecx,[v_zoom]
|
||||||
|
cmp ecx,[scaled_zoom]
|
||||||
|
jle @f
|
||||||
|
mov ecx,[scaled_zoom]
|
||||||
|
@@:
|
||||||
|
xor edx,edx
|
||||||
|
inc edx
|
||||||
|
shl edx,cl
|
||||||
|
|
||||||
|
mov eax,[v_cur_x]
|
||||||
|
cmp eax,edx
|
||||||
|
jge .end_f ;ªãàá®à § ¯à¥¤¥« ¬¨ ¯®«ï
|
||||||
|
mov edi,TILE_SIZE
|
||||||
|
imul eax,edi
|
||||||
|
add eax,OT_MAP_X
|
||||||
|
mov ebx,edx
|
||||||
|
dec ebx
|
||||||
|
sub ebx,[v_cur_y]
|
||||||
|
imul ebx,edi
|
||||||
|
add ebx,OT_MAP_Y
|
||||||
|
inc eax
|
||||||
|
inc ebx
|
||||||
|
sub edi,2
|
||||||
|
stdcall [buf2d_rect_by_size], buf_pl, eax,ebx, edi,edi,[sc.work_graph]
|
||||||
|
dec ebx
|
||||||
|
add edi,2
|
||||||
|
|
||||||
|
;£®à¨§®â «ìë¥ «¨¨¨
|
||||||
|
sub eax,2
|
||||||
|
mov ecx,edi
|
||||||
|
imul edi,edx
|
||||||
|
shr ecx,1
|
||||||
|
add ebx,ecx ;æ¥â஢ª ¯® á¥à¥¤¨¥ ª«¥âª¨
|
||||||
|
mov ecx,OT_MAP_X
|
||||||
|
add edi,ecx
|
||||||
|
stdcall [buf2d_line], buf_pl, ecx,ebx, eax,ebx,[sc.work_graph]
|
||||||
|
add eax,TILE_SIZE
|
||||||
|
inc eax
|
||||||
|
cmp eax,edi
|
||||||
|
jge @f ;¥á«¨ ªãàá®à ªà î ¯®«ï
|
||||||
|
dec edi
|
||||||
|
stdcall [buf2d_line], buf_pl, eax,ebx, edi,ebx,[sc.work_graph]
|
||||||
|
@@:
|
||||||
|
|
||||||
|
.end_f:
|
||||||
|
popad
|
||||||
|
ret
|
||||||
|
|
||||||
if 0
|
if 0
|
||||||
;input:
|
;input:
|
||||||
; buf - 㪠§ ⥫ì áâபã, ç¨á«® ¤®«¦® ¡ëâì ¢ 10 ¨«¨ 16 à¨ç®¬ ¢¨¤¥
|
; buf - 㪠§ ⥫ì áâபã, ç¨á«® ¤®«¦® ¡ëâì ¢ 10 ¨«¨ 16 à¨ç®¬ ¢¨¤¥
|
||||||
|
@ -76,16 +76,10 @@ table
|
|||||||
<td>подсветка заранее зашита в программу</td><td>подсветка берется из файлов, которые может указать пользователь. Также есть возможность получать справку по подсвечиваемым словам (если она есть в файлах подсветки, навести курсор на слово и нажать F1).</td></tr>
|
<td>подсветка заранее зашита в программу</td><td>подсветка берется из файлов, которые может указать пользователь. Также есть возможность получать справку по подсвечиваемым словам (если она есть в файлах подсветки, навести курсор на слово и нажать F1).</td></tr>
|
||||||
<tr><td>Многократная отмена/повтор действий</td>
|
<tr><td>Многократная отмена/повтор действий</td>
|
||||||
<td>нет</td><td>есть</td></tr>
|
<td>нет</td><td>есть</td></tr>
|
||||||
<tr><td>Ограничения на размер файлов</td>
|
|
||||||
<td>нет</td><td>есть при открытии файлов, при редактировании нет</td></tr>
|
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<h2>Некоторые недоработки</h2>
|
<h2>Некоторые недоработки</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Если открыть большой файл, размер которого больше чем:
|
|
||||||
maxChars equ 100002 ;(...+2)
|
|
||||||
он откроется не весь, а первые maxChars-2 символов из файла
|
|
||||||
(о чем выдается сообщение).</li>
|
|
||||||
<li>При сохранении программа не спрашивает о замене существ. файла.</li>
|
<li>При сохранении программа не спрашивает о замене существ. файла.</li>
|
||||||
<li>Срабатывали кнопки под меню, потому я их сдвинул влево.</li>
|
<li>Срабатывали кнопки под меню, потому я их сдвинул влево.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
Loading…
Reference in New Issue
Block a user