2010-07-29 23:20:45 +02:00
use32
2020-12-01 10:58:10 +01:00
org 0
2010-07-29 23:20:45 +02:00
db 'MENUET01' ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> . <20> ᯮ<EFBFBD> <E1AFAE> 塞<EFBFBD> <EFA5AC> <EFBFBD> 䠩<> <E4A0A9> <20> ᥣ<EFBFBD> <E1A5A3> 8 <20> <> <EFBFBD> <EFBFBD>
2020-12-01 10:58:10 +01:00
dd 1 , start , i_end , mem , stacktop , 0 , sys_path
2010-07-29 23:20:45 +02:00
include '../../../macros.inc'
include '../../../proc32.inc'
2020-12-01 10:58:10 +01:00
include '../../../KOSfuncs.inc'
include '../../../load_lib.mac'
2010-09-08 21:06:14 +02:00
include '../../../develop/libraries/box_lib/trunk/box_lib.mac' ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⮢ box_lib
2012-11-09 11:42:30 +01:00
include '../../../dll.inc'
2010-07-29 23:20:45 +02:00
2020-12-01 10:58:10 +01:00
@ use_library mem.Alloc , mem.Free , mem.ReAlloc , dl l.Load
2010-07-29 23:20:45 +02:00
;䫠<> <E4ABA0> , <20> <> <EFBFBD> <20> 㭪樨 <20> <> १<EFBFBD> <E0A5A7> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
BUF2D_OPT_CROP_TOP equ 1 ;<3B> <> १<EFBFBD> <E0A5A7> ᢥ<> <E1A2A5> <EFBFBD>
BUF2D_OPT_CROP_LEFT equ 2 ;<3B> <> १<EFBFBD> <E0A5A7> <> <E1ABA5>
BUF2D_OPT_CROP_BOTTOM equ 4 ;<3B> <> १<EFBFBD> <E0A5A7> ᭨<> <E1ADA8>
BUF2D_OPT_CROP_RIGHT equ 8 ;<3B> <> १<EFBFBD> <E0A5A7> <20> <> ࠢ<EFBFBD>
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 ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ࠦ<EFBFBD> <E0A0A6> <EFBFBD> <EFBFBD>
buf2d_w equ dword [ edi + 8 ] ;<3B> <> ਭ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
buf2d_h equ dword [ edi + 12 ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
buf2d_l equ word [ edi + 4 ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <> <E1ABA5>
2010-07-30 19:42:39 +02:00
buf2d_t equ word [ edi + 6 ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ᢥ<> <E1A2A5> <EFBFBD>
2010-07-29 23:20:45 +02:00
buf2d_size_lt equ dword [ edi + 4 ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <> <E1ABA5> <20> <20> <> ࠢ<EFBFBD> <20> <> <EFBFBD> <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>
struc t FileInfoBlock
Function dd ?
Position dd ?
Flags dd ?
Count dd ?
Buffer dd ?
db ?
FileName dd ?
ends
2010-08-03 16:28:39 +02:00
displ_w dd ? ;<3B> <> ਭ<EFBFBD> <20> <> <EFBFBD> <EFBFBD>
displ_h dd ? ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
displ_bytes dd ? ;ࠧ<> <E0A0A7> <EFBFBD> 1-<2D> <> 䠩<> <E4A0A9> <20> <20> <> <EFBFBD> <EFBFBD> ࠦ<EFBFBD> <E0A0A6> <EFBFBD> <EFBFBD> <EFBFBD>
2010-08-20 12:31:17 +02:00
offs_shadow_x dd ? ;ᤢ<> <E1A4A2> ⥭<> <E2A5AD> <20> <> <20> <> <EFBFBD> 'x'
offs_shadow_y dd ? ;ᤢ<> <E1A4A2> ⥭<> <E2A5AD> <20> <> <20> <> <EFBFBD> 'y'
2010-08-03 16:28:39 +02:00
2010-07-29 23:20:45 +02:00
IMAGE_FONT_SIZE equ 128 * 144 * 3
2010-07-30 19:42:39 +02:00
BUT1_T equ 10 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ᢥ<> <E1A2A5> <EFBFBD>
BUT1_L equ 15 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <> <E1ABA5>
BUT1_W equ 50 ;<3B> <> ਭ<EFBFBD>
BUT1_H equ 20 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
BUT1_NEXT_TOP equ ( BUT1_T + BUT1_H ) * 65536
2010-08-20 12:31:17 +02:00
2010-09-08 21:06:14 +02:00
game_select_mode db 1 ;० <> <E0A5A6> <20> 롮<EFBFBD> <EBA1AE> <20> <> <EFBFBD> <EFBFBD>
2010-07-30 19:42:39 +02:00
2010-08-04 13:40:19 +02:00
FILE_NAME_MAX equ 20 ;<3B> <> <EFBFBD> ᨬ<EFBFBD> <E1A8AC> 쭠<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 䠩<> <E4A0A9> (<28> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> , <20> ⭮<EFBFBD> <E2ADAE> ⥫쭮 ⥪<> 饩)
;<3B> <> <EFBFBD> 祭<EFBFBD> <E7A5AD> <20> <> <EFBFBD> <EFBFBD> <20> <> 㬮<> 砭<EFBFBD> <E7A0AD>
2010-08-20 12:31:17 +02:00
ini_def_decorat_file db 'curici.png' , 0
2010-08-04 13:40:19 +02:00
ini_def_unit_file db 'wolf.png' , 0
2010-08-22 22:42:46 +02:00
ini_def_objects_file db 'eggs.png' , 0
2010-09-08 21:06:14 +02:00
ini_def_lost_file db 'chi.png' , 0
2010-08-04 13:40:19 +02:00
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> 䠩<> <E4A0A9> <EFBFBD>
2010-08-20 12:31:17 +02:00
fn_icon0 rb FILE_NAME_MAX ;<3B> <> <EFBFBD> 䠩<> <E4A0A9> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ﬨ
2010-08-04 13:40:19 +02:00
fn_icon1 rb FILE_NAME_MAX ;<3B> <> <EFBFBD> 䠩<> <E4A0A9> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> 楬
2010-08-22 22:42:46 +02:00
fn_icon2 rb FILE_NAME_MAX ;<3B> <> <EFBFBD> 䠩<> <E4A0A9> <20> <20> <> 栬<EFBFBD>
2010-09-08 21:06:14 +02:00
fn_icon3 rb FILE_NAME_MAX ;<3B> <> <EFBFBD> 䠩<> <E4A0A9> <20> 樯<> <E6A8AF> ⠬<EFBFBD>
2010-07-29 23:20:45 +02:00
2010-09-08 21:06:14 +02:00
TREE_ICON_SYS16_BMP_SIZE equ 256 * 3 * 11 + 54 ;ࠧ<> <E0A0A7> <EFBFBD> bmp 䠩<> <E4A0A9> <20> <20> <> <EFBFBD> ⥬<EFBFBD> 묨 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
ini_m_name db 'main.ini' , 0
key_count db 'count' , 0
key_game db 'g'
key_game_ind db 0 , 0 , 0
ini_name rb FILE_NAME_MAX ;<3B> <> <EFBFBD> ini 䠩<> <E4A0A9> c <20> <> <EFBFBD> ࠭<EFBFBD> <E0A0AD> <EFBFBD> <20> <> ன
2010-08-03 16:28:39 +02:00
ini_sec_files db 'Files' , 0
2010-08-20 12:31:17 +02:00
key_file_decorat db 'file_decorat' , 0
2010-08-04 13:40:19 +02:00
key_file_unit db 'file_unit' , 0
2010-08-22 22:42:46 +02:00
key_file_objects db 'file_objects' , 0
2010-09-08 21:06:14 +02:00
key_file_lost db 'file_lost' , 0
2010-08-03 16:28:39 +02:00
key_displ_w db 'displ_w' , 0
key_displ_h db 'displ_h' , 0
2010-08-20 12:31:17 +02:00
key_shadow_x db 'offs_shadow_x' , 0
key_shadow_y db 'offs_shadow_y' , 0
2010-08-04 13:40:19 +02:00
2010-08-22 22:42:46 +02:00
ini_sec_game db 'Game' , 0
key_delay_a db 'delay_a' , 0
key_delay_b db 'delay_b' , 0
key_delay_min db 'delay_min' , 0
2010-08-03 16:28:39 +02:00
ini_sec_color db 'Colors' , 0
2010-08-20 12:31:17 +02:00
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 뢠<EFBFBD> <EBA2A0> <EFBFBD> 梥⮢ <20> <> *.ini 䠩<> <E4A0A9>
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
2010-08-03 16:28:39 +02:00
key_color_unit db 'unit' , 0
2010-07-30 19:42:39 +02:00
;梥<> <E6A2A5> <20> <20> <> <EFBFBD> <EFBFBD>
2010-08-20 12:31:17 +02:00
color_fon dd ? ;梥<> 䮭<>
color_shadows dd ? ;梥<> ⥭<> <E2A5AD>
color_wolf dd ? ;梥<> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
color_egg dd ? ;梥<> <20> <> <EFBFBD> <EFBFBD>
color_chick dd ? ;梥<> 樯<> <E6A8AF> <EFBFBD> <EFBFBD> <EFBFBD>
color_decorat dd ? , ? , ? ;梥<> <E6A2A5> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 権 (<28> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> ਫ<EFBFBD> , ...)
2010-07-30 19:42:39 +02:00
;梥<> <E6A2A5> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 䥩<EFBFBD> <E4A5A9>
color_but_sm dd 0x808080 ;梥<> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 쪨<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2010-08-03 16:28:39 +02:00
color_but_te dd 0xffffff ;梥<> ⥪<> <E2A5AA> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2010-07-29 23:20:45 +02:00
macro load_image_file path , buf , si ze { ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 㧪<EFBFBD> <20> <> <EFBFBD> <EFBFBD> ࠦ<EFBFBD> <E0A0A6> <EFBFBD> <EFBFBD>
2011-08-17 13:18:45 +02:00
;path - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> ६<EFBFBD> <E0A5AC> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> ப<EFBFBD> <E0AEAA> <EFBFBD> <EFBFBD> <20> <> ࠬ<EFBFBD> <E0A0AC>
if path eqtype '' ;<3B> <EFBFBD> <E0AEA2> 塞 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> ப<EFBFBD> <E0AEAA> <20> <> ࠬ<EFBFBD> <E0A0AC> <EFBFBD> path
jmp @ f
local .path_str
.path_str db path ;<3B> <> ନ<EFBFBD> 㥬 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ६<EFBFBD> <E0A5AC> <EFBFBD> <EFBFBD> <EFBFBD>
db 0
@ @ :
;32 - <20> ⠭<EFBFBD> <E2A0AD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> ⥬<EFBFBD> <E2A5AC> <EFBFBD> <20> <> ⥬
2020-12-01 10:58:10 +01:00
copy_path .path_str ,[ 32 ], file_name , 0
2011-08-17 13:18:45 +02:00
else
2020-12-01 10:58:10 +01:00
copy_path path ,[ 32 ], file_name , 0 ;<3B> <> ନ<EFBFBD> 㥬 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> 䠩<> <E4A0A9> <20> <> <EFBFBD> <EFBFBD> ࠦ<EFBFBD> <E0A0A6> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> ࠧ㬥<E0A0A7> <E3ACA5> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> ணࠬ<E0AEA3> <E0A0AC> <EFBFBD>
2011-08-17 13:18:45 +02:00
end if
2010-08-03 16:28:39 +02:00
2010-07-29 23:20:45 +02:00
stdcall mem.Alloc , dword si ze ;<3B> 뤥<EFBFBD> 塞 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ࠦ<EFBFBD> <E0A0A6> <EFBFBD> <EFBFBD>
mov [ buf ], eax
2020-12-01 10:58:10 +01:00
mov eax , SF_FILE
mov [ run_file_70.Function ], SS F_READ_FILE
2010-07-29 23:20:45 +02:00
mov [ run_file_70.Position ], 0
mov [ run_file_70.Flags ], 0
mov [ run_file_70.Count ], dword si ze
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 ;<3B> <> <EFBFBD> <EFBFBD> 㦠<EFBFBD> <E3A6A0> 䠩<> <20> <> <EFBFBD> <EFBFBD> ࠦ<EFBFBD> <E0A0A6> <EFBFBD> <EFBFBD>
cmp ebx , 0xffffffff
je @ f
;<3B> <> ।<EFBFBD> <E0A5A4> 塞 <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ࠦ<EFBFBD> <E0A0A6> <EFBFBD> <EFBFBD> <20> <20> <> ॢ<EFBFBD> <E0A5A2> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <20> ६<EFBFBD> <E0A5AC> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> image_data
2020-12-01 10:58:10 +01:00
stdcall [ img_decode ], [ buf ], ebx , 0
mov [ image_data ], eax
2010-07-29 23:20:45 +02:00
;<3B> ८<EFBFBD> ࠧ㥬 <20> <> <EFBFBD> <EFBFBD> ࠦ<EFBFBD> <E0A0A6> <EFBFBD> <EFBFBD> <20> <20> <> ଠ <EFBFBD> <E0ACA0> rgb
2020-12-01 10:58:10 +01:00
stdcall [ img_to_rgb2 ], [ image_data ],[ buf ]
2010-07-29 23:20:45 +02:00
;㤠<> 塞 <20> ६<EFBFBD> <E0A5AC> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> image_data
2020-12-01 10:58:10 +01:00
stdcall [ img_destroy ], [ image_data ]
2010-07-29 23:20:45 +02:00
@ @ :
}
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
bit_zaac equ 2 ;<3B> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
val_zaac equ 4 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> ⢥<EFBFBD> <E2A2A5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
bit_mig equ 3 ;<3B> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
val_mig equ 8 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> ⢥<EFBFBD> <E2A2A5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mask_lot_lu equ 1b ;<3B> <> ᪠ <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> 孥<EFBFBD> <E5ADA5> <20> <> ⪠
mask_lot_ld equ 100000b ;<3B> <> ᪠ <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ⪠
mask_lot_ru equ 10000000000b ;<3B> <> ᪠ <20> <> <EFBFBD> <20> ࠢ<EFBFBD> <E0A0A2> <EFBFBD> <20> <> <EFBFBD> 孥<EFBFBD> <E5ADA5> <20> <> ⪠
mask_lot_rd equ 1000000000000000b ;<3B> <> ᪠ <20> <> <EFBFBD> <20> ࠢ<EFBFBD> <E0A0A2> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ⪠
mask_clear_all equ 11111011111011110111101111011110b ;<3B> <> ᪠ <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ⪨ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <20> ਡ<EFBFBD> <E0A8A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 樯<> <E6A8AF> <EFBFBD>
2010-08-20 12:31:17 +02:00
mask_move_eggs equ 11111111111111111111b ;<3B> <> ᪠ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD>
2010-07-29 23:20:45 +02:00
mask_fail_eggs equ 100001000010000100000b ;<3B> <> ᪠ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD>
mask_chi_left equ 11111000000000000000000000b ;<3B> <> ᪠ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 樯<> <E6A8AF> <EFBFBD>
mask_chi_right equ 11111000000000000000000000000000b ;<3B> <> ᪠ <20> ࠢ<EFBFBD> <E0A0A2> 樯<> <E6A8AF> <EFBFBD>
mask_chi_cr_l equ 1000000000000000000000b ;<3B> <> ᪠ <20> <> <EFBFBD> ᮧ<> <E1AEA7> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mask_chi_cr_r equ 1000000000000000000000000000b ;<3B> <> ᪠ <20> <> <EFBFBD> ᮧ<> <E1AEA7> <EFBFBD> <EFBFBD> <EFBFBD> <20> ࠢ<EFBFBD> <E0A0A2> <EFBFBD>
bit_chi_left equ 21 ;1-<2D> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ⢥砥<E2A2A5> <20> <> <20> <> <EFBFBD> <EFBFBD> 饣<EFBFBD> <> <E1ABA5>
bit_chi_right equ 27 ;1-<2D> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ⢥砥<E2A2A5> <20> <> <20> <> <EFBFBD> <EFBFBD> 饣<EFBFBD> <20> ࠢ<EFBFBD>
2010-07-30 19:42:39 +02:00
val_zaac_time_y equ 5 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⢮ ⠪⮢, <20> <> <EFBFBD> <EFBFBD> <20> <> 易⥫쭮 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <EFBFBD> <E0AEA2> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
val_zaac_time_n equ 7 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⢮ ⠪⮢, <20> <> <EFBFBD> <EFBFBD> <20> <> 易⥫쭮 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ⠭<EFBFBD> <E2A0AD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
2010-07-29 23:20:45 +02:00
2010-08-03 16:28:39 +02:00
txt_game_a db '<27> <> <EFBFBD> <EFBFBD> <20> ' , 0
txt_game_b db '<27> <> <EFBFBD> <EFBFBD> <20> ' , 0
2010-08-20 12:31:17 +02:00
zaac_status db 0 ;<3B> <> ⠪⮢, <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2010-07-29 23:20:45 +02:00
pos_wolf db 0 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 0-<2D> <20> <> <EFBFBD> <> <E1ABA5> /<2F> <> ࠢ<EFBFBD> , 1-<2D> <20> <> <EFBFBD> ᢥ<> <E1A2A5> <EFBFBD> /<2F> <> <EFBFBD> <EFBFBD>
;rb 1
pos_eggs dd 0 ;<3B> <> <EFBFBD> <EFBFBD> 樨 <20> <> ᯮ<EFBFBD> <E1AFAE> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> 樯<> <E6A8AF> <EFBFBD>
eggs_count dw 0 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⢮ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD>
game_text db '<27> <> <EFBFBD> <EFBFBD> _' , 13
some_text db '0'
rb 8 ;⥪<> <E2A5AA> <20> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD>
count_last db 0 ;<3B> <> <EFBFBD> <EFBFBD> 稪 <20> ய<EFBFBD> 饭<EFBFBD> <E9A5AD> <EFBFBD> <20> <> <EFBFBD>
game_spd dd 0 ;<3B> <> <EFBFBD> <EFBFBD> প<EFBFBD> <20> <> <EFBFBD> <EFBFBD>
2010-08-22 22:42:46 +02:00
game_delay_a dd ? ;<3B> <> ࢮ<EFBFBD> <E0A2AE> 砫쭠<E7A0AB> <20> <> <EFBFBD> <EFBFBD> প<EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20>
game_delay_b dd ? ;<3B> <> ࢮ<EFBFBD> <E0A2AE> 砫쭠<E7A0AB> <20> <> <EFBFBD> <EFBFBD> প<EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20>
game_delay_min dd ? ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 쭠<EFBFBD> <20> <> <EFBFBD> <EFBFBD> প<EFBFBD>
2010-07-29 23:20:45 +02:00
;<3B> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 樨 <20> <> <EFBFBD> 砩<EFBFBD> <E7A0A9> <EFBFBD> <20> <> ᥫ
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
2020-12-01 10:58:10 +01:00
mov eax ,[ rand_x ]
2010-07-29 23:20:45 +02:00
imul eax , 22695477
inc eax
2020-12-01 10:58:10 +01:00
mov [ rand_x ], eax
2010-07-29 23:20:45 +02:00
pop eax
ret
;ᮧ<> <E1AEA7> <EFBFBD> <EFBFBD> <20> <EFBFBD> <E0AEA7> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> 8 <20> <> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ), <20> <> <EFBFBD> <20> <> ᮢ<EFBFBD> <E1AEA2> <EFBFBD> <EFBFBD>
;<3B> <> <EFBFBD> buf - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> ᭮<EFBFBD> <E1ADAE> <20> <> <EFBFBD> <EFBFBD> ண<EFBFBD> <20> 㤥<EFBFBD> ᮧ<> <E1AEA7> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
;䮭<> <E4AEAD> <EFBFBD> <EFBFBD> 梥<> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 0xffffff, <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> ந<EFBFBD> <E0AEA8> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> १<EFBFBD> <E0A5A7>
;<3B> <> 䮭<> <E4AEAD> <EFBFBD> <EFBFBD> <EFBFBD> 梥<> <E6A2A5> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 㤥<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 쬭<> <ECACAD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
align 4
2015-11-11 00:11:17 +01:00
proc CreateTrapharetBuffer uses eax edi , buf : dword , img_data : dword
2020-12-01 10:58:10 +01:00
mov edi ,[ buf ]
2010-08-03 16:28:39 +02:00
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mov buf2d_size_lt , 0
2020-12-01 10:58:10 +01:00
mov eax ,[ di sp l_w ]
2010-08-03 16:28:39 +02:00
mov buf2d_w , eax
2020-12-01 10:58:10 +01:00
mov eax ,[ di sp l_h ]
2010-08-03 16:28:39 +02:00
mov buf2d_h , eax
mov buf2d_color , 0xffffff
mov buf2d_bits , 24
2010-07-29 23:20:45 +02:00
stdcall [ buf2d_create_f_img ], edi ,[ img_data ] ;ᮧ<> <E1AEA7> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
stdcall [ buf2d_conv_24_to_8 ], edi , 1 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <EFBFBD> <E0AEA7> 筮<EFBFBD> <E7ADAE> <EFBFBD> 8<> <38> <EFBFBD>
2010-07-30 19:42:39 +02:00
;<3B> <> १<EFBFBD> <E0A5A7> <EFBFBD> <20> <> 譨<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ண<EFBFBD> <20> <> ᮢ<EFBFBD> <E1AEA2> <EFBFBD> <EFBFBD>
stdcall [ buf2d_crop_color ], edi , buf2d_color , BUF2D_OPT_CROP_TOP + BUF2D_OPT_CROP_BOTTOM + BUF2D_OPT_CROP_RIGHT + BUF2D_OPT_CROP_LEFT
2010-07-29 23:20:45 +02:00
ret
endp
align 4
InitBackgroundBuffer: ;ᮧ<> <E1AEA7> <EFBFBD> <EFBFBD> <EFBFBD> 䮭<> <E4AEAD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ࠦ<EFBFBD> <E0A0A6> <EFBFBD> <EFBFBD>
pushad
mov edi , buf_fon
mov eax ,[ color_fon ]
mov buf2d_color , eax
stdcall [ buf2d_clear ], edi , eax
mov esi , edi
xor eax , eax
2010-08-20 12:31:17 +02:00
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 ecx , 3
@ @ :
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 ] ;<3B> <> <EFBFBD> 㥬 ⥭<> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 権
add edi , BUF_STRUCT_SIZE
loop @ b
.end_shadows:
2010-07-29 23:20:45 +02:00
2010-08-03 16:28:39 +02:00
mov edi , buf_decor
2010-08-20 12:31:17 +02:00
mov ebx , color_decorat
mov ecx , 3
@ @ :
mov ax , buf2d_t
stdcall [ buf2d_bit_blt_alpha ], esi , 0 , eax , edi ,[ ebx ] ;<3B> <> <EFBFBD> 㥬 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 樨
add edi , BUF_STRUCT_SIZE
add ebx , 4
loop @ b
2010-07-29 23:20:45 +02:00
popad
ret
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ⨭<EFBFBD> <E2A8AD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> buf <20> <> <20> <> <EFBFBD> ᨢ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> buf_img <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ᮬ ind
;<3B> . <20> . 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: ;<3B> <> ᮢ<EFBFBD> <E1AEA2> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
push eax
bt word [ pos_wolf ], bit_zaac
jae .end_mig
stdcall DrawArrayImg , buf_displ , buf_wolf , 6 ,[ color_wolf ] ;<3B> <> <EFBFBD> 㥬 ⥫<> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
mov eax , dword [ pos_eggs ]
and eax , mask_chi_right + mask_chi_left
cmp eax , 0
je .end_mig ;<3B> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 樯<> <E6A8AF> <EFBFBD> , <20> <> <20> <> <EFBFBD> <EFBFBD> <20> 㪮<EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
bt word [ pos_wolf ], bit_mig
jc @ f
stdcall DrawArrayImg , buf_displ , buf_wolf , 7 ,[ color_wolf ] ;<3B> <> <EFBFBD> 㥬 <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
jmp .end_mig
@ @ :
stdcall DrawArrayImg , buf_displ , buf_wolf , 8 ,[ color_wolf ] ;<3B> <> <EFBFBD> 㥬 <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
.end_mig:
pop eax
ret
align 4
DrawWolf: ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> ২<EFBFBD> <E0A7A8> <EFBFBD> <EFBFBD>
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: ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
pushad
cld
mov eax , dword [ pos_eggs ]
xor ebx , ebx
mov ecx , 20 ;横<> <20> <> <EFBFBD> <20> <> ᮢ<EFBFBD> <E1AEA2> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD>
@ @ :
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 ] ;ࠧ<> <E0A0A7> ⮥ <20> <> <EFBFBD> <EFBFBD> <> <E1ABA5>
@ @ :
mov eax , dword [ pos_eggs ]
and eax , mask_chi_right
cmp eax , 0
je @ f
stdcall DrawArrayImg , buf_displ , buf_egg , 21 ,[ color_egg ] ;ࠧ<> <E0A0A7> ⮥ <20> <> <EFBFBD> <EFBFBD> <20> <> ࠢ<EFBFBD>
@ @ :
mov eax , dword [ pos_eggs ]
xor edx , edx
mov ebx , bit_chi_left
mov ecx , 5 ;横<> <20> <> <EFBFBD> <20> <> ᮢ<EFBFBD> <E1AEA2> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 樯<> <E6A8AF> <EFBFBD>
@ @ :
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 ;横<> <20> <> <EFBFBD> <20> <> ᮢ<EFBFBD> <E1AEA2> <EFBFBD> <EFBFBD> <20> ࠢ<EFBFBD> <E0A0A2> 樯<> <E6A8AF> <EFBFBD>
@ @ :
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 ;横<> <20> <> <EFBFBD> <20> <> ᮢ<EFBFBD> <E1AEA2> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 窮<EFBFBD>
shr ecx , 1
mov edx , 10 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> 砫<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 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 ;<3B> <EFBFBD> <E0AEA2> 塞 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 饥 <20> <> <20> <> ⭮<EFBFBD> <20> 窮
jae @ f
bt word [ pos_wolf ], bit_mig
jc @ f
stdcall DrawArrayImg , buf_displ , buf_chi , edx ,[ color_chick ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> 饥 <20> <> <EFBFBD> <EFBFBD> 䭮<EFBFBD> <20> 窮
@ @ :
popad
ret
align 4
CountEggsInc: ;㢥<> <E3A2A5> 稢<EFBFBD> <E7A8A2> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 稪 <20> <> <EFBFBD> <20> <> 1
push eax edi
xor eax , eax
inc word [ eggs_count ] ;㢥<> <E3A2A5> 稢<EFBFBD> <E7A8A2> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 稪 <20> <> <EFBFBD>
cmp word [ eggs_count ], 200 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 窨
je @ f
cmp word [ eggs_count ], 500 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 窨
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 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 塞 ⥪<> ⮢<EFBFBD> <E2AEA2> <20> <> ப<EFBFBD>
and ax , 0xf ;<3B> <> १ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 16 <20> <> <EFBFBD> 㬥<> <E3ACA5> 蠥<EFBFBD> <20> ६<EFBFBD>
cmp ax , 0
jne @ f
2020-12-01 10:58:10 +01:00
mov edi ,[ game_delay_min ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 쭠<EFBFBD> <20> <> <EFBFBD> <EFBFBD> প<EFBFBD>
2010-08-22 22:42:46 +02:00
cmp dword [ game_spd ], edi
2010-07-29 23:20:45 +02:00
jle @ f
dec dword [ game_spd ]
@ @ :
pop edi eax
ret
;input:
; eax - <20> <> ᪠, 㪠<> 뢠<EFBFBD> <EBA2A0> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> 㯠<> <E3AFA0> <20> <> <EFBFBD> <EFBFBD>
align 4
CountLastInc: ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <E1ABA5> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 窮<EFBFBD>
inc byte [ count_last ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 䭮<EFBFBD> <E4ADAE> <20> 窠
bt word [ pos_wolf ], bit_zaac
jc @ f
inc byte [ count_last ] ;<3B> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> 1-<2D> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 䭮<EFBFBD> <E4ADAE> <20> 窠
@ @ :
cmp byte [ count_last ], 6
jle @ f
mov byte [ count_last ], 6 ;<3B> ⠢<EFBFBD> <E2A0A2> <20> <> ࠭<EFBFBD> 祭<EFBFBD> <20> <> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 窮<EFBFBD>
@ @ :
or dword [ pos_eggs ], eax ;ᮧ<> <E1AEA7> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 饣<EFBFBD> 樯<> <E6A8AF> <EFBFBD> <EFBFBD> <EFBFBD>
ret
align 4
MoveEggs:
pushad
xor byte [ pos_wolf ], val_mig ;<3B> <> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
cmp byte [ count_last ], 6 ;<3B> <> <EFBFBD> ᨬ<EFBFBD> <E1A8AC> 쭮<EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 窮<EFBFBD>
je .end_fun
rol dword [ pos_eggs ], 1
mov ecx , dword [ pos_eggs ]
and ecx , mask_fail_eggs
cmp ecx , 0
je .no_fail ;<3B> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD>
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <E1ABA5> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> ২<EFBFBD> <E0A7A8>
;<3B> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <E1ABA5> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 窮<EFBFBD>
xor ebx , ebx
mov bl , byte [ pos_wolf ] ;<3B> <> ६ <20> <> ࠬ<EFBFBD> <E0A0AC> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ) <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
and bl , 3 ;<3B> <> <20> <> 直<EFBFBD> <20> <> <EFBFBD> 砩
bt ecx , 5 ;<3B> <EFBFBD> <E0AEA2> 塞 <20> <> <EFBFBD> 孥<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ਫ<EFBFBD>
jae .perilo_lu
cmp bx , 0 ;<3B> <EFBFBD> <E0AEA2> 塞 <20> <> <EFBFBD> <EFBFBD> 稥 <20> <> ২<EFBFBD> <E0A7A8>
jne @ f
call CountEggsInc
jmp .perilo_lu
@ @ :
mov eax , mask_chi_cr_l
call CountLastInc
.perilo_lu:
bt ecx , 10 ;<3B> <EFBFBD> <E0AEA2> 塞 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ਫ<EFBFBD>
jae .perilo_ld
cmp bx , 2 ;<3B> <EFBFBD> <E0AEA2> 塞 <20> <> <EFBFBD> <EFBFBD> 稥 <20> <> ২<EFBFBD> <E0A7A8>
jne @ f
call CountEggsInc
jmp .perilo_ld
@ @ :
mov eax , mask_chi_cr_l
call CountLastInc
.perilo_ld:
bt ecx , 15 ;<3B> <EFBFBD> <E0AEA2> 塞 <20> <> <EFBFBD> 孥<EFBFBD> <20> ࠢ<EFBFBD> <E0A0A2> <20> <> ਫ<EFBFBD>
jae .perilo_ru
cmp bx , 1 ;<3B> <EFBFBD> <E0AEA2> 塞 <20> <> <EFBFBD> <EFBFBD> 稥 <20> <> ২<EFBFBD> <E0A7A8>
jne @ f
call CountEggsInc
jmp .perilo_ru
@ @ :
mov eax , mask_chi_cr_r
call CountLastInc
.perilo_ru:
bt ecx , 20 ;<3B> <EFBFBD> <E0AEA2> 塞 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ࠢ<EFBFBD> <E0A0A2> <20> <> ਫ<EFBFBD>
jae .perilo_rd
cmp bx , 3 ;<3B> <EFBFBD> <E0AEA2> 塞 <20> <> <EFBFBD> <EFBFBD> 稥 <20> <> ২<EFBFBD> <E0A7A8>
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 ;<3B> <> <EFBFBD> <EFBFBD> ⪠ 㯠<> <E3AFA0> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ३
call rand_next
2010-07-30 19:42:39 +02:00
cmp byte [ zaac_status ], 0
jle @ f
dec byte [ zaac_status ]
jmp .no_zaac_move ;<3B> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
@ @ :
bt dword [ rand_x ], 6 ;<3B> <> <EFBFBD> <EFBFBD> <20> <> 䮭<> <E4AEAD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2010-07-29 23:20:45 +02:00
jc @ f
xor byte [ pos_wolf ], val_zaac ;<3B> <> ᮢ뢠<E1AEA2> <EBA2A0> /<2F> <> ᮢ뢠<E1AEA2> <EBA2A0> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
2010-07-30 19:42:39 +02:00
bt word [ pos_wolf ], val_zaac
jc .zaac_n
mov byte [ zaac_status ], val_zaac_time_y ;<3B> ⠢<EFBFBD> <E2A0A2> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 쭮<EFBFBD> <20> ६<EFBFBD> <20> <> <EFBFBD> ᬥ<> <E1ACA5> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
jmp @ f
.zaac_n:
mov byte [ zaac_status ], val_zaac_time_n ;<3B> ⠢<EFBFBD> <E2A0A2> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 쭮<EFBFBD> <20> ६<EFBFBD> <20> <> <EFBFBD> ᬥ<> <E1ACA5> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2010-07-29 23:20:45 +02:00
@ @ :
2010-07-30 19:42:39 +02:00
.no_zaac_move:
2010-07-29 23:20:45 +02:00
;ᮧ<> <E1AEA7> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD>
2010-08-20 12:31:17 +02:00
cmp word [ eggs_count ], 5 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 5 <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> 1-<2D> <>
jge @ f
mov ecx , dword [ pos_eggs ]
and ecx , mask_move_eggs
;cmp ecx,0
jnz .end_creat
@ @ :
2010-07-29 23:20:45 +02:00
bt dword [ rand_x ], 4 ;<3B> <EFBFBD> <E0AEA2> 塞 <20> 㤥<EFBFBD> <20> <> ᮧ<> <E1AEA7> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
jc .end_creat
bt dword [ rand_x ], 5 ;<3B> <EFBFBD> <E0AEA2> 塞 <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> 㤥<EFBFBD> ᮧ<> <E1AEA7> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
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 ;<3B> <> ࢮ<EFBFBD> <E0A2AE> 砫<EFBFBD> <E7A0AB> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ன<EFBFBD> <E0AEA9> <20> <> <EFBFBD> <EFBFBD>
mov word [ eggs_count ], 0 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⢮ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD>
mov byte [ some_text ], '0'
mov byte [ some_text + 1 ], 0 ;⥪<> <E2A5AA> <20> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD>
2010-08-22 22:42:46 +02:00
mov byte [ count_last ], 0 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 窨
2010-07-29 23:20:45 +02:00
mov dword [ pos_eggs ], 0
2010-07-30 19:42:39 +02:00
mov byte [ zaac_status ], 0
2010-07-29 23:20:45 +02:00
2010-08-22 22:42:46 +02:00
push eax ebx
2010-07-29 23:20:45 +02:00
cmp dword [ b ], 0
jne @ f
mov byte [ game_text + 5 ], '<27> '
2010-08-22 22:42:46 +02:00
mov eax , dword [ game_delay_a ]
mov dword [ game_spd ], eax ;<3B> <> <EFBFBD> <EFBFBD> প<EFBFBD> <20> <> <EFBFBD> <EFBFBD>
2010-07-29 23:20:45 +02:00
jmp .end_init
@ @ :
mov byte [ game_text + 5 ], '<27> '
2010-08-22 22:42:46 +02:00
mov eax , dword [ game_delay_b ]
mov dword [ game_spd ], eax ;<3B> <> <EFBFBD> <EFBFBD> প<EFBFBD> <20> <> <EFBFBD> <EFBFBD>
2010-07-29 23:20:45 +02:00
.end_init:
2020-12-01 10:58:10 +01:00
mcall SF_SYSTEM_GET , SS F_TIME_COUNT
mov [ rand_x ], eax ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 塞 1-<2D> <20> <> <EFBFBD> 砩<EFBFBD> <E7A0A9> <EFBFBD> <20> <>
2010-07-29 23:20:45 +02:00
pop ebx eax
ret
endp
2010-08-03 16:28:39 +02:00
align 4
proc LoadArrayBuffer , f_name : dword , buf_start : dword , count : dword
pushad
2020-12-01 10:58:10 +01:00
mov edx ,[ di sp l_bytes ]
2010-08-03 16:28:39 +02:00
mov ecx , edx
2020-12-01 10:58:10 +01:00
imul ecx ,[ count ]
mov eax ,[ f_name ]
2010-08-03 16:28:39 +02:00
load_image_file eax , image_data_gray , ecx
2020-12-01 10:58:10 +01:00
mov edx ,[ di sp l_bytes ]
2010-08-03 16:28:39 +02:00
mov eax ,[ image_data_gray ]
2020-12-01 10:58:10 +01:00
mov edi ,[ buf_start ]
mov ecx ,[ count ]
2010-08-03 16:28:39 +02:00
cld
@ @ : ;<3B> <> <EFBFBD> <EFBFBD> 뢠<EFBFBD> <EBA2A0> 3 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ﬨ
stdcall CreateTrapharetBuffer , edi , eax
add eax , edx
add edi , BUF_STRUCT_SIZE
loop @ b
stdcall mem.Free ,[ image_data_gray ] ;<3B> <EFBFBD> <E1A2AE> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
popad
ret
endp
2010-09-08 21:06:14 +02:00
txt_tile_type_0 rb FILE_NAME_MAX
2010-07-29 23:20:45 +02:00
align 4
2010-09-08 21:06:14 +02:00
user_is_select:
2015-11-11 00:11:17 +01:00
push eax ecx esi edi
2010-09-08 21:06:14 +02:00
stdcall [ tl_node_get_data ], tree1
2020-12-01 10:58:10 +01:00
or eax , eax ;<3B> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ⮥
jz @ f
2015-11-11 00:11:17 +01:00
mov esi , eax
2010-09-08 21:06:14 +02:00
mov edi , ini_name
mov ecx , FILE_NAME_MAX
cld
rep movsb
2010-07-29 23:20:45 +02:00
2010-09-08 21:06:14 +02:00
mov byte [ game_select_mode ], 0
call InitAll
2010-07-29 23:20:45 +02:00
@ @ :
2015-11-11 00:11:17 +01:00
pop edi esi ecx eax
2010-07-29 23:20:45 +02:00
2010-09-08 21:06:14 +02:00
call draw_window
ret
2010-07-29 23:20:45 +02:00
2010-09-08 21:06:14 +02:00
;******************************************************************************
; <20> 㭪<EFBFBD> <E3ADAA> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 1 ࠧ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ன<EFBFBD> <E0AEA9> <20> 㦭<EFBFBD> <E3A6AD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
;******************************************************************************
align 4
InitAll:
pushad
2010-08-03 16:28:39 +02:00
;ࠡ<> <E0A0A1> <EFBFBD> <20> 䠩<> <E4A0A9> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
2020-12-01 10:58:10 +01:00
copy_path ini_name , sys_path , file_name , 0
stdcall [ ini_get_int ], file_name , ini_sec_files , key_displ_w , 210
mov [ di sp l_w ], eax
stdcall [ ini_get_int ], file_name , ini_sec_files , key_displ_h , 140
mov [ di sp l_h ], eax
stdcall [ ini_get_str ], file_name , ini_sec_files , key_file_decorat , fn_icon0 , FILE_NAME_MAX , ini_def_decorat_file
stdcall [ ini_get_str ], file_name , ini_sec_files , key_file_unit , fn_icon1 , FILE_NAME_MAX , ini_def_unit_file
stdcall [ ini_get_str ], file_name , ini_sec_files , key_file_objects , fn_icon2 , FILE_NAME_MAX , ini_def_objects_file
stdcall [ ini_get_str ], file_name , ini_sec_files , key_file_lost , fn_icon3 , FILE_NAME_MAX , ini_def_lost_file
stdcall [ ini_get_int ], file_name , ini_sec_files , key_shadow_x , 2
mov [ offs_shadow_x ], eax
stdcall [ ini_get_int ], file_name , ini_sec_files , key_shadow_y , 2
mov [ offs_shadow_y ], eax
2010-08-20 12:31:17 +02:00
2010-08-22 22:42:46 +02:00
;<3B> <> <EFBFBD> <EFBFBD> 뢠<EFBFBD> <EBA2A0> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <> <E1AAAE> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
2020-12-01 10:58:10 +01:00
stdcall [ ini_get_int ], file_name , ini_sec_game , key_delay_a , 65
mov [ game_delay_a ], eax
stdcall [ ini_get_int ], file_name , ini_sec_game , key_delay_b , 35
mov [ game_delay_b ], eax
stdcall [ ini_get_int ], file_name , ini_sec_game , key_delay_min , 15
mov [ game_delay_min ], eax
2010-08-22 22:42:46 +02:00
2020-12-01 10:58:10 +01:00
stdcall [ ini_get_color ], file_name , ini_sec_color , key_color_fon , 0xffffff
mov [ color_fon ], eax
stdcall [ ini_get_color ], file_name , ini_sec_color , key_color_shadows , 0xd0d0d0
mov [ color_shadows ], eax
stdcall [ ini_get_color ], file_name , ini_sec_color , key_color_unit , 0
mov [ color_wolf ], eax
stdcall [ ini_get_color ], file_name , ini_sec_color , key_color_egg , 0x404080
mov [ color_egg ], eax
stdcall [ ini_get_color ], file_name , ini_sec_color , key_color_chick , 0x00d0d0
mov [ color_chick ], eax
2010-08-04 13:40:19 +02:00
2010-08-20 12:31:17 +02:00
mov ebx , color_decorat
mov byte [ key_color_decorat.ind ], '0'
mov ecx , 3
cld
@ @ :
2010-08-22 22:42:46 +02:00
push ecx ;<3B> 㭪<EFBFBD> <E3ADAA> <EFBFBD> ini_get_color <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> ࠢ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ॣ<> <E0A5A3> <EFBFBD> <EFBFBD> ecx
2020-12-01 10:58:10 +01:00
stdcall [ ini_get_color ], file_name , ini_sec_color , key_color_decorat , 0x000080
2010-08-22 22:42:46 +02:00
pop ecx
2020-12-01 10:58:10 +01:00
mov [ ebx ], eax
2010-08-20 12:31:17 +02:00
add ebx , 4
inc byte [ key_color_decorat.ind ]
loop @ b
2010-08-03 16:28:39 +02:00
2020-12-01 10:58:10 +01:00
mov edx ,[ di sp l_w ]
imul edx ,[ di sp l_h ]
2010-08-03 16:28:39 +02:00
lea edx ,[ edx + edx * 2 ]
2020-12-01 10:58:10 +01:00
mov [ di sp l_bytes ], edx ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 塞 ࠧ<> <E0A0A7> <EFBFBD> <20> <> <EFBFBD> <E0AEA2> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
2010-08-03 16:28:39 +02:00
stdcall LoadArrayBuffer , fn_icon0 , buf_decor , 3 ;<3B> <> <EFBFBD> <EFBFBD> 뢠<EFBFBD> <EBA2A0> 3 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ﬨ
stdcall LoadArrayBuffer , fn_icon1 , buf_wolf , 9 ;<3B> <> <EFBFBD> <EFBFBD> 뢠<EFBFBD> <EBA2A0> 9 <20> <> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> 楬
stdcall LoadArrayBuffer , fn_icon2 , buf_egg , 22 ;<3B> <> <EFBFBD> <EFBFBD> 뢠<EFBFBD> <EBA2A0> 22 <20> <> <EFBFBD> <EFBFBD> <20> <20> <> 栬<EFBFBD>
stdcall LoadArrayBuffer , fn_icon3 , buf_chi , 13 ;<3B> <> <EFBFBD> <EFBFBD> 뢠<EFBFBD> <EBA2A0> 13 <20> <> <EFBFBD> <EFBFBD> <20> 樯<> <E6A8AF> ⠬<EFBFBD>
2010-07-29 23:20:45 +02:00
2011-08-17 13:18:45 +02:00
load_image_file 'font8x9.bmp' , image_data_gray , IMAGE_FONT_SIZE
2010-07-29 23:20:45 +02:00
stdcall [ buf2d_create_f_img ], buf_font ,[ image_data_gray ] ;ᮧ<> <E1AEA7> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
stdcall mem.Free ,[ image_data_gray ] ;<3B> <EFBFBD> <E1A2AE> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
stdcall [ buf2d_conv_24_to_8 ], buf_font , 1 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <EFBFBD> <E0AEA7> 筮<EFBFBD> <E7ADAE> <EFBFBD> 8 <20> <> <EFBFBD>
stdcall [ buf2d_convert_text_matrix ], buf_font
;<3B> <EFBFBD> ઠ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
;mov edi,buf_wolf
;add edi,BUF_STRUCT_SIZE ;<3B> <> <EFBFBD> <EFBFBD> 室<EFBFBD> <E5AEA4> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ২<EFBFBD> <E0A7A8>
;stdcall [buf2d_clear],edi,0x808080 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 梥⮬
2010-08-03 16:28:39 +02:00
mov ebx , dword [ di sp l_w ]
mov edx , dword [ di sp l_h ]
mov edi , buf_displ
mov buf2d_w , ebx
mov buf2d_h , edx
2010-07-29 23:20:45 +02:00
stdcall [ buf2d_create ], buf_displ ;ᮧ<> <E1AEA7> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> 뢮<EFBFBD> <EBA2AE> <20> <> <20> <> ࠭
2010-08-03 16:28:39 +02:00
mov edi , buf_fon
mov buf2d_w , ebx
mov buf2d_h , edx
stdcall [ buf2d_create ], buf_fon ;ᮧ<> <E1AEA7> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> 䮭<> <E4AEAD> 묨 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ﬨ
2010-07-29 23:20:45 +02:00
call InitBackgroundBuffer ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 塞 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> 䮭<> <E4AEAD> 묨 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ﬨ
stdcall InitGame , 0
2010-09-08 21:06:14 +02:00
popad
ret
align 4
start:
load_libraries l_libs_start , load_lib_end
2015-11-11 00:11:17 +01:00
;<3B> <EFBFBD> ઠ <20> <> <> 쪮 㤠筮 <20> <> <EFBFBD> 㧨<EFBFBD> <E3A7A8> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⥪<EFBFBD>
cmp dword [ lib0 + ll_struc_size - 4 ], 0
jnz @ f
cmp dword [ lib1 + ll_struc_size - 4 ], 0
jnz @ f
cmp dword [ lib2 + ll_struc_size - 4 ], 0
jnz @ f
cmp dword [ lib3 + ll_struc_size - 4 ], 0
jnz @ f
jmp .lib
2010-09-08 21:06:14 +02:00
@ @ :
2020-12-01 10:58:10 +01:00
mcall SF_TERMINATE_PROCESS
2015-11-11 00:11:17 +01:00
.lib:
2010-09-08 21:06:14 +02:00
2020-12-01 10:58:10 +01:00
mcall SF_SET_EVENTS_MASK , 0x27
mcall SF_STYLE_SETTINGS , SS F_GET_COLORS , sc , si zeof.system_colors
2010-09-08 21:06:14 +02:00
;******************************************************************************
2015-11-11 00:11:17 +01:00
; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ⮢<EFBFBD> <E2AEA2> ᯨ᪠ <20> <> <EFBFBD>
2010-09-08 21:06:14 +02:00
;******************************************************************************
stdcall dword [ tl_data_init ], tree1
2011-08-17 13:18:45 +02:00
load_image_file 'tl_sys_16.png' , image_data_gray , TREE_ICON_SYS16_BMP_SIZE
2010-09-08 21:06:14 +02:00
stdcall [ buf2d_create_f_img ], buf_tree_sys ,[ image_data_gray ] ;ᮧ<> <E1AEA7> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
stdcall mem.Free ,[ image_data_gray ] ;<3B> <EFBFBD> <E1A2AE> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mov edi , buf_tree_sys
m2m dword [ tree1.data_img_sys ], buf2d_data
;ࠡ<> <E0A0A1> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 䠩<> <E4A0A9> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
2020-12-01 10:58:10 +01:00
copy_path ini_m_name , sys_path , file_name , 0
2010-09-08 21:06:14 +02:00
2020-12-01 10:58:10 +01:00
stdcall [ ini_get_int ], file_name , ini_sec_files , key_count , 1
2010-09-08 21:06:14 +02:00
mov ecx , eax
mov dl , '0'
cld
@ @ :
mov byte [ key_game_ind ], dl
inc dl
push ecx edx
2020-12-01 10:58:10 +01:00
stdcall [ ini_get_str ], file_name , ini_sec_files , key_game , txt_tile_type_0 , FILE_NAME_MAX , ini_def_decorat_file
stdcall [ tl_node_add ], tree1 , 0 , txt_tile_type_0 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 塞 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
stdcall [ tl_cur_next ], tree1 ;<3B> <> ७<EFBFBD> ᨬ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> -<2D> <> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> 冷<EFBFBD> <20> <> <EFBFBD>
2010-09-08 21:06:14 +02:00
pop edx ecx
loop @ b
2020-12-01 10:58:10 +01:00
stdcall [ tl_cur_beg ], tree1 ;<3B> <> ७<EFBFBD> ᨬ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
2010-09-08 21:06:14 +02:00
2020-12-01 10:58:10 +01:00
mcall SF_SYSTEM_GET , SS F_TIME_COUNT
2011-08-17 13:18:45 +02:00
mov [ last_time ], eax
2010-07-29 23:20:45 +02:00
align 4
red_win:
call draw_window
align 4
still: ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 横<>
2010-09-08 21:06:14 +02:00
cmp byte [ game_select_mode ], 0
jne .select_mode
2020-12-01 10:58:10 +01:00
mcall SF_SYSTEM_GET , SS F_TIME_COUNT
2010-07-29 23:20:45 +02:00
mov ebx ,[ last_time ]
2020-12-01 10:58:10 +01:00
add ebx ,[ game_spd ] ;delay
2010-07-29 23:20:45 +02:00
sub ebx , eax
2020-12-01 10:58:10 +01:00
cmp ebx ,[ game_spd ] ;delay
2010-07-29 23:20:45 +02:00
ja it_is_time_now
test ebx , ebx
jz it_is_time_now
2020-12-01 10:58:10 +01:00
mcall SF_WAIT_EVENT_TIMEOUT
or eax , eax
jz it_is_time_now
2010-07-29 23:20:45 +02:00
2010-09-08 21:06:14 +02:00
jmp @ f
.select_mode:
2020-12-01 10:58:10 +01:00
mcall SF_WAIT_EVENT
2010-09-08 21:06:14 +02:00
@ @ :
2010-07-29 23:20:45 +02:00
2010-09-08 21:06:14 +02:00
cmp al , 1 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
2010-07-29 23:20:45 +02:00
jz red_win
2010-09-08 21:06:14 +02:00
cmp al , 2
2010-07-29 23:20:45 +02:00
jz key
2010-09-08 21:06:14 +02:00
cmp al , 3
2010-07-29 23:20:45 +02:00
jz button
2010-09-08 21:06:14 +02:00
cmp al , 6
jz mouse
2010-07-29 23:20:45 +02:00
jmp still
2010-09-08 21:06:14 +02:00
align 4
mouse:
cmp byte [ game_select_mode ], 0
je @ f
stdcall [ tl_mouse ], tree1 ;<3B> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <20> <> <EFBFBD> ࠭<EFBFBD>
@ @ :
jmp still
2010-07-29 23:20:45 +02:00
align 4
it_is_time_now:
2020-12-01 10:58:10 +01:00
mcall SF_SYSTEM_GET , SS F_TIME_COUNT
2010-07-29 23:20:45 +02:00
mov [ last_time ], eax
2011-08-17 13:18:45 +02:00
;cmp byte[game_select_mode],0
;jne still
2010-09-08 21:06:14 +02:00
2010-07-29 23:20:45 +02:00
;...<2E> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ⢨<EFBFBD> , <20> <> <EFBFBD> 뢠<EFBFBD> <EBA2A0> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> delay <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ᥪ㭤...
call MoveEggs
call draw_display
jmp still
align 4
key:
push eax ebx
2020-12-01 10:58:10 +01:00
mcall SF_GET_KEY
2010-07-29 23:20:45 +02:00
2010-09-08 21:06:14 +02:00
cmp byte [ game_select_mode ], 0
je @ f
stdcall [ tl_key ], tree1
@ @ :
2010-07-29 23:20:45 +02:00
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
2020-12-01 10:58:10 +01:00
mcall SF_REDRAW , SS F_BEGIN_DRAW
2010-07-29 23:20:45 +02:00
xor eax , eax
2010-07-30 19:42:39 +02:00
mov ebx , 20 * 65536 + 480
mov ecx , 20 * 65536 + 270
2010-07-29 23:20:45 +02:00
mov edx ,[ sc.work ]
;or edx,0x33000000
or edx , 0x73000000
mov edi , hed
mcall ;ᮧ<> <E1AEA7> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
2020-12-01 10:58:10 +01:00
mcall SF_THREAD_INFO , procinfo , - 1
2010-07-29 23:20:45 +02:00
2010-09-08 21:06:14 +02:00
cmp byte [ game_select_mode ], 0
jne .select_mode
2010-07-29 23:20:45 +02:00
mov edi , buf_displ
2020-12-01 10:58:10 +01:00
mov eax ,[ procinfo.client_box.width ]
cmp eax ,[ di sp l_w ]
2010-07-29 23:20:45 +02:00
jle @ f
2020-12-01 10:58:10 +01:00
sub eax ,[ di sp l_w ]
2010-07-29 23:20:45 +02:00
shr eax , 1
mov buf2d_l , ax ;<3B> <> <EFBFBD> ࠢ<EFBFBD> <E0A0A2> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> 業<> <E6A5AD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
@ @ :
call draw_display
2020-12-01 10:58:10 +01:00
mov eax , SF_DRAW_RECT
2010-07-29 23:20:45 +02:00
mov edx ,[ sc.work ]
xor esi , esi
mov si , buf2d_l
2020-12-01 10:58:10 +01:00
add esi ,[ di sp l_w ]
mov ebx ,[ procinfo.client_box.width ]
2010-07-29 23:20:45 +02:00
inc ebx
cmp esi , ebx
jge @ f
sub ebx , esi
rol ebx , 16
mov bx , si
rol ebx , 16
2020-12-01 10:58:10 +01:00
mov ecx ,[ procinfo.client_box.height ]
2010-07-29 23:20:45 +02:00
inc ecx
int 0x40 ;<3B> <> ᮢ<EFBFBD> <E1AEA2> <EFBFBD> <EFBFBD> <20> ࠢ<EFBFBD> <E0A0A2> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
jmp .draw_s
@ @ :
2020-12-01 10:58:10 +01:00
mov esi ,[ procinfo.client_box.width ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> ਭ<EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2010-07-29 23:20:45 +02:00
inc esi
.draw_s:
2010-07-30 19:42:39 +02:00
; *** <20> <> ᮢ<EFBFBD> <E1AEA2> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ***
push esi
2020-12-01 10:58:10 +01:00
movzx ebx , buf2d_l
2010-07-30 19:42:39 +02:00
add ebx , buf2d_w
add ebx , BUT1_L
shl ebx , 16
mov bx , BUT1_W
mov ecx , BUT1_T * 65536 + BUT1_H
2020-12-01 10:58:10 +01:00
mov esi ,[ color_but_sm ]
mcall SF_DEFINE_BUTTON ,,, 5
2010-07-30 19:42:39 +02:00
inc edx
add ecx , BUT1_NEXT_TOP
int 0x40
pop esi
2020-12-01 10:58:10 +01:00
mov bx , BUT1_H - 4
add ebx , 8 shl 16
mov ecx ,[ color_but_te ]
2010-08-03 16:28:39 +02:00
or ecx , 0x80000000
mov edx , txt_game_a
2020-12-01 10:58:10 +01:00
mcall SF_DRAW_TEXT
2010-08-03 16:28:39 +02:00
ror ebx , 16
add ebx , BUT1_NEXT_TOP
ror ebx , 16
mov edx , txt_game_b
int 0x40
2010-07-30 19:42:39 +02:00
; *** <20> <> <EFBFBD> <EFBFBD> ⠭<EFBFBD> <E2A0AD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ࠬ<EFBFBD> <E0A0AC> ***
2020-12-01 10:58:10 +01:00
mov eax , SF_DRAW_RECT
2010-07-30 19:42:39 +02:00
mov edx ,[ sc.work ]
2010-07-29 23:20:45 +02:00
mov ebx , esi
2020-12-01 10:58:10 +01:00
mov ecx ,[ procinfo.client_box.height ]
2010-07-29 23:20:45 +02:00
inc ecx
2020-12-01 10:58:10 +01:00
mov esi ,[ di sp l_h ]
2010-07-29 23:20:45 +02:00
cmp esi , ebx
jge @ f
sub ecx , esi
rol ecx , 16
mov cx , si
rol ecx , 16
int 0x40 ;<3B> <> ᮢ<EFBFBD> <E1AEA2> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
@ @ :
xor ebx , ebx
mov bx , buf2d_l
2020-12-01 10:58:10 +01:00
mov ecx ,[ di sp l_h ]
2010-07-29 23:20:45 +02:00
int 0x40 ;<3B> <> ᮢ<EFBFBD> <E1AEA2> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
2010-09-08 21:06:14 +02:00
jmp @ f
.select_mode:
2020-12-01 10:58:10 +01:00
stdcall [ tl_draw ], tree1
2010-09-17 18:05:21 +02:00
mov edi , tree1
add edi , tl_offs_box
stdcall draw_rect_border , procinfo.client_box , edi
2010-09-08 21:06:14 +02:00
@ @ :
2020-12-01 10:58:10 +01:00
mcall SF_REDRAW , SS F_END_DRAW
2010-07-29 23:20:45 +02:00
popad
ret
2010-09-17 18:05:21 +02:00
; <20> 㭪<EFBFBD> <E3ADAA> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> אַ㣮<EFACAE> 쭨<EFBFBD> <ECADA8> user_box
; ࠧ<> <E0A0A7> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> 室<EFBFBD> <20> <> ࠧ<> <E0A0A7> client_rect
; <20> ।<EFBFBD> <E0A5A4> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> 設<EFBFBD> ⢥ <20> <> <EFBFBD> 砥<EFBFBD> client_rect > user_box
align 4
proc draw_rect_border , cl ient_rect : dword , user_box : dword
pushad
2020-12-01 10:58:10 +01:00
mov esi ,[ user_box ]
2010-09-17 18:05:21 +02:00
cmp esi , 0
je @ f
2020-12-01 10:58:10 +01:00
mov edi ,[ cl ient_rect ]
2010-09-17 18:05:21 +02:00
mov ebx , dword [ edi + 8 ] ;+8 = width
inc bx
mov ecx , dword [ esi + 4 ] ;+4 = top
mov edx ,[ sc.work ]
2020-12-01 10:58:10 +01:00
mcall SF_DRAW_RECT ;top
2010-09-17 18:05:21 +02:00
mov eax , dword [ esi + 4 ] ;+4 = top
add eax , dword [ esi + 12 ] ;+12 = height
cmp eax , dword [ edi + 12 ]
jge .no_bottom
mov ecx , eax
shl ecx , 16
mov cx , word [ edi + 12 ] ;+12 = bottom
inc cx
sub cx , ax
2020-12-01 10:58:10 +01:00
mcall SF_DRAW_RECT ;bottom
2010-09-17 18:05:21 +02:00
.no_bottom:
mov ebx , dword [ esi ] ;+0 left
mov ecx , dword [ esi + 4 ] ;+4 = top
shl ecx , 16
mov cx , word [ esi + 12 ] ;+12 = height
inc cx
2020-12-01 10:58:10 +01:00
mcall SF_DRAW_RECT ;left
2010-09-17 18:05:21 +02:00
mov eax , dword [ esi ] ;+0 left
add eax , dword [ esi + 8 ] ;+8 = width
mov ebx , eax
shl ebx , 16
mov bx , word [ edi + 8 ] ;+8 = right
sub bx , ax
inc bx
2020-12-01 10:58:10 +01:00
mcall SF_DRAW_RECT ;right
2010-09-17 18:05:21 +02:00
@ @ :
popad
ret
endp
2010-07-29 23:20:45 +02:00
align 4
draw_display:
2020-12-01 10:58:10 +01:00
stdcall mem_copy , [ buf_fon ],[ buf_displ ],[ di sp l_bytes ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <E0AEA2> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ࠦ<EFBFBD> <E0A0A6> <EFBFBD> <EFBFBD> <20> <> 䮭<> <E4AEAD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2010-08-03 16:28:39 +02:00
call DrawZaac ;<3B> <> <EFBFBD> 㥬 <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
2010-07-29 23:20:45 +02:00
call DrawWolf ;<3B> <> <EFBFBD> 㥬 <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
2010-08-03 16:28:39 +02:00
call DrawEggs ;<3B> <> <EFBFBD> 㥬 <20> <> <EFBFBD> <EFBFBD>
2010-07-29 23:20:45 +02:00
2010-08-03 16:28:39 +02:00
push eax
2020-12-01 10:58:10 +01:00
mov eax ,[ di sp l_w ]
2010-08-03 16:28:39 +02:00
shr eax , 1
2010-08-20 12:31:17 +02:00
stdcall [ buf2d_draw_text ], buf_displ , buf_font , game_text , eax ,[ offs_shadow_x ],[ color_wolf ] ;<3B> <> <EFBFBD> 㥬 <20> <> ப<EFBFBD> <20> ⥪<> ⮬
2010-08-03 16:28:39 +02:00
pop eax
2010-07-29 23:20:45 +02:00
stdcall [ buf2d_draw ], buf_displ
ret
align 4
button:
2020-12-01 10:58:10 +01:00
mcall SF_GET_BUTTON
2010-08-20 12:31:17 +02:00
2010-07-30 19:42:39 +02:00
cmp ah , 5
jne @ f
stdcall InitGame , 0
@ @ :
cmp ah , 6
jne @ f
stdcall InitGame , 1
2010-08-20 12:31:17 +02:00
@ @ :
2010-07-29 23:20:45 +02:00
cmp ah , 1
jne still
.exit:
stdcall [ buf2d_delete ], buf_fon ;㤠<> 塞 <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
stdcall [ buf2d_delete ], buf_displ ;㤠<> 塞 <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
2010-09-08 21:06:14 +02:00
stdcall [ buf2d_delete ], buf_tree_sys
2010-07-29 23:20:45 +02:00
stdcall [ buf2d_delete ], buf_font
cld
2010-08-03 16:28:39 +02:00
mov ecx , 3
mov edi , buf_decor
@ @ : ;㤠<> 塞 3 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
stdcall [ buf2d_delete ], edi
add edi , BUF_STRUCT_SIZE
loop @ b
2010-07-29 23:20:45 +02:00
mov ecx , 9
mov edi , buf_wolf
@ @ : ;㤠<> 塞 9 <20> <> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> 楬
stdcall [ buf2d_delete ], edi
add edi , BUF_STRUCT_SIZE
loop @ b
mov ecx , 13
mov edi , buf_chi
@ @ : ;㤠<> 塞 13 <20> <> <EFBFBD> <EFBFBD>
stdcall [ buf2d_delete ], edi
add edi , BUF_STRUCT_SIZE
loop @ b
mov ecx , 22
mov edi , buf_egg
@ @ : ;㤠<> 塞 22 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
stdcall [ buf2d_delete ], edi
add edi , BUF_STRUCT_SIZE
loop @ b
2010-09-08 21:06:14 +02:00
mov dword [ tree1.data_img_sys ], 0 ;<3B> <> <EFBFBD> ⨬ 㪠<> <E3AAA0> ⥫<EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> ࠦ<EFBFBD> <E0A0A6> <EFBFBD> <EFBFBD>
stdcall dword [ tl_data_clear ], tree1
2020-12-01 10:58:10 +01:00
mcall SF_TERMINATE_PROCESS
2010-07-29 23:20:45 +02:00
system_dir0 db '/sys/lib/'
2010-09-08 21:06:14 +02:00
lib0_name db 'buf2d.obj' , 0
2010-07-29 23:20:45 +02:00
system_dir1 db '/sys/lib/'
2010-09-08 21:06:14 +02:00
lib1_name db 'libimg.obj' , 0
2010-08-03 16:28:39 +02:00
system_dir2 db '/sys/lib/'
2010-09-08 21:06:14 +02:00
lib2_name db 'libini.obj' , 0
system_dir3 db '/sys/lib/'
lib3_name db 'box_lib.obj' , 0
2010-07-29 23:20:45 +02:00
;library structures
l_libs_start:
2020-12-01 10:58:10 +01:00
lib0 l_libs lib0_name , file_name , system_dir0 , import_buf2d_lib
lib1 l_libs lib1_name , file_name , system_dir1 , import_libimg
lib2 l_libs lib2_name , file_name , system_dir2 , import_libini
lib3 l_libs lib3_name , file_name , system_dir3 , import_box_lib
2010-07-29 23:20:45 +02:00
load_lib_end:
align 4
2015-11-11 00:11:17 +01:00
proc mem_copy uses ecx esi edi , source : dword , destination : dword , len : dword
cld
2020-12-01 10:58:10 +01:00
mov esi , [ source ]
mov edi , [ destination ]
mov ecx , [ len ]
2015-11-11 00:11:17 +01:00
rep movsb
ret
2010-07-29 23:20:45 +02:00
endp
2020-12-01 10:58:10 +01:00
;input:
; eax - <20> <>
; edi - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> ப<EFBFBD>
2010-07-29 23:20:45 +02:00
align 4
convert_to_str:
pushad
2020-12-01 10:58:10 +01:00
lea esi ,[ edi + 8 ] ;8 - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> -1
2010-07-29 23:20:45 +02:00
call .str
popad
ret
align 4
.str:
2020-12-01 10:58:10 +01:00
mov ecx , 10
cmp eax , ecx
jb @ f
xor edx , edx
div ecx
push edx
;dec edi ;ᬥ饭<E1ACA5> <E9A5AD> <20> <> <EFBFBD> <EFBFBD> 室<EFBFBD> <E5AEA4> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ப<EFBFBD>
call .str
pop eax
@ @ :
cmp edi , esi
jge @ f
or al , 0x30
stosb
mov byte [ edi ], 0 ;<3B> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ப<EFBFBD> <20> ⠢<EFBFBD> <E2A0A2> 0, <20> <> <EFBFBD> -<2D> <> <20> <> <20> 뫠<EFBFBD> <EBABA0> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
@ @ :
ret
2010-07-29 23:20:45 +02:00
2011-08-17 13:18:45 +02:00
last_time dd 0
2010-07-29 23:20:45 +02:00
image_data dd 0 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> ८<EFBFBD> ࠧ<EFBFBD> <E0A0A7> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ⨭<EFBFBD> <E2A8AD> <20> 㭪<EFBFBD> <E3ADAA> ﬨ libimg
image_data_gray dd 0 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> ६<EFBFBD> <E0A5AC> <EFBFBD> 묨 <20> <> <EFBFBD> 묨 <20> <> <EFBFBD> <EFBFBD> ࠦ<EFBFBD> <E0A0A6> <EFBFBD> ﬨ <20> <20> <> ଠ <EFBFBD> <E0ACA0> 24-bit, <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ᮧ<> <E1AEA7> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
run_file_70 FileInfoBlock
2020-12-01 10:58:10 +01:00
hed db 'Nu pogodi 10.12.20' , 0 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
2010-07-29 23:20:45 +02:00
sc system_colors ;<3B> <> <EFBFBD> ⥬<EFBFBD> <E2A5AC> <EFBFBD> 梥<> <E6A2A5>
2010-09-08 21:06:14 +02:00
count_of_dir_list_files equ 10
el_focus dd tree1
tree1 tree_list FILE_NAME_MAX , count_of_dir_list_files + 2 , tl_key_no_edit + tl_draw_par_line + tl_list_box_mode , \
1 6 , 1 6 , 0 x8080ff , 0x0000ff , 0xffffff , 10 , 10 , 140 , 100 , 0 , 0 , 0 , el_focus , \
0 , user_is_select
align 4
buf_tree_sys:
dd 0 ;㪠<> <E3AAA0> ⥫<EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ࠦ<EFBFBD> <E0A0A6> <EFBFBD> <EFBFBD>
dw 0 ;+4 left
dw 0 ;+6 top
dd 16 ;+8 w
dd 16 * 11 ;+12 h
dd 0 ;+16 color
db 24 ;+20 bit in pixel
2010-07-29 23:20:45 +02:00
align 4
buf_font: ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> ⮬
dd 0 ;㪠<> <E3AAA0> ⥫<EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ࠦ<EFBFBD> <E0A0A6> <EFBFBD> <EFBFBD>
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
2010-08-03 16:28:39 +02:00
buf_displ:
2010-07-29 23:20:45 +02:00
dd 0 ;㪠<> <E3AAA0> ⥫<EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ࠦ<EFBFBD> <E0A0A6> <EFBFBD> <EFBFBD>
2010-08-03 16:28:39 +02:00
dw 25 , 0
dd ? ;+8 w
dd ? ;+12 h
dd 0 ;+16 color
2010-07-29 23:20:45 +02:00
db 24 ;+20 bit in pixel
2010-08-03 16:28:39 +02:00
2010-07-29 23:20:45 +02:00
align 4
2010-08-03 16:28:39 +02:00
buf_fon: ;䮭<> <E4AEAD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
2010-07-29 23:20:45 +02:00
dd 0 ;㪠<> <E3AAA0> ⥫<EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ࠦ<EFBFBD> <E0A0A6> <EFBFBD> <EFBFBD>
dw 0 ;+4 left
dw 0 ;+6 top
2010-08-03 16:28:39 +02:00
dd ? ;+8 w
dd ? ;+12 h
2010-07-29 23:20:45 +02:00
dd 0xffffff ;+16 color
db 24 ;+20 bit in pixel
align 4
2010-08-03 16:28:39 +02:00
buf_decor: ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ﬨ: <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ३<> <E0A5A9> <EFBFBD> <EFBFBD> ; <20> <20> <> <EFBFBD> <EFBFBD> 栬<EFBFBD> ; <20> <20> <> <EFBFBD> ⥭<EFBFBD> ﬨ
rb 3 * BUF_STRUCT_SIZE
2010-07-29 23:20:45 +02:00
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
2010-08-03 16:28:39 +02:00
align 4
2010-09-08 21:06:14 +02:00
import_libini:
2010-08-03 16:28:39 +02:00
dd al ib_init0
ini_get_str dd aini_get_str
ini_get_int dd aini_get_int
ini_get_color dd aini_get_color
dd 0 , 0
alib_init0 db 'lib_init' , 0
aini_get_str db 'ini_get_str' , 0
aini_get_int db 'ini_get_int' , 0
aini_get_color db 'ini_get_color' , 0
2010-07-29 23:20:45 +02:00
align 4
import_libimg:
dd al ib_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 ;<3B> <> ।<EFBFBD> <E0A5A4> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⥪<EFBFBD> ᤥ<> <E1A4A5> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ࠦ<EFBFBD> <E0A0A6> <EFBFBD> <EFBFBD>
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 ;<3B> ८<EFBFBD> ࠧ<EFBFBD> <E0A0A7> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ࠦ<EFBFBD> <E0A0A6> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> RGB
aimg_to_rgb2 db 'img_to_rgb2' , 0
aimg_decode db 'img_decode' , 0 ;<3B> <> ⮬<EFBFBD> <E2AEAC> <EFBFBD> <EFBFBD> <EFBFBD> ᪨ <20> <> ।<EFBFBD> <E0A5A4> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ଠ <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ᪨<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
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
2010-12-22 18:03:22 +01:00
buf2d_curve_bezier dd sz_buf2d_curve_bezier
2010-07-29 23:20:45 +02:00
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 ;<3B> <> ᮢ<EFBFBD> <E1AEA2> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> 㦭<EFBFBD> <E3A6AD> <EFBFBD> <EFBFBD>
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
2010-12-22 18:03:22 +01:00
sz_buf2d_curve_bezier db 'buf2d_curve_bezier' , 0
2010-07-29 23:20:45 +02:00
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
2010-09-08 21:06:14 +02:00
align 4
import_box_lib:
dd al ib_init2
;scrollbar_ver_draw dd aScrollbar_ver_draw
tl_data_init dd sz_tl_data_init
tl_data_clear dd sz_tl_data_clear
tl_info_clear dd sz_tl_info_clear
tl_key dd sz_tl_key
tl_mouse dd sz_tl_mouse
tl_draw dd sz_tl_draw
tl_info_undo dd sz_tl_info_undo
tl_info_redo dd sz_tl_info_redo
tl_node_add dd sz_tl_node_add
tl_node_set_data dd sz_tl_node_set_data
tl_node_get_data dd sz_tl_node_get_data
tl_node_delete dd sz_tl_node_delete
tl_cur_beg dd sz_tl_cur_beg
tl_cur_next dd sz_tl_cur_next
tl_cur_perv dd sz_tl_cur_perv
tl_node_close_open dd sz_tl_node_close_open
tl_node_lev_inc dd sz_tl_node_lev_inc
tl_node_lev_dec dd sz_tl_node_lev_dec
dd 0 , 0
alib_init2 db 'lib_init' , 0
;aScrollbar_ver_draw db 'scrollbar_v_draw',0
sz_tl_data_init db 'tl_data_init' , 0
sz_tl_data_clear db 'tl_data_clear' , 0
sz_tl_info_clear db 'tl_info_clear' , 0
sz_tl_key db 'tl_key' , 0
sz_tl_mouse db 'tl_mouse' , 0
sz_tl_draw db 'tl_draw' , 0
sz_tl_info_undo db 'tl_info_undo' , 0
sz_tl_info_redo db 'tl_info_redo' , 0
sz_tl_node_add db 'tl_node_add' , 0
sz_tl_node_set_data db 'tl_node_set_data' , 0
sz_tl_node_get_data db 'tl_node_get_data' , 0
sz_tl_node_delete db 'tl_node_delete' , 0
sz_tl_cur_beg db 'tl_cur_beg' , 0
sz_tl_cur_next db 'tl_cur_next' , 0
sz_tl_cur_perv db 'tl_cur_perv' , 0
sz_tl_node_close_open db 'tl_node_close_open' , 0
sz_tl_node_lev_inc db 'tl_node_lev_inc' , 0
sz_tl_node_lev_dec db 'tl_node_lev_dec' , 0
2015-11-11 00:11:17 +01:00
align 16
2010-07-29 23:20:45 +02:00
i_end:
procinfo process_information
2015-11-11 00:11:17 +01:00
rb 1024
2010-07-29 23:20:45 +02:00
stacktop:
sys_path rb 4096
file_name:
rb 4096
openfile_path:
rb 4096
filename_area:
rb 256
2012-11-09 11:42:30 +01:00
mem: