0,0 → 1,1067 |
use32 |
org 0x0 |
db 'MENUET01' ;¨¤¥â¨ä. ¨á¯®«ï¥¬®£® ä ©« ¢á¥£¤ 8 ¡ ©â |
dd 0x1 |
dd start |
dd i_end ;à §¬¥à ¯à¨«®¦¥¨ï |
dd mem |
dd stacktop |
dd 0x0 |
dd sys_path |
|
include '../../../macros.inc' |
include '../../../proc32.inc' |
include '../../../develop/libraries/box_lib/load_lib.mac' |
include 'mem.inc' |
include 'dll.inc' |
|
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc, dll.Load |
|
;ä« £¨, ¤«ï äãªæ¨¨ ®¡à¥§ ¨ï ¡ãä¥à |
BUF2D_OPT_CROP_TOP equ 1 ;®¡à¥§ª ᢥàåã |
BUF2D_OPT_CROP_LEFT equ 2 ;®¡à¥§ª á«¥¢ |
BUF2D_OPT_CROP_BOTTOM equ 4 ;®¡à¥§ª ᨧã |
BUF2D_OPT_CROP_RIGHT equ 8 ;®¡à¥§ª á¯à ¢ |
BUF2D_BIT_OPT_CROP_TOP equ 0 |
BUF2D_BIT_OPT_CROP_LEFT equ 1 |
BUF2D_BIT_OPT_CROP_BOTTOM equ 2 |
BUF2D_BIT_OPT_CROP_RIGHT equ 3 |
|
BUF_STRUCT_SIZE equ 21 |
buf2d_data equ dword[edi] ;¤ ë¥ ¡ãä¥à ¨§®¡à ¦¥¨ï |
buf2d_w equ dword[edi+8] ;è¨à¨ ¡ãä¥à |
buf2d_h equ dword[edi+12] ;¢ëá®â ¡ãä¥à |
buf2d_t equ word[edi+6] ;®âáâ㯠ᢥàåã |
buf2d_l equ word[edi+4] ;®âáâ㯠᫥¢ |
buf2d_size_lt equ dword[edi+4] ;®âáâ㯠᫥¢ ¨ á¯à ¢ ¤«ï ¡ãä¥à |
buf2d_color equ dword[edi+16] ;梥â ä® ¡ãä¥à |
buf2d_bits equ byte[edi+20] ;ª®«¨ç¥á⢮ ¡¨â ¢ 1-© â®çª¥ ¨§®¡à ¦¥¨ï |
|
struct FileInfoBlock |
Function dd ? |
Position dd ? |
Flags dd ? |
Count dd ? |
Buffer dd ? |
db ? |
FileName dd ? |
ends |
|
GAME_POLE_W equ 315 ;è¨à¨ ¯®«ï |
GAME_POLE_H equ 210 ;¢ëá®â ¯®«ï |
GAME_POLE_BYTES equ GAME_POLE_W*GAME_POLE_H*3 ;à §¬¥à ä ©« á ¨§®¡à ¦¥¨¥¬ |
OFFS_SHADOW_X equ 2 ;ᤢ¨£ ⥥© ¯® ®á¨ 'x' |
OFFS_SHADOW_Y equ 2 ;ᤢ¨£ ⥥© ¯® ®á¨ 'y' |
IMAGE_FONT_SIZE equ 128*144*3 |
|
fn_icon0 db 'curici.png',0 ;¨¬ï ä ©« á ¤¥ª®à æ¨ï¬¨ |
fn_icon1 db 'wolf.png',0 ;¨¬ï ä ©« á ¢®«ª®¬ ¨ § ©æ¥¬ |
fn_icon2 db 'eggs.png',0 ;¨¬ï ä ©« á ï©æ ¬¨ |
fn_icon3 db 'chi.png',0 ;¨¬ï ä ©« á 樯«ïâ ¬¨ |
fn_font db 'font8x9.bmp',0 |
|
color_fon dd 0xffffff |
color_shadows dd 0xd0d0d0 ;梥â ⥥© |
color_trees dd 0x008000 ;梥â âà ¢ë |
color_wolf dd 0x800000 ;梥⠢®«ª ¨ § ©æ |
color_egg dd 0x404080 ;梥â ï©æ |
color_chick dd 0x00d0d0 ;梥â 樯«¥ª |
color_curici dd 0x8080d0 ;梥⠪ãà¨æë |
color_perilo dd 0x000080 ;梥⠯¥à¨« (£à¥¡ï) |
|
macro load_image_file path,buf,size { ;¬ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥¨© |
stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥¨ï |
mov [buf],eax |
|
copy_path path,sys_path,file_name,0x0 ;ä®à¬¨à㥬 ¯®«ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ® ¢ ®¤®© ¯ ¯ª¥ á ¯à®£à ¬¬®© |
mov eax,70 ;70-ï äãªæ¨ï à ¡®â á ä ©« ¬¨ |
mov [run_file_70.Function], 0 |
mov [run_file_70.Position], 0 |
mov [run_file_70.Flags], 0 |
mov [run_file_70.Count], dword size |
m2m [run_file_70.Buffer], [buf] |
mov byte[run_file_70+20], 0 |
mov [run_file_70.FileName], file_name |
mov ebx,run_file_70 |
int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥¨ï |
cmp ebx,0xffffffff |
je @f |
;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥ë© ¡ãä¥à image_data |
stdcall dword[img_decode], dword[buf],ebx,0 |
mov dword[image_data],eax |
;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥¨¥ ª ä®à¬ âã rgb |
stdcall dword[img_to_rgb2], dword[image_data],dword[buf] |
;㤠«ï¥¬ ¢à¥¬¥ë© ¡ãä¥à image_data |
stdcall dword[img_destroy], dword[image_data] |
@@: |
} |
|
;¤ ë¥ ¨£àë |
bit_zaac equ 2 ;¡¨â § ©æ |
val_zaac equ 4 ;æ¨äà ®â¢¥ç îé ï § ¡¨â § ©æ |
bit_mig equ 3 ;¡¨â ¬¨£ ¨ï |
val_mig equ 8 ;æ¨äà ®â¢¥ç îé ï § ¡¨â ¬¨£ ¨ï |
mask_lot_lu equ 1b ;¬ ᪠¤«ï «¥¢®£® ¢¥à奣® «®âª |
mask_lot_ld equ 100000b ;¬ ᪠¤«ï «¥¢®£® ¨¦¥£® «®âª |
mask_lot_ru equ 10000000000b ;¬ ᪠¤«ï ¯à ¢®£® ¢¥à奣® «®âª |
mask_lot_rd equ 1000000000000000b ;¬ ᪠¤«ï ¯à ¢®£® ¨¦¥£® «®âª |
mask_clear_all equ 11111011111011110111101111011110b ;¬ ᪠¤«ï ®ç¨á⪨ ¯ ¤ îé¨å ï¨æ ¨ ¯à¨¡¥¦ ¢è¨å 樯«ïâ |
mask_fail_eggs equ 100001000010000100000b ;¬ ᪠¯ ¤ îé¨å ï¨æ |
mask_chi_left equ 11111000000000000000000000b ;¬ ᪠«¥¢ëå 樯«ïâ |
mask_chi_right equ 11111000000000000000000000000000b ;¬ ᪠¯à ¢ëå 樯«ïâ |
mask_chi_cr_l equ 1000000000000000000000b ;¬ ᪠¤«ï ᮧ¤ ¨ï «¥¢®£® |
mask_chi_cr_r equ 1000000000000000000000000000b ;¬ ᪠¤«ï ᮧ¤ ¨ï ¯à ¢®£® |
bit_chi_left equ 21 ;1-© ¡¨â ª®â®àë© ®â¢¥ç ¥â § ¡¥£ã饣® á«¥¢ |
bit_chi_right equ 27 ;1-© ¡¨â ª®â®àë© ®â¢¥ç ¥â § ¡¥£ã饣® ¯à ¢ |
|
pos_wolf db 0 ;¯®§¨æ¨ï ¢®«ª 0-© ¡¨â á«¥¢ /á¯à ¢ , 1-© ¡¨â ᢥàåã/¢¨§ |
;rb 1 |
pos_eggs dd 0 ;¯®§¨æ¨¨ à ᯮ«®¦¥¨ï ï¨æ ¨ 樯«ïâ |
eggs_count dw 0 ;ª®««¨ç¥á⢮ ¯®©¬ ëå ï¨æ |
game_text db '£à _',13 |
some_text db '0' |
rb 8 ;⥪áâ á ç¨á«®¬ ¯®©¬ ëå ï¨æ |
count_last db 0 ;áç¥â稪 ¯à®¯ãé¥ëå ï¨æ |
game_spd dd 0 ;§ ¤¥à¦ª ¨£àë |
|
;¤«ï £¥¥à 樨 á«ãç ©ëå ç¨á¥« |
rand_x dd 0 |
|
align 4 |
rand_next: |
;x(k+1) = (a*x(k)+c) mod m |
; a=22695477, c=1, m=2^32 |
push eax |
mov eax,dword[rand_x] |
imul eax,22695477 |
inc eax |
mov dword[rand_x],eax |
pop eax |
ret |
|
;ᮧ¤ ¥¬ ¯à®§à çë¥ ¡ãä¥à ¯® 8 ¡¨â (âà ä à¥âë), ¤«ï à¨á®¢ ¨ï |
;£¤¥ buf - ¡ãä¥à ®á®¢¥ ª®â®à®£® ¡ã¤¥â ᮧ¤ âà ä à¥â |
;ä®®¢ë© 梥⠡ãä¥à ¤®«¦¥ ¡ëâì 0xffffff, ¨ ç¥ ¥ ¯à®¨§®©¤¥â ®¡à¥§ª |
;¯® ä®®¢®¬ã 梥âã ¨ âà ä à¥â ¡ã¤¥â § ¨¬ â 쬮£® ¬¥áâ ¢ ¯ ¬ï⨠|
align 4 |
proc CreateTrapharetBuffer, buf:dword, img_data:dword |
push edi |
mov edi,dword[buf] |
stdcall [buf2d_create_f_img], edi,[img_data] ;ᮧ¤ ¥¬ ¡ãä¥à |
stdcall [buf2d_conv_24_to_8], edi,1 ;¤¥« ¥¬ ¡ãä¥à ¯à®§à ç®á⨠8¡¨â |
stdcall [buf2d_crop_color], edi,buf2d_color,BUF2D_OPT_CROP_TOP+BUF2D_OPT_CROP_BOTTOM+BUF2D_OPT_CROP_RIGHT |
pop edi |
ret |
endp |
|
align 4 |
InitBackgroundBuffer: ;ᮧ¤ ¨¥ ä®®¢®£® ¨§®¡à ¦¥¨ï |
pushad |
mov edi,buf_fon |
mov eax,[color_fon] |
mov buf2d_color,eax |
stdcall [buf2d_clear], edi,eax |
mov esi,edi |
|
xor eax,eax |
xor ebx,ebx |
|
mov edi,buf_tr_fon0 |
mov ax,buf2d_t |
add eax,OFFS_SHADOW_Y |
mov bx,buf2d_l |
add ebx,OFFS_SHADOW_X |
stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color_shadows] ;à¨á㥬 ⥨ ¤®¬¨ª®¢ |
mov edi,buf_tr_fon1 |
mov ax,buf2d_t |
add eax,OFFS_SHADOW_Y |
mov bx,buf2d_l |
add ebx,OFFS_SHADOW_X |
stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color_shadows] ;à¨á㥬 ⥨ ªãà¨æ |
mov edi,buf_tr_fon2 |
mov ax,buf2d_t |
add eax,OFFS_SHADOW_Y |
mov bx,buf2d_l |
add ebx,OFFS_SHADOW_X |
stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color_shadows] ;à¨á㥬 ⥨ ¤¥à¥¢ì¥¢ |
|
mov edi,buf_tr_fon0 |
mov ax,buf2d_t |
stdcall [buf2d_bit_blt_alpha], esi, 0,eax, edi,[color_perilo] ;à¨á㥬 ¤®¬¨ª¨ |
mov edi,buf_tr_fon1 |
mov ax,buf2d_t |
stdcall [buf2d_bit_blt_alpha], esi, 0,eax, edi,[color_curici] ;à¨á㥬 ªãà¨æë |
mov edi,buf_tr_fon2 |
mov ax,buf2d_t |
stdcall [buf2d_bit_blt_alpha], esi, 0,eax, edi,[color_trees] ;à¨á㥬 ¤¥à¥¢ìï |
popad |
ret |
|
;à¨áã¥â ª à⨪㠢 ¡ãä¥à¥ buf ¨§ ¬ áᨢ ¡ãä¥à®¢ buf_img á ¨¤¥ªá®¬ ind |
;â. ¥. buf <- buf_img[ind] |
align 4 |
proc DrawArrayImg, buf:dword, buf_img:dword, ind:dword, color:dword |
pushad |
mov edi,dword[ind] |
imul edi,BUF_STRUCT_SIZE |
add edi,dword[buf_img] |
|
mov esi,dword[buf] |
xor eax,eax |
mov ax,buf2d_t |
xor ebx,ebx |
mov bx,buf2d_l |
stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color] |
popad |
ret |
endp |
|
align 4 |
DrawZaac: ;à¨á®¢ ¨¥ § ©æ |
push eax |
bt word[pos_wolf],bit_zaac |
jae .end_mig |
|
stdcall DrawArrayImg, buf_displ,buf_wolf,6,[color_wolf] ;à¨á㥬 ⥫® § ©æ |
mov eax,dword[pos_eggs] |
and eax,mask_chi_right+mask_chi_left |
cmp eax,0 |
je .end_mig ;¥á«¨ ¥â ¡¥£ îé¨å 樯«ïâ, â® § ïæ à㪮© ¥ ¬ è¥â |
bt word[pos_wolf],bit_mig |
jc @f |
stdcall DrawArrayImg, buf_displ,buf_wolf,7,[color_wolf] ;à¨á㥬 àãªã § ©æ ¢¢¥àåã |
jmp .end_mig |
@@: |
stdcall DrawArrayImg, buf_displ,buf_wolf,8,[color_wolf] ;à¨á㥬 àãªã § ©æ ¢¨§ã |
.end_mig: |
pop eax |
ret |
|
align 4 |
DrawWolf: ;à¨áã¥â ¢®«ª á ª®à§¨ ¬¨ |
bt word[pos_wolf],0 |
jc @f |
stdcall DrawArrayImg, buf_displ,buf_wolf,0,[color_wolf] |
bt word[pos_wolf],1 |
jc .corz_ldn |
stdcall DrawArrayImg, buf_displ,buf_wolf,1,[color_wolf] |
jmp .corz_lend |
.corz_ldn: |
stdcall DrawArrayImg, buf_displ,buf_wolf,2,[color_wolf] |
.corz_lend: |
jmp .wolf_b |
@@: |
stdcall DrawArrayImg, buf_displ,buf_wolf,3,[color_wolf] |
bt word[pos_wolf],1 |
jc .corz_rdn |
stdcall DrawArrayImg, buf_displ,buf_wolf,4,[color_wolf] |
jmp .corz_rend |
.corz_rdn: |
stdcall DrawArrayImg, buf_displ,buf_wolf,5,[color_wolf] |
.corz_rend: |
.wolf_b: |
ret |
|
align 4 |
DrawEggs: ;à¨áã¥â ï©æ |
pushad |
cld |
|
mov eax,dword[pos_eggs] |
xor ebx,ebx |
mov ecx,20 ;横« ¤«ï à¨á®¢ ¨ï ª®âïé¨åáï ï¨æ |
@@: |
bt eax,ebx |
jae .draw_egg |
stdcall DrawArrayImg, buf_displ,buf_egg,ebx,[color_egg] |
.draw_egg: |
inc ebx |
loop @b |
|
;mov eax,dword[pos_eggs] |
and eax,mask_chi_left |
cmp eax,0 |
je @f |
stdcall DrawArrayImg, buf_displ,buf_egg,20,[color_egg] ;à §¡¨â®¥ ï©æ® á«¥¢ |
@@: |
mov eax,dword[pos_eggs] |
and eax,mask_chi_right |
cmp eax,0 |
je @f |
stdcall DrawArrayImg, buf_displ,buf_egg,21,[color_egg] ;à §¡¨â®¥ ï©æ® á¯à ¢ |
@@: |
|
mov eax,dword[pos_eggs] |
xor edx,edx |
mov ebx,bit_chi_left |
mov ecx,5 ;横« ¤«ï à¨á®¢ ¨ï «¥¢ëå 樯«ïâ |
@@: |
bt eax,ebx |
jae .draw_chick_l |
stdcall DrawArrayImg, buf_displ,buf_chi,edx,[color_chick] |
.draw_chick_l: |
inc ebx |
inc edx |
loop @b |
mov ebx,bit_chi_right |
mov ecx,5 ;横« ¤«ï à¨á®¢ ¨ï ¯à ¢ëå 樯«ïâ |
@@: |
bt eax,ebx |
jae .draw_chick_r |
stdcall DrawArrayImg, buf_displ,buf_chi,edx,[color_chick] |
.draw_chick_r: |
inc ebx |
inc edx |
loop @b |
|
xor eax,eax |
mov al,byte[count_last] |
mov ecx,eax ;横« ¤«ï à¨á®¢ ¨ï èâà äëå ®çª®¢ |
shr ecx,1 |
mov edx,10 ;¨¤¥ªá ç « èâà äëå ¨ª®®ª ¢ ¡ãä¥à¥ buf_chi |
cmp ecx,0 |
je .no_unit_last |
@@: |
stdcall DrawArrayImg, buf_displ,buf_chi,edx,[color_chick] |
inc edx |
loop @b |
.no_unit_last: |
|
bt ax,0 ;¯à®¢¥à塞 ¬¨£ î饥 ¥ ç¥â®¥ ®çª® |
jae @f |
bt word[pos_wolf],bit_mig |
jc @f |
stdcall DrawArrayImg, buf_displ,buf_chi,edx,[color_chick] ;¬¨£ î饥 èâà 䮥 ®çª® |
@@: |
|
popad |
ret |
|
align 4 |
CountEggsInc: ;㢥«¨ç¨¢ ¥¬ áç¥â稪 ï¨æ 1 |
push eax edi |
xor eax,eax |
inc word[eggs_count] ;㢥«¨ç¨¢ ¥¬ áç¥â稪 ï¨æ |
cmp word[eggs_count],200 ;¡®ãáë¥ ®çª¨ |
je @f |
cmp word[eggs_count],500 ;¡®ãáë¥ ®çª¨ |
je @f |
jmp .no_bonus |
@@: |
mov byte[count_last],0 |
.no_bonus: |
|
mov ax,word[eggs_count] |
mov edi,some_text |
call convert_to_str ;®¡®¢«ï¥¬ ⥪á⮢ãî áâபã |
and ax,0xf ;ç¥à¥§ ª ¦¤ë¥ 16 ï¨æ 㬥ìè ¥¬ ¢à¥¬ï |
cmp ax,0 |
jne @f |
cmp dword[game_spd],15 ;¬¨¨¬ «ì ï § ¤¥à¦ª |
jle @f |
dec dword[game_spd] |
@@: |
pop edi eax |
ret |
|
;input: |
; eax - ¬ ᪠, 㪠§ë¢ îé ï á ª ª®© áâà®ë 㯠«® ï©æ® |
align 4 |
CountLastInc: ; ç¨á«¥¨¥ èâà äëå ®çª®¢ |
inc byte[count_last] ;¯®«®¢¨ ® èâà 䮣® ®çª |
bt word[pos_wolf],bit_zaac |
jc @f |
inc byte[count_last] ;¥á«¨ ¥â § ©æ â® ¥é¥ 1- ¯®«®¢¨ èâà 䮣® ®çª |
@@: |
cmp byte[count_last],6 |
jle @f |
mov byte[count_last],6 ;áâ ¢¨¬ ®£à ¨ç¥¨ ç¨á«® èâà äëå ®çª®¢ |
@@: |
or dword[pos_eggs],eax ;ᮧ¤ ¥¬ ¡¥£ã饣® 樯«¥ª |
ret |
|
align 4 |
MoveEggs: |
pushad |
xor byte[pos_wolf],val_mig ;¡¨â ¤«ï ¬¨£ ¨ï |
|
cmp byte[count_last],6 ;¬ ªá¨¬ «ì®¥ ç¨á«® èâà äëå ®çª®¢ |
je .end_fun |
|
rol dword[pos_eggs],1 |
mov ecx,dword[pos_eggs] |
and ecx,mask_fail_eggs |
cmp ecx,0 |
je .no_fail ;¥â ¯ ¤ îé¨å ï¨æ |
; ç¨á«¥¨¥ ï¨æ ¯®¯ ¢è¨å ¢ ª®à§¨ã |
;¨«¨ ç¨á«¥¨¥ èâà äëå ®çª®¢ |
xor ebx,ebx |
mov bl,byte[pos_wolf] ;¡¥à¥¬ ¯ à ¬¥âàë (¯®§¨æ¨î) ¢®«ª |
and bl,3 ; ¢á直© á«ãç © |
|
bt ecx,5 ;¯à®¢¥à塞 ¢¥à奥 «¥¢®¥ ¯¥à¨«® |
jae .perilo_lu |
cmp bx,0 ;¯à®¢¥à塞 «¨ç¨¥ ª®à§¨ë |
jne @f |
call CountEggsInc |
jmp .perilo_lu |
@@: |
mov eax,mask_chi_cr_l |
call CountLastInc |
.perilo_lu: |
bt ecx,10 ;¯à®¢¥à塞 ¨¦¥¥ «¥¢®¥ ¯¥à¨«® |
jae .perilo_ld |
cmp bx,2 ;¯à®¢¥à塞 «¨ç¨¥ ª®à§¨ë |
jne @f |
call CountEggsInc |
jmp .perilo_ld |
@@: |
mov eax,mask_chi_cr_l |
call CountLastInc |
.perilo_ld: |
bt ecx,15 ;¯à®¢¥à塞 ¢¥à奥 ¯à ¢®¥ ¯¥à¨«® |
jae .perilo_ru |
cmp bx,1 ;¯à®¢¥à塞 «¨ç¨¥ ª®à§¨ë |
jne @f |
call CountEggsInc |
jmp .perilo_ru |
@@: |
mov eax,mask_chi_cr_r |
call CountLastInc |
.perilo_ru: |
bt ecx,20 ;¯à®¢¥à塞 ¨¦¥¥ ¯à ¢®¥ ¯¥à¨«® |
jae .perilo_rd |
cmp bx,3 ;¯à®¢¥à塞 «¨ç¨¥ ª®à§¨ë |
jne @f |
call CountEggsInc |
jmp .perilo_rd |
@@: |
mov eax,mask_chi_cr_r |
call CountLastInc |
.perilo_rd: |
.no_fail: |
|
and dword[pos_eggs],mask_clear_all ;®ç¨á⪠㯠¢è¨å ï¨æ ¨ ¤®¡¥¦ ¢è¨å ªã३ |
|
call rand_next |
bt dword[rand_x],6 |
jc @f |
bt dword[rand_x],8 |
jc @f |
bt dword[rand_x],9 |
jc @f |
xor byte[pos_wolf],val_zaac ;¢ëá®¢ë¢ ¥¬/§ á®¢ë¢ ¥¬ § ©æ |
@@: |
|
;ᮧ¤ ¨¥ ®¢ëå ï¨æ |
bt dword[rand_x],4 ;¯à®¢¥à塞 ¡ã¤¥¬ «¨ ᮧ¤ ¢ âì ®¢®¥ ï©æ® |
jc .end_creat |
bt dword[rand_x],5 ;¯à®¢¥à塞 á ª ª®© áâ®à®ë ¡ã¤¥¬ ᮧ¤ ¢ âì ®¢®¥ ï©æ® |
jc .creat_r |
bt dword[rand_x],7 |
jc @f |
or dword[pos_eggs],mask_lot_lu |
jmp .end_creat |
@@: |
or dword[pos_eggs],mask_lot_ld |
jmp .end_creat |
.creat_r: |
bt dword[rand_x],7 |
jc @f |
or dword[pos_eggs],mask_lot_ru |
jmp .end_creat |
@@: |
or dword[pos_eggs],mask_lot_rd |
;jmp .end_creat |
.end_creat: |
|
.end_fun: |
popad |
ret |
|
align 4 |
proc InitGame, b:dword ;¯¥à¢® ç «ìë¥ áâனª¨ ¨£àë |
mov word[eggs_count],0 ;ª®««¨ç¥á⢮ ¯®©¬ ëå ï¨æ |
mov byte[some_text],'0' |
mov byte[some_text+1],0 ;⥪áâ á ç¨á«®¬ ¯®©¬ ëå ï¨æ |
mov byte[count_last],0 |
mov dword[pos_eggs],0 |
|
cmp dword[b],0 |
jne @f |
mov byte[game_text+5],'' |
mov dword[game_spd],65 ;§ ¤¥à¦ª ¨£àë |
jmp .end_init |
@@: |
mov byte[game_text+5],'' |
mov dword[game_spd],35 ;§ ¤¥à¦ª ¨£àë |
.end_init: |
|
push eax ebx |
mcall 26,9 |
mov dword[rand_x],eax ;§ ¯®«ï¥¬ 1-¥ á«ãç ©®¥ ç¨á«® |
pop ebx eax |
|
ret |
endp |
|
align 4 |
start: |
load_libraries l_libs_start,load_lib_end |
|
;¯à®¢¥àª ᪮«ìª® ã¤ ç® § £ã§¨« áì è «¨¡ |
mov ebp,lib0 |
cmp dword [ebp+ll_struc_size-4],0 |
jz @f |
mcall -1 ;exit not correct |
@@: |
mov ebp,lib1 |
cmp dword [ebp+ll_struc_size-4],0 |
jz @f |
mcall -1 ;exit not correct |
@@: |
|
mcall 40,0x27 |
mcall 48,3,sc,sizeof.system_colors ;¯®«ãç ¥¬ á¨áâ¥¬ë¥ æ¢¥â |
|
load_image_file fn_icon0,image_data_gray,3*GAME_POLE_BYTES |
mov eax,[image_data_gray] |
stdcall CreateTrapharetBuffer,buf_tr_fon0,eax |
add eax,GAME_POLE_BYTES |
stdcall CreateTrapharetBuffer,buf_tr_fon1,eax |
add eax,GAME_POLE_BYTES |
stdcall CreateTrapharetBuffer,buf_tr_fon2,eax |
stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì |
|
stdcall [buf2d_create], buf_fon ;ᮧ¤ ¥¬ ¡ãä¥à á ä®®¢ë¬¨ ¤¥ª®à æ¨ï¬¨ |
|
load_image_file fn_icon1,image_data_gray, 9*GAME_POLE_BYTES |
mov eax,[image_data_gray] |
mov edi,buf_wolf |
mov ecx,9 |
cld |
@@: ;áç¨âë¢ ¥¬ 9 ¡ãä¥à®¢ á ¢®«ª®¬ ¨ § ©æ¥¬ |
mov buf2d_size_lt,0 |
mov buf2d_w,GAME_POLE_W |
mov buf2d_h,GAME_POLE_H |
mov buf2d_color,0xffffff |
mov buf2d_bits,24 |
stdcall CreateTrapharetBuffer,edi,eax |
add eax,GAME_POLE_BYTES |
add edi,BUF_STRUCT_SIZE |
loop @b |
stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì |
|
load_image_file fn_icon2,image_data_gray, 22*GAME_POLE_BYTES |
mov eax,[image_data_gray] |
mov edi,buf_egg |
mov ecx,22 |
cld |
@@: ;áç¨âë¢ ¥¬ 22 ¡ãä¥à®¢ á ï©æ ¬¨ |
mov buf2d_size_lt,0 |
mov buf2d_w,GAME_POLE_W |
mov buf2d_h,GAME_POLE_H |
mov buf2d_color,0xffffff |
mov buf2d_bits,24 |
stdcall CreateTrapharetBuffer,edi,eax |
add eax,GAME_POLE_BYTES |
add edi,BUF_STRUCT_SIZE |
loop @b |
stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì |
|
load_image_file fn_icon3,image_data_gray, 13*GAME_POLE_BYTES |
mov eax,[image_data_gray] |
mov edi,buf_chi |
mov ecx,13 |
cld |
@@: ;áç¨âë¢ ¥¬ 13 ¡ãä¥à®¢ á 樯«ïâ ¬¨ |
mov buf2d_size_lt,0 |
mov buf2d_w,GAME_POLE_W |
mov buf2d_h,GAME_POLE_H |
mov buf2d_color,0xffffff |
mov buf2d_bits,24 |
stdcall CreateTrapharetBuffer,edi,eax |
add eax,GAME_POLE_BYTES |
add edi,BUF_STRUCT_SIZE |
loop @b |
stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì |
|
load_image_file fn_font, image_data_gray,IMAGE_FONT_SIZE |
stdcall [buf2d_create_f_img], buf_font,[image_data_gray] ;ᮧ¤ ¥¬ ¡ãä¥à |
stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì |
|
stdcall [buf2d_conv_24_to_8], buf_font,1 ;¤¥« ¥¬ ¡ãä¥à ¯à®§à ç®á⨠8 ¡¨â |
stdcall [buf2d_convert_text_matrix], buf_font |
|
;¯à®¢¥àª § ¨¬ ¥¬®£® ¡ãä¥à®¬ ¬¥áâ |
;mov edi,buf_wolf |
;add edi,BUF_STRUCT_SIZE ;¯¥à¥å®¤¨¬ ¡ãä¥à ª®à§¨ë |
;stdcall [buf2d_clear],edi,0x808080 ;§ «¨¢ ¥¬ ¥£® á¥àë¬ æ¢¥â®¬ |
|
stdcall [buf2d_create], buf_displ ;ᮧ¤ ¥¬ ¡ãä¥à ¤«ï ¢ë¢®¤ íªà |
call InitBackgroundBuffer ;§ ¯®«ï¥¬ ¡ãä¥à á ä®®¢ë¬¨ ¤¥ª®à æ¨ï¬¨ |
stdcall InitGame,0 |
mcall 26,9 |
mov [last_time],ebx |
|
|
|
align 4 |
red_win: |
call draw_window |
|
align 4 |
still: ;£« ¢ë© 横« |
mcall 26,9 |
mov ebx,[last_time] |
add ebx,dword[game_spd] ;delay |
sub ebx,eax |
cmp ebx,dword[game_spd] ;delay |
ja it_is_time_now |
test ebx,ebx |
jz it_is_time_now |
mcall 23 |
|
cmp eax,0 |
je it_is_time_now |
|
;mcall 10 |
|
cmp al,0x1 ;¨§¬¥¨«®áì ¯®«®¦¥¨¥ ®ª |
jz red_win |
cmp al,0x2 |
jz key |
cmp al,0x3 |
jz button |
|
jmp still |
|
align 4 |
it_is_time_now: |
mcall 26,9 |
mov [last_time],eax |
|
;...§¤¥áì ¨¤ãâ ¤¥©á⢨ï, ¢ë§ë¢ ¥¬ë¥ ª ¦¤ë¥ delay á®âëå ¤®«¥© ᥪã¤... |
call MoveEggs |
call draw_display |
jmp still |
|
align 4 |
key: |
push eax ebx |
mcall 2 |
|
cmp ah,176 ;Left |
jne @f |
and byte[pos_wolf],0xfe |
@@: |
cmp ah,179 ;Right |
jne @f |
or byte[pos_wolf],1 |
@@: |
cmp ah,178 ;Up |
jne @f |
and byte[pos_wolf],0xff-2 |
@@: |
cmp ah,177 ;Down |
jne @f |
or byte[pos_wolf],2 |
@@: |
|
cmp ah,97 ;a |
jne @f |
and byte[pos_wolf],0xff-3 ;00 |
@@: |
cmp ah,122 ;z |
jne @f |
and byte[pos_wolf],0xff-1 |
or byte[pos_wolf],2 ;10 |
@@: |
cmp ah,39 ;' |
jne @f |
and byte[pos_wolf],0xff-2 |
or byte[pos_wolf],1 ;01 |
@@: |
cmp ah,47 ;/ |
jne @f |
or byte[pos_wolf],3 ;11 |
@@: |
|
pop ebx eax |
jmp still |
|
|
align 4 |
draw_window: |
pushad |
mcall 12,1 |
|
xor eax,eax |
mov ebx,20*65536+370 |
mov ecx,20*65536+280 |
mov edx,[sc.work] |
;or edx,0x33000000 |
or edx,0x73000000 |
mov edi,hed |
mcall ;ᮧ¤ ¨¥ ®ª |
|
mcall 9,procinfo,-1 |
mov edi,buf_displ |
mov eax,dword[procinfo.client_box.width] |
cmp eax,GAME_POLE_W |
jle @f |
sub eax,GAME_POLE_W |
shr eax,1 |
mov buf2d_l,ax ;¢ë¯à ¢¨¢ ¥¬ ¡ãä¥à ¯® æ¥âàã ®ª |
@@: |
|
call draw_display |
|
mov eax,13 ;à¨á®¢ ¨¥ ¯àאַ㣮«ì¨ª |
mov edx,[sc.work] |
xor esi,esi |
mov si,buf2d_l |
add esi,GAME_POLE_W |
mov ebx,dword[procinfo.client_box.width] |
inc ebx |
cmp esi,ebx |
jge @f |
sub ebx,esi |
rol ebx,16 |
mov bx,si |
rol ebx,16 |
mov ecx,dword[procinfo.client_box.height] |
inc ecx |
int 0x40 ;à¨á®¢ ¨¥ ¯à ¢®£® ¡®ª®¢®£® ¯®«ï |
jmp .draw_s |
@@: |
mov esi,dword[procinfo.client_box.width] ;ª®£¤ ¯® è¨à¨¥ ¥ ¢« §¨â |
inc esi |
.draw_s: |
|
mov ebx,esi |
mov ecx,dword[procinfo.client_box.height] |
inc ecx |
mov esi,GAME_POLE_H |
cmp esi,ebx |
jge @f |
sub ecx,esi |
rol ecx,16 |
mov cx,si |
rol ecx,16 |
int 0x40 ;à¨á®¢ ¨¥ ¨¦¥£® ¯®«ï |
@@: |
|
xor ebx,ebx |
mov bx,buf2d_l |
mov ecx,GAME_POLE_H |
int 0x40 ;à¨á®¢ ¨¥ «¥¢®£® ¡®ª®¢®£® ¯®«ï |
|
mcall 12,2 |
popad |
ret |
|
align 4 |
draw_display: |
|
stdcall mem_copy, dword[buf_fon],dword[buf_displ],GAME_POLE_BYTES ;ª®¯¨à®¢ ¨¥ ¨§®¡à ¦¥¨ï ¨§ ä®®¢®£® ¡ãä¥à |
call DrawZaac |
call DrawWolf ;à¨á㥬 ¢®«ª |
call DrawEggs |
|
stdcall [buf2d_draw_text], buf_displ, buf_font,game_text,GAME_POLE_W/2,OFFS_SHADOW_X,[color_curici] ;à¨á㥬 áâபã á ⥪á⮬ |
|
stdcall [buf2d_draw], buf_displ |
|
;mov eax,4 ;à¨á®¢ ¨¥ ⥪áâ |
;mov ebx,(GAME_POLE_W/2)*65536+OFFS_SHADOW_X |
;mov ecx,[color_curici] |
;or ecx,0x80000000 |
;mov edx,some_text |
;mcall |
|
ret |
|
align 4 |
button: |
mcall 17 ;¯®«ãç¨âì ª®¤ ¦ ⮩ ª®¯ª¨ |
cmp ah,1 |
jne still |
.exit: |
stdcall [buf2d_delete],buf_fon ;㤠«ï¥¬ ¡ãä¥à |
stdcall [buf2d_delete],buf_displ ;㤠«ï¥¬ ¡ãä¥à |
|
stdcall [buf2d_delete],buf_tr_fon0 |
stdcall [buf2d_delete],buf_tr_fon1 |
stdcall [buf2d_delete],buf_tr_fon2 |
|
stdcall [buf2d_delete],buf_font |
|
cld |
mov ecx,9 |
mov edi,buf_wolf |
@@: ;㤠«ï¥¬ 9 ¡ãä¥à®¢ á ¢®«ª®¬ ¨ § ©æ¥¬ |
stdcall [buf2d_delete],edi |
add edi,BUF_STRUCT_SIZE |
loop @b |
mov ecx,13 |
mov edi,buf_chi |
@@: ;㤠«ï¥¬ 13 ¡ãä¥à®¢ |
stdcall [buf2d_delete],edi |
add edi,BUF_STRUCT_SIZE |
loop @b |
mov ecx,22 |
mov edi,buf_egg |
@@: ;㤠«ï¥¬ 22 ¡ãä¥à |
stdcall [buf2d_delete],edi |
add edi,BUF_STRUCT_SIZE |
loop @b |
|
mcall -1 ;¢ë室 ¨§ ¯à®£à ¬¬ë |
|
head_f_i: |
head_f_l db '¨á⥬ ï ®è¨¡ª ',0 |
|
system_dir0 db '/sys/lib/' |
name_buf2d db 'buf2d.obj',0 |
err_message_found_lib0 db '¥ 㤠«®áì ©â¨ ¡¨¡«¨®â¥ªã buf2d.obj',0 |
err_message_import0 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ buf2d.obj',0 |
|
system_dir1 db '/sys/lib/' |
name_libimg db 'libimg.obj',0 |
err_message_found_lib1 db '¥ 㤠«®áì ©â¨ ¡¨¡«¨®â¥ªã libimg.obj',0 |
err_message_import1 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ libimg.obj',0 |
|
;library structures |
l_libs_start: |
lib0 l_libs name_buf2d, sys_path, file_name, system_dir0, err_message_found_lib0, head_f_l, import_buf2d_lib, err_message_import0, head_f_i |
lib1 l_libs name_libimg, sys_path, file_name, system_dir1, err_message_found_lib1, head_f_l, import_libimg, err_message_import1, head_f_i |
load_lib_end: |
|
align 4 |
proc mem_copy, source:dword, destination:dword, len:dword |
push ecx esi edi |
cld |
mov esi, dword[source] |
mov edi, dword[destination] |
mov ecx, dword[len] |
rep movsb |
pop edi esi ecx |
ret |
endp |
|
align 4 |
convert_to_str: |
pushad |
;mov eax,dword[value] |
;mov edi,dword[text] |
mov dword[edi+1],0 |
cld |
call .str |
popad |
ret |
|
|
align 4 |
.str: |
mov ecx,0x0a ;§ ¤ ¥âáï á¨á⥬ áç¨á«¥¨ï ¨§¬¥ïîâáï ॣ¨áâàë ebx,eax,ecx,edx ¢å®¤ë¥ ¯ à ¬¥âàë eax - ç¨á«® |
;¯à¥à¥¢®¤ ç¨á« ¢ ASCII áâப㠢§®¤ë¥ ¤ ë¥ ecx=á¨á⥬ áç¨á«¥ï edi ¤à¥á ªã¤ § ¯¨áë¢ âì, ¡ã¤¥¬ áâபã, ¯à¨ç¥¬ ª®¥æ ¯¥à¥¬¥®© |
cmp eax,ecx ;áà ¢¨âì ¥á«¨ ¢ eax ¬¥ìè¥ ç¥¬ ¢ ecx â® ¯¥à¥©â¨ @@-1 â.¥. pop eax |
jb @f |
xor edx,edx ;®ç¨áâ¨âì edx |
div ecx ;à §¤¥«¨âì - ®áâ ⮪ ¢ edx |
push edx ;¯®«®¦¨âì ¢ á⥪ |
;dec edi ;ᬥ饨¥ ¥®¡å®¤¨¬®¥ ¤«ï § ¯¨á¨ á ª®æ áâப¨ |
call .str;¯¥à¥©â¨ á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥â ¯®ª ¢ eax ¥ á⠥⠬¥ìè¥ ç¥¬ ¢ ecx |
pop eax |
@@: ;cmp al,10 ;¯à®¢¥à¨âì ¥ ¬¥ìè¥ «¨ § 票¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥ï 10 ¤ ï ª®¬ ¤ - «¨è ï)) |
;sbb al,$69 ;- ç¥áâ® ¤ ï ¨áâàãªæ¨ï ¬¥ï § áâ ¢«ï¥â § ¤ã¬ âìáï â.¥. ï ¥ § î ª ª íâ® à ¡®â ¥â |
;das ;¯®á«¥ ¤ ®© ª®¬ ¤ë ª ª ¡ë ¯à®¨á室¨â 㬥ì襨¥ al 66h (¢ ª¨£¥ ¯¨á ® ¤à㣮¥) |
or al,0x30 ;¤ ï ª®¬ ¤ ª®à®ç¥ 祬 ¤¢¥ ¢ëè¥ |
stosb ;§ ¯¨á âì í«¥¬¥â ¨§ ॣ¨áâà al ¢ ï祪㠯 ¬ï⨠es:edi |
ret ;¢¥àãâìáï ç¥ì ¨â¥à¥áë© å®¤ â.ª. ¯®ª ¢ á⥪¥ åà ¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï |
|
|
last_time dd ? |
image_data dd 0 ;¯ ¬ïâì ¤«ï ¯à¥®¡à §®¢ ¨ï ª à⨪¨ äãªæ¨ï¬¨ libimg |
image_data_gray dd 0 ;¯ ¬ïâì á ¢à¥¬¥ë¬¨ á¥à묨 ¨§®¡à ¦¥¨ï¬¨ ¢ ä®à¬ ⥠24-bit, ¨§ ª®â®àëå ¡ã¤ãâ ᮧ¤ ¢ âìáï âà ä à¥âë |
|
run_file_70 FileInfoBlock |
hed db 'Nu pogodi 29.07.10',0 ;¯®¤¯¨áì ®ª |
sc system_colors ;á¨áâ¥¬ë¥ æ¢¥â |
|
align 4 |
buf_fon: ;ä®®¢ë© ¡ãä¥à |
dd 0 ;㪠§ â¥«ì ¡ãä¥à ¨§®¡à ¦¥¨ï |
dw 0 ;+4 left |
dw 0 ;+6 top |
dd GAME_POLE_W ;+8 w |
dd GAME_POLE_H ;+12 h |
dd 0xffffff ;+16 color |
db 24 ;+20 bit in pixel |
|
align 4 |
buf_font: ;¡ãä¥à á® èà¨ä⮬ |
dd 0 ;㪠§ â¥«ì ¡ãä¥à ¨§®¡à ¦¥¨ï |
dw 25 ;+4 left |
dw 25 ;+6 top |
dd 128 ;+8 w |
dd 144 ;+12 h |
dd 0 ;+16 color |
db 24 ;+20 bit in pixel |
|
align 4 |
buf_tr_fon0: ;¡ãä¥à á ¤®¬¨ª ¬¨ ¨ ३ª ¬¨ |
dd 0 ;㪠§ â¥«ì ¡ãä¥à ¨§®¡à ¦¥¨ï |
dw 0 ;+4 left |
dw 0 ;+6 top |
dd GAME_POLE_W ;+8 w |
dd GAME_POLE_H ;+12 h |
dd 0xffffff ;+16 color |
db 24 ;+20 bit in pixel |
align 4 |
buf_tr_fon1: ;¡ãä¥à á ªãà¨æ ¬¨ |
dd 0 ;㪠§ â¥«ì ¡ãä¥à ¨§®¡à ¦¥¨ï |
dw 0 ;+4 left |
dw 0 ;+6 top |
dd GAME_POLE_W ;+8 w |
dd GAME_POLE_H ;+12 h |
dd 0xffffff ;+16 color |
db 24 ;+20 bit in pixel |
align 4 |
buf_tr_fon2: ;¡ãä¥à á à á⥨ﬨ |
dd 0 ;㪠§ â¥«ì ¡ãä¥à ¨§®¡à ¦¥¨ï |
dw 0 ;+4 left |
dw 0 ;+6 top |
dd GAME_POLE_W ;+8 w |
dd GAME_POLE_H ;+12 h |
dd 0xffffff ;+16 color |
db 24 ;+20 bit in pixel |
|
align 4 |
buf_displ: |
dd 0 ;㪠§ â¥«ì ¡ãä¥à ¨§®¡à ¦¥¨ï |
dw 25,0 |
dd GAME_POLE_W ;+8 w |
dd GAME_POLE_H ;+12 h |
dd 0 ;+16 color |
db 24 ;+20 bit in pixel |
|
align 4 |
buf_wolf: |
rb 9*BUF_STRUCT_SIZE |
|
align 4 |
buf_egg: |
rb 22*BUF_STRUCT_SIZE |
|
align 4 |
buf_chi: |
rb 13*BUF_STRUCT_SIZE |
|
align 4 |
import_libimg: |
dd alib_init1 |
img_is_img dd aimg_is_img |
img_info dd aimg_info |
img_from_file dd aimg_from_file |
img_to_file dd aimg_to_file |
img_from_rgb dd aimg_from_rgb |
img_to_rgb dd aimg_to_rgb |
img_to_rgb2 dd aimg_to_rgb2 |
img_decode dd aimg_decode |
img_encode dd aimg_encode |
img_create dd aimg_create |
img_destroy dd aimg_destroy |
img_destroy_layer dd aimg_destroy_layer |
img_count dd aimg_count |
img_lock_bits dd aimg_lock_bits |
img_unlock_bits dd aimg_unlock_bits |
img_flip dd aimg_flip |
img_flip_layer dd aimg_flip_layer |
img_rotate dd aimg_rotate |
img_rotate_layer dd aimg_rotate_layer |
img_draw dd aimg_draw |
|
dd 0,0 |
alib_init1 db 'lib_init',0 |
aimg_is_img db 'img_is_img',0 ;®¯à¥¤¥«ï¥â ¯® ¤ ë¬, ¬®¦¥â «¨ ¡¨¡«¨®â¥ª ᤥ« âì ¨§ ¨å ¨§®¡à ¦¥¨¥ |
aimg_info db 'img_info',0 |
aimg_from_file db 'img_from_file',0 |
aimg_to_file db 'img_to_file',0 |
aimg_from_rgb db 'img_from_rgb',0 |
aimg_to_rgb db 'img_to_rgb',0 ;¯à¥®¡à §®¢ ¨¥ ¨§®¡à ¦¥¨ï ¢ ¤ ë¥ RGB |
aimg_to_rgb2 db 'img_to_rgb2',0 |
aimg_decode db 'img_decode',0 ; ¢â®¬ â¨ç¥áª¨ ®¯à¥¤¥«ï¥â ä®à¬ â £à ä¨ç¥áª¨å ¤ ëå |
aimg_encode db 'img_encode',0 |
aimg_create db 'img_create',0 |
aimg_destroy db 'img_destroy',0 |
aimg_destroy_layer db 'img_destroy_layer',0 |
aimg_count db 'img_count',0 |
aimg_lock_bits db 'img_lock_bits',0 |
aimg_unlock_bits db 'img_unlock_bits',0 |
aimg_flip db 'img_flip',0 |
aimg_flip_layer db 'img_flip_layer',0 |
aimg_rotate db 'img_rotate',0 |
aimg_rotate_layer db 'img_rotate_layer',0 |
aimg_draw db 'img_draw',0 |
|
align 4 |
import_buf2d_lib: |
dd sz_lib_init |
buf2d_create dd sz_buf2d_create |
buf2d_create_f_img dd sz_buf2d_create_f_img |
buf2d_clear dd sz_buf2d_clear |
buf2d_draw dd sz_buf2d_draw |
buf2d_delete dd sz_buf2d_delete |
buf2d_line dd sz_buf2d_line |
buf2d_circle dd sz_buf2d_circle |
buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2 |
buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2 |
buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8 |
buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32 |
buf2d_bit_blt dd sz_buf2d_bit_blt |
buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp |
buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha |
buf2d_cruve_bezier dd sz_buf2d_cruve_bezier |
buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix |
buf2d_draw_text dd sz_buf2d_draw_text |
buf2d_crop_color dd sz_buf2d_crop_color |
buf2d_offset_h dd sz_buf2d_offset_h |
dd 0,0 |
sz_lib_init db 'lib_init',0 |
sz_buf2d_create db 'buf2d_create',0 |
sz_buf2d_create_f_img db 'buf2d_create_f_img',0 |
sz_buf2d_clear db 'buf2d_clear',0 |
sz_buf2d_draw db 'buf2d_draw',0 |
sz_buf2d_delete db 'buf2d_delete',0 |
sz_buf2d_line db 'buf2d_line',0 |
sz_buf2d_circle db 'buf2d_circle',0 ;à¨á®¢ ¨¥ ®ªà㦮á⨠|
sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0 |
sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0 |
sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0 |
sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0 |
sz_buf2d_bit_blt db 'buf2d_bit_blt',0 |
sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0 |
sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0 |
sz_buf2d_cruve_bezier db 'buf2d_cruve_bezier',0 |
sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0 |
sz_buf2d_draw_text db 'buf2d_draw_text',0 |
sz_buf2d_crop_color db 'buf2d_crop_color',0 |
sz_buf2d_offset_h db 'buf2d_offset_h',0 |
|
i_end: |
rb 1024 |
align 16 |
procinfo process_information |
stacktop: |
sys_path rb 4096 |
file_name: |
rb 4096 |
plugin_path: |
rb 4096 |
openfile_path: |
rb 4096 |
filename_area: |
rb 256 |
mem: |