t_edit: new algoritm text selection

img_transform: update program

git-svn-id: svn://kolibrios.org@8036 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
IgorA
2020-06-10 14:53:12 +00:00
parent 05a05aaf23
commit 12edb27757
2 changed files with 268 additions and 91 deletions

View File

@@ -1,6 +1,6 @@
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><E2A5AC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> box_lib.obj ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><E2A5AC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> box_lib.obj
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> TextEditor <20><><EFBFBD> Kolibri OS ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> TextEditor <20><><EFBFBD> Kolibri OS
; 䠩<> <20><><EFBFBD><E1ABA5><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 29.01.2019 IgorA ; 䠩<> <20><><EFBFBD><E1ABA5><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 10.06.2020 IgorA
; <20><> <20><><EFBFBD> <20><EFBFBD><E0A8AC><EFBFBD><EFBFBD><EFBFBD> GPL2 <20><><EFBFBD><E6A5AD><EFBFBD> ; <20><> <20><><EFBFBD> <20><EFBFBD><E0A8AC><EFBFBD><EFBFBD><EFBFBD> GPL2 <20><><EFBFBD><E6A5AD><EFBFBD>
;input: ;input:
@@ -337,8 +337,7 @@ proc ted_key, edit:dword, table:dword, control:dword
stdcall ted_draw,edi stdcall ted_draw,edi
jmp @f jmp @f
.no_red_0: .no_red_0:
call ted_draw_main_cursor call ted_sel_end
mov ted_drag_k,0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7A8A2><EFBFBD> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@: @@:
cmp ah,80 ;177 ;Down cmp ah,80 ;177 ;Down
jne @f jne @f
@@ -350,8 +349,7 @@ proc ted_key, edit:dword, table:dword, control:dword
stdcall ted_draw,edi stdcall ted_draw,edi
jmp @f jmp @f
.no_red_1: .no_red_1:
call ted_draw_main_cursor call ted_sel_end
mov ted_drag_k,0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7A8A2><EFBFBD> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@: @@:
cmp ah,75 ;176 ;Left cmp ah,75 ;176 ;Left
jne @f jne @f
@@ -363,8 +361,7 @@ proc ted_key, edit:dword, table:dword, control:dword
stdcall ted_draw,edi stdcall ted_draw,edi
jmp @f jmp @f
.no_red_2: .no_red_2:
call ted_draw_main_cursor call ted_sel_end
mov ted_drag_k,0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7A8A2><EFBFBD> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@: @@:
cmp ah,77 ;179 ;Right cmp ah,77 ;179 ;Right
jne @f jne @f
@@ -376,8 +373,7 @@ proc ted_key, edit:dword, table:dword, control:dword
stdcall ted_draw,edi stdcall ted_draw,edi
jmp @f jmp @f
.no_red_3: .no_red_3:
call ted_draw_main_cursor call ted_sel_end
mov ted_drag_k,0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7A8A2><EFBFBD> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@: @@:
cmp ah,71 ;180 ;Home cmp ah,71 ;180 ;Home
jne @f jne @f
@@ -389,8 +385,7 @@ proc ted_key, edit:dword, table:dword, control:dword
stdcall ted_draw,edi stdcall ted_draw,edi
jmp @f jmp @f
.no_red_4: .no_red_4:
call ted_draw_main_cursor call ted_sel_end
mov ted_drag_k,0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7A8A2><EFBFBD> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@: @@:
cmp ah,79 ;181 ;End cmp ah,79 ;181 ;End
jne @f jne @f
@@ -402,8 +397,7 @@ proc ted_key, edit:dword, table:dword, control:dword
stdcall ted_draw,edi stdcall ted_draw,edi
jmp @f jmp @f
.no_red_5: .no_red_5:
call ted_draw_main_cursor call ted_sel_end
mov ted_drag_k,0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7A8A2><EFBFBD> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@: @@:
cmp ah,73 ;184 ;PageUp cmp ah,73 ;184 ;PageUp
jne @f jne @f
@@ -412,6 +406,7 @@ proc ted_key, edit:dword, table:dword, control:dword
je @f je @f
call ted_scroll_set_redraw call ted_scroll_set_redraw
stdcall ted_draw,edi stdcall ted_draw,edi
mov ted_drag_k,0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7A8A2><EFBFBD> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@: @@:
cmp ah,81 ;183 ;PageDown cmp ah,81 ;183 ;PageDown
jne @f jne @f
@@ -632,6 +627,29 @@ proc ted_sel_start uses eax ecx
ret ret
endp endp
;input:
; edi = pointer to tedit struct
;description:
; <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD><EBA2A0><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD>
align 16
proc ted_sel_end uses eax
mov ted_drag_k,0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7A8A2><EFBFBD> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
call ted_is_select
or al,al
jz @f
xor eax,eax
mov ted_sel_x0,eax
mov ted_sel_x1,eax
mov ted_sel_y0,eax
mov ted_sel_y1,eax
stdcall ted_draw,edi
jmp .end_f
@@:
call ted_draw_main_cursor
.end_f:
ret
endp
;input: ;input:
; edi = pointer to tedit struct ; edi = pointer to tedit struct
;description: ;description:
@@ -1396,7 +1414,7 @@ proc ted_convert_sel_text, conv_fun:dword
@@: @@:
.end_f: .end_f:
popad popad
mov esi,dword[conv_cou] mov esi,[conv_cou]
ret ret
endp endp

View File

@@ -13,7 +13,7 @@ include '../../../programs/develop/libraries/libs-dev/libimg/libimg.inc'
include '../../../programs/develop/info3ds/info_fun_float.inc' include '../../../programs/develop/info3ds/info_fun_float.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 'Image transform 26.05.20',0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> caption db 'Image transform 10.06.20',0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
offs_zbuf_pbuf equ 24 ;const. from 'zbuffer.inc' offs_zbuf_pbuf equ 24 ;const. from 'zbuffer.inc'
@@ -27,6 +27,9 @@ buf2d_size_lt equ dword[edi+4] ;
buf2d_color equ dword[edi+16] ;梥<><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> buf2d_color equ dword[edi+16] ;梥<><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
buf2d_bits equ byte[edi+20] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD> <20> 1-<2D> <20><><20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> buf2d_bits equ byte[edi+20] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD> <20> 1-<2D> <20><><20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
NAV_WND_L equ 145
NAV_WND_T equ 1
include 'select_points.inc' include 'select_points.inc'
IMAGE_TOOLBAR_ICON_SIZE equ 16*16*3 IMAGE_TOOLBAR_ICON_SIZE equ 16*16*3
@@ -108,6 +111,7 @@ timer_funct:
pop ebx eax pop ebx eax
cmp byte[calc],0 cmp byte[calc],0
je still je still
call draw_nav_wnd
call draw_buffers call draw_buffers
jmp still jmp still
@@ -142,6 +146,12 @@ pushad
@@: @@:
stdcall [buf2d_resize],buf_0,ebx,eax,1 stdcall [buf2d_resize],buf_0,ebx,eax,1
call calc_nav_params call calc_nav_params
mov eax,[nav_x]
call nav_x_corect
mov [nav_x],eax
mov eax,[nav_y]
call nav_y_corect
mov [nav_y],eax
mov byte[calc],1 mov byte[calc],1
.end0: .end0:
@@ -174,12 +184,65 @@ pushad
add edx,(25 shl 16) ; add edx,(25 shl 16) ;
int 0x40 int 0x40
call draw_nav_wnd
call draw_buffers call draw_buffers
mcall SF_REDRAW,SSF_END_DRAW mcall SF_REDRAW,SSF_END_DRAW
popad popad
ret ret
;<3B><><EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6A8AE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
align 4
proc draw_nav_wnd
cmp dword[buf_i0],0
je .end0
bt dword[nav_x_min],31
jnc .end0
bt dword[nav_y_min],31
jnc .end0
pushad
mov ebx,(NAV_WND_L shl 16)
add ebx,[nav_wnd_w]
mov ecx,(NAV_WND_T shl 16)
add ecx,[nav_wnd_h]
mcall SF_DRAW_RECT,,,0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
mov ecx,[nav_wnd_zoom]
mov ebx,[nav_x]
neg ebx
sar ebx,cl
add ebx,NAV_WND_L
shl ebx,16
add ebx,[buf_0.w]
shr bx,cl
mov edx,[nav_y]
neg edx
sar edx,cl
add edx,NAV_WND_T
shl edx,16
add edx,[buf_0.h]
shr dx,cl
mov ecx,edx
mcall ,,,0x404080 ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
mov edi,sel_pt
@@:
mov ecx,[nav_wnd_zoom]
mov ebx,[edi+point2d.x]
shr ebx,cl
add ebx,NAV_WND_L
mov edx,[edi+point2d.y]
shr edx,cl
add edx,NAV_WND_T
mov ecx,edx
mcall SF_PUT_PIXEL,,,0xffff00
add edi,sizeof.point2d
cmp edi,sel_pt+4*sizeof.point2d
jl @b
popad
.end0:
ret
endp
align 4 align 4
proc draw_buffers proc draw_buffers
pushad pushad
@@ -456,6 +519,37 @@ proc buf_get_mouse_coord
ret ret
endp endp
;output:
; eax - buffer coord X (<28><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>஬ -1)
; ebx - buffer coord Y (<28><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>஬ -1)
align 4
proc nav_wnd_get_mouse_coord
mcall SF_MOUSE_GET,SSF_WINDOW_POSITION
cmp ax,NAV_WND_T
jl .no_buf ;<3B><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> y
cmp eax,NAV_WND_L shl 16
jl .no_buf ;<3B><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> x
mov ebx,eax
shr ebx,16
and eax,0xffff ;<3B><><EFBFBD><20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> y
sub ax,NAV_WND_T
cmp eax,[nav_wnd_h]
jg .no_buf
sub bx,NAV_WND_L
cmp ebx,[nav_wnd_w]
jg .no_buf
xchg eax,ebx
jmp .end_f
.no_buf:
xor eax,eax
not eax
xor ebx,ebx
not ebx
.end_f:
ret
endp
align 4 align 4
mouse_left_d: mouse_left_d:
pushad pushad
@@ -494,7 +588,17 @@ pushad
cmp ecx,4 cmp ecx,4
jl .cycle0 jl .cycle0
mov dword[sel_act],-1 mov dword[sel_act],-1
jmp .end2
.end0: .end0:
call nav_wnd_get_mouse_coord
cmp eax,-1
je .end2
mov ecx,[nav_wnd_zoom]
shl eax,cl
shl ebx,cl
stdcall nav_to_point, eax,ebx
mov byte[calc],1
.end2:
popad popad
ret ret
@@ -543,26 +647,12 @@ proc mouse_left_u uses eax ebx
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
mov eax,[nav_y] mov eax,[nav_y]
sub eax,[mouse_down_y] sub eax,[mouse_down_y]
cmp eax,[nav_y_min] call nav_y_corect
jge @f
mov eax,[nav_y_min]
@@:
cmp eax,[nav_y_max]
jle @f
mov eax,[nav_y_max]
@@:
mov [nav_y],eax mov [nav_y],eax
mov eax,[nav_x] mov eax,[nav_x]
sub eax,[mouse_down_x] sub eax,[mouse_down_x]
cmp eax,[nav_x_min] call nav_x_corect
jge @f
mov eax,[nav_x_min]
@@:
cmp eax,[nav_x_max]
jle @f
mov eax,[nav_x_max]
@@:
mov [nav_x],eax mov [nav_x],eax
.end2: .end2:
mov byte[calc],1 mov byte[calc],1
@@ -585,7 +675,7 @@ open_file_size dd 0 ;ࠧ
;<3B><><EFBFBD><EFBFBD><EFBFBD><E1ABA5><EFBFBD> <20><><EFBFBD><E0A0AC><20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> ;<3B><><EFBFBD><EFBFBD><EFBFBD><E1ABA5><EFBFBD> <20><><EFBFBD><E0A0AC><20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
align 4 align 4
proc calc_nav_params uses eax edi proc calc_nav_params uses eax ecx edi
mov dword[nav_x_max],0 mov dword[nav_x_max],0
mov edi,buf_0 mov edi,buf_0
mov eax,buf2d_w mov eax,buf2d_w
@@ -623,6 +713,33 @@ proc calc_nav_params uses eax edi
mov [nav_sy],edi mov [nav_sy],edi
@@: @@:
shr dword[nav_sy],1 shr dword[nav_sy],1
xor ecx,ecx
mov eax,[buf_i0.w]
@@:
inc ecx
shr eax,1
cmp eax,100
jg @b
mov [nav_wnd_zoom],ecx
xor ecx,ecx
mov eax,[buf_i0.h]
@@:
inc ecx
shr eax,1
cmp eax,32
jg @b
cmp [nav_wnd_zoom],ecx
jg @f
mov [nav_wnd_zoom],ecx
@@:
mov ecx,[nav_wnd_zoom]
mov eax,[buf_i0.w]
shr eax,cl
mov [nav_wnd_w],eax
mov eax,[buf_i0.h]
shr eax,cl
mov [nav_wnd_h],eax
ret ret
endp endp
@@ -699,23 +816,42 @@ proc but_open_file
mov edi,buf_i0 mov edi,buf_i0
cmp buf2d_data,0 cmp buf2d_data,0
jne .end3 jne .end3
stdcall getNextPowerOfTwo,[ebx+8]
mov buf2d_h,eax
mov edx,eax
stdcall getNextPowerOfTwo,[ebx+4] stdcall getNextPowerOfTwo,[ebx+4]
mov buf2d_w,eax mov buf2d_w,eax
m2m buf2d_h,dword[ebx+8] ;+8 = image height cmp edx,[ebx+8]
jne @f
cmp eax,[ebx+4] cmp eax,[ebx+4]
jg @f jne @f
m2m buf2d_w,dword[ebx+4] ;ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><E5AEA4><EFBFBD><><E0A0A7>
stdcall [buf2d_create_f_img], edi,[open_file_img] stdcall [buf2d_create_f_img], edi,[open_file_img]
jmp .end_1 jmp .end_1
@@:
;ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20><> <20><EFBFBD><EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E0A0A7>
cmp eax,[ebx+4]
jge @f
mov eax,[ebx+4]
mov buf2d_w,eax
@@: @@:
sub eax,[ebx+4] sub eax,[ebx+4]
shr eax,1 shr eax,1
mov esi,eax mov esi,eax
cmp edx,[ebx+8]
jge @f
mov edx,[ebx+8]
mov buf2d_h,edx
@@:
sub edx,[ebx+8]
shr edx,1
stdcall [buf2d_create], edi stdcall [buf2d_create], edi
mov [buf_cop.l],si mov [buf_cop.l],si
stdcall [buf2d_bit_blt], edi, esi,0, buf_cop mov [buf_cop.t],dx
stdcall [buf2d_bit_blt], edi, esi,edx, buf_cop
jmp .end_1 jmp .end_1
.end3: .end3:
;<3B><EFBFBD><EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1AEA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
stdcall getNextPowerOfTwo,[ebx+4] stdcall getNextPowerOfTwo,[ebx+4]
cmp eax,[ebx+4] cmp eax,[ebx+4]
jg @f jg @f
@@ -816,13 +952,7 @@ proc nav_to_point, coord_x:dword, coord_y:dword
mov eax,[buf_0.w] mov eax,[buf_0.w]
shr eax,1 shr eax,1
sub eax,[coord_x] sub eax,[coord_x]
cmp eax,[nav_x_min] call nav_x_corect
jge @f
mov eax,[nav_x_min]
@@:
cmp eax,[nav_x_max]
jle .end0
mov eax,[nav_x_max]
.end0: .end0:
mov [nav_x],eax mov [nav_x],eax
;coord y ;coord y
@@ -836,17 +966,43 @@ proc nav_to_point, coord_x:dword, coord_y:dword
mov eax,[buf_0.h] mov eax,[buf_0.h]
shr eax,1 shr eax,1
sub eax,[coord_y] sub eax,[coord_y]
call nav_y_corect
.end1:
mov [nav_y],eax
ret
endp
;input:
; eax - navigation coord x
;output:
; eax - valid coord x
align 4
nav_x_corect:
cmp eax,[nav_x_min]
jge @f
mov eax,[nav_x_min]
@@:
cmp eax,[nav_x_max]
jle @f
mov eax,[nav_x_max]
@@:
ret
;input:
; eax - navigation coord y
;output:
; eax - valid coord y
align 4
nav_y_corect:
cmp eax,[nav_y_min] cmp eax,[nav_y_min]
jge @f jge @f
mov eax,[nav_y_min] mov eax,[nav_y_min]
@@: @@:
cmp eax,[nav_y_max] cmp eax,[nav_y_max]
jle .end1 jle @f
mov eax,[nav_y_max] mov eax,[nav_y_max]
.end1: @@:
mov [nav_y],eax
ret ret
endp
align 4 align 4
proc getNextPowerOfTwo uses ebx, n:dword proc getNextPowerOfTwo uses ebx, n:dword
@@ -1412,6 +1568,9 @@ nav_x dd 0 ;⥪
nav_y dd 0 ;⥪<><E2A5AA>. <20><><EFBFBD><EFBFBD><EFBFBD>. y <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> nav_y dd 0 ;⥪<><E2A5AA>. <20><><EFBFBD><EFBFBD><EFBFBD>. y <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
nav_sx dd 0 ;<3B><><20><> x nav_sx dd 0 ;<3B><><20><> x
nav_sy dd 0 ;<3B><><20><> y nav_sy dd 0 ;<3B><><20><> y
nav_wnd_w dd 0 ;<3B><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
nav_wnd_h dd 0 ;<3B><><EFBFBD><E1AEA0> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
nav_wnd_zoom dd 0
mouse_down_x dd ? mouse_down_x dd ?
mouse_down_y dd ? mouse_down_y dd ?
sel_act dd ? ;<3B><><20><><EFBFBD><EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><><E0A5A4><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> sel_act dd ? ;<3B><><20><><EFBFBD><EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><><E0A5A4><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>