36,8 → 36,6 |
dd 0 ; path |
;------------------------------------------------------------------------------ |
include 'lang.inc' |
|
include 'lang.inc' |
include '../../macros.inc' |
include '../../proc32.inc' |
include '../../develop/libraries/box_lib/trunk/box_lib.mac' |
360,19 → 358,28 |
mov bx,ax |
shr eax,16 |
|
add ebx,7 |
dec eax |
|
sub eax,ICON_SIZE/2 |
jns @f |
sub eax,1+ICON_SIZE/2 |
jnc @f |
xor eax,eax |
@@: |
sub ebx,ICON_SIZE/2 |
jns @f |
|
sub ebx,ICON_SIZE/2-7 |
jnc @f |
xor ebx,ebx |
@@: |
|
movzx edx,[ScreenX] |
cmp ax,[wsX] |
jae @f |
mov ax,[wsX] |
@@: |
|
cmp bx,[wsY] |
jae @f |
mov bx,[wsY] |
@@: ;eax,ebx - ॠ«ì ï ª®®à¤¨ â . ᥠª®®à¤¨ âë ¢ ¯à®£¥ ®â®á¨â¥«ì® «¥¢®£® ¢¥à奣® 㣫 à ¡®ç¥© ®¡« á⨠|
|
xor edx,edx |
mov dx,[wsXe] |
sub edx,ICON_SIZE |
cmp eax,edx |
jbe @f |
379,7 → 386,7 |
mov eax,edx |
@@: |
|
movzx edx,[ScreenY] |
mov dx,[wsYe] |
sub edx,ICON_SIZE |
cmp ebx,edx |
jbe @f |
386,23 → 393,31 |
mov ebx,edx |
@@: |
|
xor edx,edx |
mov dx,[ScreenX] |
xor edx,edx ;¯à¥®¡à §®¢ë¢ ¥¬ ¢ ®â®á¨â¥«ìë¥ |
mov dx,[wsW] |
shr edx,1 |
add dx,[wsX] |
cmp eax,edx |
jbe @f |
sub ax,[ScreenX] |
sub ax,[wsXe] |
inc ax |
jmp .mov1 |
@@: |
sub ax,[wsX] |
.mov1: |
|
xor edx,edx |
mov dx,[ScreenY] |
mov dx,[wsH] |
shr edx,1 |
add dx,[wsY] |
cmp ebx,edx |
jbe @f |
sub bx,[ScreenY] |
sub bx,[wsYe] |
inc bx |
jmp .mov2 |
@@: |
sub bx,[wsY] |
.mov2: |
|
stdcall SetPosition,[SelIcon],eax,ebx |
|
441,12 → 456,10 |
;ret eax = 1/0 = 㤠ç /®è¨¡ª |
proc DrawIcon NumIcon:DWORD,Activ:DWORD ;NumIcon = 0..n |
local IconData:DWORD |
; int3 |
push ebx edi esi |
|
mov ecx,ICON_SIZE*ICON_SIZE |
xor eax,eax |
;mov eax,0FFFFFFFh |
mov edi,IconArea |
rep stosd |
|
483,20 → 496,20 |
add ebx,-1*10000h+0 |
mcall 4 |
add ebx,2*10000h+0 |
mcall 4 |
mcall ;4 |
add ebx,-1*10000h-1 |
mcall 4 |
mcall ;4 |
add ebx,0*10000h+2 |
mcall 4 |
mcall ;4 |
add ebx,1*10000h+0 |
mcall 4 |
add ebx,0*10000h+1 |
mcall 4 |
mcall ;4 |
inc ebx;add ebx,0*10000h+1 |
mcall ;4 |
add ebx,-1*10000h+0 |
mcall 4 |
mcall ;4 |
add ebx,0*10000h-2 |
mov ecx,88FFFFFFh |
mcall 4 |
mcall ;4 |
;à¨á㥬 ª à⨪ã |
|
mov edi,esi |
540,9 → 553,9 |
add eax,IMG_SIZE*IMG_SIZE*4 |
loop @b |
DI1: |
add eax,[raw_pointer] |
add eax,0+4*11 |
mov esi,eax |
add esi,[raw_pointer] |
add esi,0+4*11 |
|
CopyToMem: |
mov edi,IconArea+((IMAGE_TOP_Y*ICON_SIZE)+((ICON_SIZE-IMG_SIZE)/2))*4 |
617,14 → 630,23 |
|
test edx,00008000h |
jz @f |
add dx,[ScreenY] |
add dx,[wsYe] |
jmp .DI11 |
@@: |
add dx,[wsY] |
.DI11: |
|
test edx,80000000h |
jz @f |
rol edx,16 |
add dx,[ScreenX] |
rol edx,16 |
mov ax,[wsXe] |
shl eax,16 |
add edx,eax |
jmp .DI12 |
@@: |
mov ax,[wsX] |
shl eax,16 |
add edx,eax |
.DI12: |
|
mov ebx,IconArea |
mov ecx,ICON_SIZE*10000h+ICON_SIZE |
658,14 → 680,20 |
mov ax,[edi+2] |
test ax,8000h |
jz @f |
add ax,[ScreenX] |
add ax,[wsXe] |
jmp .rbg1 |
@@: |
add ax,[wsX] |
.rbg1: |
|
mov bx,[edi] |
test bx,8000h |
jz @f |
add bx,[ScreenY] |
add bx,[wsYe] |
jmp .rbg2 |
@@: |
add bx,[wsY] |
.rbg2: |
|
mov cx,ax |
shl ecx,16 |
692,21 → 720,23 |
xor edx,edx |
test eax,8000h |
jnz @f |
mov dx,[ScreenX] ;¥á«¨ ¤®, â® ¯à¥®¡à §®¢ë¢ ¥¬ ¢ |
mov dx,[wsW] ;¥á«¨ ¤®, â® ¯à¥®¡à §®¢ë¢ ¥¬ ¢ |
shr edx,1 ;®âà¨æ ⥫ìë¥ ª®®à¤¨ âë |
add dx,[wsX] |
cmp eax,edx |
jbe @f |
sub ax,[ScreenX] |
sub ax,[wsW] |
inc eax |
@@: |
|
test ebx,8000h |
jnz @f |
mov dx,[ScreenY] |
mov dx,[wsY] |
shr edx,1 |
add dx,[wsH] |
cmp ebx,edx |
jbe @f |
sub bx,[ScreenY] |
sub bx,[wsH] |
inc ebx |
@@: |
;¯®¯à ¢ª á«ãç © ¢ë室 § ªà © íªà |
713,7 → 743,7 |
|
test eax,8000h |
jnz @f |
mov dx,[ScreenX] |
mov dx,[wsXe] |
sub edx,ICON_SIZE |
cmp eax,edx |
jbe @f |
722,7 → 752,7 |
|
test ebx,8000h |
jnz @f |
mov dx,[ScreenY] |
mov dx,[wsYe] |
sub edx,ICON_SIZE |
cmp ebx,edx |
jbe @f |
876,15 → 906,22 |
mov ax,[edi+2] |
test ax,8000h |
jz @f |
add ax,[ScreenX] |
add ax,[wsXe] |
jmp .gni1 |
@@: |
add ax,[wsX] |
.gni1: |
mov [posX],ax |
|
mov ax,[edi] |
test ax,8000h |
jz @f |
add ax,[ScreenY] |
add ax,[wsYe] |
jmp .gni2 |
@@: |
add ax,[wsY] |
.gni2: |
|
mov [posY],ax |
|
mov eax,[x] |
908,9 → 945,9 |
dec ebx |
pop ecx |
|
loop .TestIcon |
;dec ecx |
;jnz .TestIcon |
;loop .TestIcon |
dec ecx |
jnz .TestIcon |
jmp .NoIcon |
.OkIcon: |
mov eax,ebx |
1369,9 → 1406,17 |
sc.workH rd 1 |
|
align 4 |
ScreenX rw 1 |
ScreenY rw 1 |
|
ScreenW rw 1 |
ScreenH rw 1 |
wsX rw 1 |
wsY rw 1 |
wsXe rw 1 |
wsYe rw 1 |
wsW rw 1 |
wsH rw 1 |
|
|
MouseX rd 1 |
MouseY rd 1 |
|