50,27 → 50,24 |
displ_w dd ? ;è¨à¨ ¯®«ï |
displ_h dd ? ;¢ëá®â ¯®«ï |
displ_bytes dd ? ;à §¬¥à 1-£® ä ©« á ¨§®¡à ¦¥¨¥¬ |
;displ_bytes equ 315*210*3 ;à §¬¥à 1-£® ä ©« á ¨§®¡à ¦¥¨¥¬ |
offs_shadow_x dd ? ;ᤢ¨£ ⥥© ¯® ®á¨ 'x' |
offs_shadow_y dd ? ;ᤢ¨£ ⥥© ¯® ®á¨ 'y' |
|
OFFS_SHADOW_X equ 2 ;ᤢ¨£ ⥥© ¯® ®á¨ 'x' |
OFFS_SHADOW_Y equ 2 ;ᤢ¨£ ⥥© ¯® ®á¨ 'y' |
IMAGE_FONT_SIZE equ 128*144*3 |
|
use_but equ 1 |
|
if use_but eq 1 |
BUT1_T equ 10 ;®âáâ㯠ᢥàåã |
BUT1_L equ 15 ;®âáâ㯠᫥¢ |
BUT1_W equ 50 ;è¨à¨ |
BUT1_H equ 20 ;¢ëá®â |
BUT1_NEXT_TOP equ (BUT1_T+BUT1_H)*65536 |
end if |
|
|
FILE_NAME_MAX equ 20 ;¬ ªá¨¬ «ì ï ¤«¨ ¨¬¥¨ ä ©« (¡¥§ ¯ ¯®ª, ®â®á¨â¥«ì® ⥪ã饩) |
;§ ç¥¨ï ¨¬¥ ¯® 㬮«ç ¨î |
ini_def_decorat_file db 'curici.png',0 |
ini_def_unit_file db 'wolf.png',0 |
;¨¬¥ ä ©«®¢ |
fn_icon0 db 'curici.png',0 ;¨¬ï ä ©« á ¤¥ª®à æ¨ï¬¨ |
fn_icon0 rb FILE_NAME_MAX ;¨¬ï ä ©« á ¤¥ª®à æ¨ï¬¨ |
fn_icon1 rb FILE_NAME_MAX ;¨¬ï ä ©« á ¢®«ª®¬ ¨ § ©æ¥¬ |
fn_icon2 db 'eggs.png',0 ;¨¬ï ä ©« á ï©æ ¬¨ |
fn_icon3 db 'chi.png',0 ;¨¬ï ä ©« á 樯«ïâ ¬¨ |
78,22 → 75,31 |
|
ini_name db 'nu_pogod.ini',0 |
ini_sec_files db 'Files',0 |
key_file_decorat db 'file_decorat',0 |
key_file_unit db 'file_unit',0 |
key_displ_w db 'displ_w',0 |
key_displ_h db 'displ_h',0 |
key_shadow_x db 'offs_shadow_x',0 |
key_shadow_y db 'offs_shadow_y',0 |
|
ini_sec_color db 'Colors',0 |
;ª«îç¨ ¤«ï áç¨âë¢ ¨ï 梥⮢ ¨§ *.ini ä ©« |
key_color_fon db 'background',0 |
key_color_shadows db 'shadows',0 |
key_color_egg db 'objects',0 |
key_color_chick db 'lost',0 |
key_color_decorat: db 'dec' |
.ind: db '?',0 |
key_color_unit db 'unit',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 ;梥⠯¥à¨« (£à¥¡ï) |
color_fon dd ? ;梥â ä® |
color_shadows dd ? ;梥â ⥥© |
color_wolf dd ? ;梥⠢®«ª ¨ § ©æ |
color_egg dd ? ;梥â ï©æ |
color_chick dd ? ;梥â 樯«¥ª |
color_decorat dd ?,?,? ;梥⠤¥ª®à 権 (ªãà¨æë, ¯¥à¨« , ...) |
|
;梥⠨â¥à䥩á |
color_but_sm dd 0x808080 ;梥⠬ «¥ìª¨å ª®¯®ª |
color_but_te dd 0xffffff ;梥â ⥪áâ ª®¯ª å |
136,6 → 142,7 |
mask_lot_ru equ 10000000000b ;¬ ᪠¤«ï ¯à ¢®£® ¢¥à奣® «®âª |
mask_lot_rd equ 1000000000000000b ;¬ ᪠¤«ï ¯à ¢®£® ¨¦¥£® «®âª |
mask_clear_all equ 11111011111011110111101111011110b ;¬ ᪠¤«ï ®ç¨á⪨ ¯ ¤ îé¨å ï¨æ ¨ ¯à¨¡¥¦ ¢è¨å 樯«ïâ |
mask_move_eggs equ 11111111111111111111b ;¬ ᪠¤¢¨¦ãé¨åáï ï¨æ |
mask_fail_eggs equ 100001000010000100000b ;¬ ᪠¯ ¤ îé¨å ï¨æ |
mask_chi_left equ 11111000000000000000000000b ;¬ ᪠«¥¢ëå 樯«ïâ |
mask_chi_right equ 11111000000000000000000000000000b ;¬ ᪠¯à ¢ëå 樯«ïâ |
149,7 → 156,7 |
txt_game_a db '£à ',0 |
txt_game_b db '£à ',0 |
|
zaac_status db 0 |
zaac_status db 0 ;ç¨á«® ⠪⮢, ª®â®à®¥ § ïæ ¥ ¤®«¦¥ ¬¥ïâì ᢮¥ ¯®«®¦¥¨¥ |
pos_wolf db 0 ;¯®§¨æ¨ï ¢®«ª 0-© ¡¨â á«¥¢ /á¯à ¢ , 1-© ¡¨â ᢥàåã/¢¨§ |
;rb 1 |
pos_eggs dd 0 ;¯®§¨æ¨¨ à ᯮ«®¦¥¨ï ï¨æ ¨ 樯«ïâ |
211,36 → 218,35 |
mov esi,edi |
|
xor eax,eax |
cld |
cmp dword[offs_shadow_x],0 |
jne @f |
cmp dword[offs_shadow_y],0 |
jne @f |
jmp .end_shadows |
@@: |
mov edi,buf_decor |
xor ebx,ebx |
|
mov edi,buf_decor |
mov ecx,3 |
@@: |
mov ax,buf2d_t |
add eax,OFFS_SHADOW_Y |
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] ;à¨á㥬 ⥨ ¤®¬¨ª®¢ |
add ebx,[offs_shadow_x] |
stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color_shadows] ;à¨á㥬 ⥨ ¤¥ª®à 権 |
add edi,BUF_STRUCT_SIZE |
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] ;à¨á㥬 ⥨ ªãà¨æ |
add edi,BUF_STRUCT_SIZE |
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] ;à¨á㥬 ⥨ ¤¥à¥¢ì¥¢ |
loop @b |
.end_shadows: |
|
mov edi,buf_decor |
mov ebx,color_decorat |
mov ecx,3 |
@@: |
mov ax,buf2d_t |
stdcall [buf2d_bit_blt_alpha], esi, 0,eax, edi,[color_perilo] ;à¨á㥬 ¤®¬¨ª¨ |
stdcall [buf2d_bit_blt_alpha], esi, 0,eax, edi,[ebx] ;à¨á㥬 ¤¥ª®à 樨 |
add edi,BUF_STRUCT_SIZE |
mov ax,buf2d_t |
stdcall [buf2d_bit_blt_alpha], esi, 0,eax, edi,[color_curici] ;à¨á㥬 ªãà¨æë |
add edi,BUF_STRUCT_SIZE |
mov ax,buf2d_t |
stdcall [buf2d_bit_blt_alpha], esi, 0,eax, edi,[color_trees] ;à¨á㥬 ¤¥à¥¢ìï |
add ebx,4 |
loop @b |
popad |
ret |
|
510,6 → 516,14 |
.no_zaac_move: |
|
;ᮧ¤ ¨¥ ®¢ëå ï¨æ |
cmp word[eggs_count],5 ;¯¥à¢ë¥ 5 ï¨æ ª âïâáï ¯® 1-¬ã |
jge @f |
mov ecx,dword[pos_eggs] |
and ecx,mask_move_eggs |
;cmp ecx,0 |
jnz .end_creat |
@@: |
|
bt dword[rand_x],4 ;¯à®¢¥à塞 ¡ã¤¥¬ «¨ ᮧ¤ ¢ âì ®¢®¥ ï©æ® |
jc .end_creat |
bt dword[rand_x],5 ;¯à®¢¥à塞 á ª ª®© áâ®à®ë ¡ã¤¥¬ ᮧ¤ ¢ âì ®¢®¥ ï©æ® |
610,10 → 624,34 |
mov dword[displ_w],eax |
stdcall dword[ini_get_int],file_name,ini_sec_files,key_displ_h,140 |
mov dword[displ_h],eax |
stdcall dword[ini_get_str],file_name,ini_sec_files,key_file_decorat,fn_icon0,FILE_NAME_MAX,ini_def_decorat_file |
stdcall dword[ini_get_str],file_name,ini_sec_files,key_file_unit,fn_icon1,FILE_NAME_MAX,ini_def_unit_file |
stdcall dword[ini_get_int],file_name,ini_sec_files,key_shadow_x,2 |
mov dword[offs_shadow_x],eax |
stdcall dword[ini_get_int],file_name,ini_sec_files,key_shadow_y,2 |
mov dword[offs_shadow_y],eax |
|
stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_fon,0xffffff |
mov dword[color_fon],eax |
stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_shadows,0xd0d0d0 |
mov dword[color_shadows],eax |
stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_unit,0 |
mov dword[color_wolf],eax |
stdcall dword[ini_get_str],file_name,ini_sec_files,key_file_unit,fn_icon1,FILE_NAME_MAX,ini_def_unit_file |
stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_egg,0x404080 |
mov dword[color_egg],eax |
stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_chick,0x00d0d0 |
mov dword[color_chick],eax |
|
mov ebx,color_decorat |
mov byte[key_color_decorat.ind],'0' |
mov ecx,3 |
cld |
@@: |
stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_decorat,0x000080 |
mov dword[ebx],eax |
add ebx,4 |
inc byte[key_color_decorat.ind] |
loop @b |
|
mov edx,dword[displ_w] |
imul edx,dword[displ_h] |
790,7 → 828,6 |
inc esi |
.draw_s: |
|
if use_but eq 1 |
; *** à¨á®¢ ¨¥ ª®¯®ª *** |
push esi |
mov eax,8 |
828,7 → 865,6 |
; *** ¢®ááâ ®¢«¥¨¥ ¯ à ¬¥â஢ *** |
mov eax,13 ;à¨á®¢ ¨¥ ¯àאַ㣮«ì¨ª |
mov edx,[sc.work] |
end if |
|
mov ebx,esi |
mov ecx,dword[procinfo.client_box.height] |
863,7 → 899,7 |
push eax |
mov eax,dword[displ_w] |
shr eax,1 |
stdcall [buf2d_draw_text], buf_displ, buf_font,game_text,eax,OFFS_SHADOW_X,[color_curici] ;à¨á㥬 áâபã á ⥪á⮬ |
stdcall [buf2d_draw_text], buf_displ, buf_font,game_text,eax,[offs_shadow_x],[color_wolf] ;à¨á㥬 áâபã á ⥪á⮬ |
pop eax |
stdcall [buf2d_draw], buf_displ |
ret |
871,7 → 907,7 |
align 4 |
button: |
mcall 17 ;¯®«ãç¨âì ª®¤ ¦ ⮩ ª®¯ª¨ |
if use_but eq 1 |
|
cmp ah,5 |
jne @f |
stdcall InitGame,0 |
879,7 → 915,7 |
cmp ah,6 |
jne @f |
stdcall InitGame,1 |
@@: end if |
@@: |
cmp ah,1 |
jne still |
.exit: |
990,7 → 1026,7 |
image_data_gray dd 0 ;¯ ¬ïâì á ¢à¥¬¥ë¬¨ á¥à묨 ¨§®¡à ¦¥¨ï¬¨ ¢ ä®à¬ ⥠24-bit, ¨§ ª®â®àëå ¡ã¤ãâ ᮧ¤ ¢ âìáï âà ä à¥âë |
|
run_file_70 FileInfoBlock |
hed db 'Nu pogodi 03.08.10',0 ;¯®¤¯¨áì ®ª |
hed db 'Nu pogodi 20.08.10',0 ;¯®¤¯¨áì ®ª |
sc system_colors ;á¨áâ¥¬ë¥ æ¢¥â |
|
align 4 |