forked from KolibriOS/kolibrios
'libio' and 'libini': function 'get_color' not spoil register 'ecx'
game 'Nu_pogodi': revised git-svn-id: svn://kolibrios.org@1573 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -81,12 +81,14 @@ proc libini._.get_char _f ;/////////////////////////////////////////////////////
|
|||||||
;;------------------------------------------------------------------------------------------------;;
|
;;------------------------------------------------------------------------------------------------;;
|
||||||
;< --- TBD --- ;;
|
;< --- TBD --- ;;
|
||||||
;;================================================================================================;;
|
;;================================================================================================;;
|
||||||
|
push ecx
|
||||||
mov ecx, [_f]
|
mov ecx, [_f]
|
||||||
dec [ecx + IniFile.cnt]
|
dec [ecx + IniFile.cnt]
|
||||||
jns @f
|
jns @f
|
||||||
stdcall libini._.preload_block, [_f]
|
stdcall libini._.preload_block, [_f]
|
||||||
dec [ecx + IniFile.cnt]
|
dec [ecx + IniFile.cnt]
|
||||||
@@: lodsb
|
@@: lodsb
|
||||||
|
pop ecx
|
||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
@@ -99,6 +101,7 @@ proc libini._.skip_nonblanks _f ;///////////////////////////////////////////////
|
|||||||
;;------------------------------------------------------------------------------------------------;;
|
;;------------------------------------------------------------------------------------------------;;
|
||||||
;< --- TBD --- ;;
|
;< --- TBD --- ;;
|
||||||
;;================================================================================================;;
|
;;================================================================================================;;
|
||||||
|
push ecx
|
||||||
mov ecx, [_f]
|
mov ecx, [_f]
|
||||||
@@: stdcall libini._.get_char, [_f]
|
@@: stdcall libini._.get_char, [_f]
|
||||||
cmp al, 32
|
cmp al, 32
|
||||||
@@ -114,6 +117,7 @@ proc libini._.skip_nonblanks _f ;///////////////////////////////////////////////
|
|||||||
stdcall libini._.skip_line, [_f]
|
stdcall libini._.skip_line, [_f]
|
||||||
jmp @b
|
jmp @b
|
||||||
@@: stdcall libini._.unget_char, [_f]
|
@@: stdcall libini._.unget_char, [_f]
|
||||||
|
pop ecx
|
||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
@@ -126,6 +130,7 @@ proc libini._.skip_spaces _f ;//////////////////////////////////////////////////
|
|||||||
;;------------------------------------------------------------------------------------------------;;
|
;;------------------------------------------------------------------------------------------------;;
|
||||||
;< --- TBD --- ;;
|
;< --- TBD --- ;;
|
||||||
;;================================================================================================;;
|
;;================================================================================================;;
|
||||||
|
push ecx
|
||||||
mov ecx, [_f]
|
mov ecx, [_f]
|
||||||
@@: stdcall libini._.get_char, [_f]
|
@@: stdcall libini._.get_char, [_f]
|
||||||
cmp al, 32
|
cmp al, 32
|
||||||
@@ -133,6 +138,7 @@ proc libini._.skip_spaces _f ;//////////////////////////////////////////////////
|
|||||||
cmp al, 9
|
cmp al, 9
|
||||||
je @b
|
je @b
|
||||||
@@: stdcall libini._.unget_char, [_f]
|
@@: stdcall libini._.unget_char, [_f]
|
||||||
|
pop ecx
|
||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
@@ -145,6 +151,7 @@ proc libini._.skip_line _f ;////////////////////////////////////////////////////
|
|||||||
;;------------------------------------------------------------------------------------------------;;
|
;;------------------------------------------------------------------------------------------------;;
|
||||||
;< --- TBD --- ;;
|
;< --- TBD --- ;;
|
||||||
;;================================================================================================;;
|
;;================================================================================================;;
|
||||||
|
push ecx
|
||||||
mov ecx, [_f]
|
mov ecx, [_f]
|
||||||
@@: stdcall libini._.get_char, [_f]
|
@@: stdcall libini._.get_char, [_f]
|
||||||
or al, al
|
or al, al
|
||||||
@@ -154,6 +161,7 @@ proc libini._.skip_line _f ;////////////////////////////////////////////////////
|
|||||||
cmp al, 10
|
cmp al, 10
|
||||||
jne @b
|
jne @b
|
||||||
@@: stdcall libini._.unget_char, [_f]
|
@@: stdcall libini._.unget_char, [_f]
|
||||||
|
pop ecx
|
||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
@@ -425,7 +433,7 @@ proc libini._.find_section _f, _sec_name ;//////////////////////////////////////
|
|||||||
;< eax = -1 (fail) / 0 (ok) ;;
|
;< eax = -1 (fail) / 0 (ok) ;;
|
||||||
;< [_f.pos] = new cursor position (right after ']' char if eax = 0, at the end of file otherwise) ;;
|
;< [_f.pos] = new cursor position (right after ']' char if eax = 0, at the end of file otherwise) ;;
|
||||||
;;================================================================================================;;
|
;;================================================================================================;;
|
||||||
push ebx edi
|
push ebx ecx edi
|
||||||
|
|
||||||
mov ecx, [_f]
|
mov ecx, [_f]
|
||||||
invoke file.seek, [ecx + IniFile.fh], 0, SEEK_SET
|
invoke file.seek, [ecx + IniFile.fh], 0, SEEK_SET
|
||||||
@@ -461,12 +469,12 @@ proc libini._.find_section _f, _sec_name ;//////////////////////////////////////
|
|||||||
@@:
|
@@:
|
||||||
cmp byte[edi], 0
|
cmp byte[edi], 0
|
||||||
jne .next_section
|
jne .next_section
|
||||||
pop edi ebx
|
pop edi ecx ebx
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.exit_error:
|
.exit_error:
|
||||||
pop edi ebx
|
pop edi ecx ebx
|
||||||
or eax, -1
|
or eax, -1
|
||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
|
@@ -179,7 +179,7 @@ locals
|
|||||||
loc_buf rb 40
|
loc_buf rb 40
|
||||||
endl
|
endl
|
||||||
|
|
||||||
push ebx esi edi
|
push ebx ecx esi edi
|
||||||
|
|
||||||
xor ebx, ebx
|
xor ebx, ebx
|
||||||
invoke mem.alloc, sizeof.InternalFileInfo
|
invoke mem.alloc, sizeof.InternalFileInfo
|
||||||
@@ -212,7 +212,7 @@ endl
|
|||||||
jne .exit_error.ex
|
jne .exit_error.ex
|
||||||
@@:
|
@@:
|
||||||
mov eax, ebx
|
mov eax, ebx
|
||||||
pop edi esi ebx
|
pop edi esi ecx ebx
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.exit_error.ex:
|
.exit_error.ex:
|
||||||
@@ -233,7 +233,7 @@ endl
|
|||||||
.exit_error:
|
.exit_error:
|
||||||
invoke mem.free, ebx
|
invoke mem.free, ebx
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
pop edi esi ebx
|
pop edi esi ecx ebx
|
||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
@@ -50,27 +50,24 @@ ends
|
|||||||
displ_w dd ? ;<3B><>ਭ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
displ_w dd ? ;<3B><>ਭ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
displ_h dd ? ;<3B><><EFBFBD><EFBFBD><EFBFBD><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>
|
displ_bytes dd ? ;ࠧ<><E0A0A7><EFBFBD> 1-<2D><> 䠩<><E4A0A9> <20> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD><EFBFBD>
|
||||||
;displ_bytes equ 315*210*3 ;ࠧ<><EFBFBD><EFBFBD> 1-<EFBFBD><EFBFBD> 䠩<EFBFBD><EFBFBD> <EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
offs_shadow_x dd ? ;ᤢ<EFBFBD><EFBFBD> ⥭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <20><><EFBFBD> 'x'
|
||||||
|
offs_shadow_y dd ? ;ᤢ<><E1A4A2> ⥭<><E2A5AD> <20><> <20><><EFBFBD> 'y'
|
||||||
|
|
||||||
OFFS_SHADOW_X equ 2 ;ᤢ<><E1A4A2> ⥭<><E2A5AD> <20><> <20><><EFBFBD> 'x'
|
|
||||||
OFFS_SHADOW_Y equ 2 ;ᤢ<><E1A4A2> ⥭<><E2A5AD> <20><> <20><><EFBFBD> 'y'
|
|
||||||
IMAGE_FONT_SIZE equ 128*144*3
|
IMAGE_FONT_SIZE equ 128*144*3
|
||||||
|
|
||||||
use_but equ 1
|
|
||||||
|
|
||||||
if use_but eq 1
|
|
||||||
BUT1_T equ 10 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᢥ<><E1A2A5><EFBFBD>
|
BUT1_T equ 10 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᢥ<><E1A2A5><EFBFBD>
|
||||||
BUT1_L equ 15 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <><E1ABA5>
|
BUT1_L equ 15 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <><E1ABA5>
|
||||||
BUT1_W equ 50 ;<3B><>ਭ<EFBFBD>
|
BUT1_W equ 50 ;<3B><>ਭ<EFBFBD>
|
||||||
BUT1_H equ 20 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
BUT1_H equ 20 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
BUT1_NEXT_TOP equ (BUT1_T+BUT1_H)*65536
|
BUT1_NEXT_TOP equ (BUT1_T+BUT1_H)*65536
|
||||||
end if
|
|
||||||
|
|
||||||
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>⥫쭮 ⥪<>饩)
|
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>
|
;<3B><><EFBFBD>祭<EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD> <20><> 㬮<>砭<EFBFBD><E7A0AD>
|
||||||
|
ini_def_decorat_file db 'curici.png',0
|
||||||
ini_def_unit_file db 'wolf.png',0
|
ini_def_unit_file db 'wolf.png',0
|
||||||
;<3B><><EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9><EFBFBD>
|
;<3B><><EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9><EFBFBD>
|
||||||
fn_icon0 db 'curici.png',0 ;<3B><><EFBFBD> 䠩<><E4A0A9> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ﬨ
|
fn_icon0 rb FILE_NAME_MAX ;<3B><><EFBFBD> 䠩<><E4A0A9> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ﬨ
|
||||||
fn_icon1 rb FILE_NAME_MAX ;<3B><><EFBFBD> 䠩<><E4A0A9> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>楬
|
fn_icon1 rb FILE_NAME_MAX ;<3B><><EFBFBD> 䠩<><E4A0A9> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>楬
|
||||||
fn_icon2 db 'eggs.png',0 ;<3B><><EFBFBD> 䠩<><E4A0A9> <20> <20><>栬<EFBFBD>
|
fn_icon2 db 'eggs.png',0 ;<3B><><EFBFBD> 䠩<><E4A0A9> <20> <20><>栬<EFBFBD>
|
||||||
fn_icon3 db 'chi.png',0 ;<3B><><EFBFBD> 䠩<><E4A0A9> <20> 樯<><E6A8AF>⠬<EFBFBD>
|
fn_icon3 db 'chi.png',0 ;<3B><><EFBFBD> 䠩<><E4A0A9> <20> 樯<><E6A8AF>⠬<EFBFBD>
|
||||||
@@ -78,22 +75,31 @@ fn_font db 'font8x9.bmp',0
|
|||||||
|
|
||||||
ini_name db 'nu_pogod.ini',0
|
ini_name db 'nu_pogod.ini',0
|
||||||
ini_sec_files db 'Files',0
|
ini_sec_files db 'Files',0
|
||||||
|
key_file_decorat db 'file_decorat',0
|
||||||
key_file_unit db 'file_unit',0
|
key_file_unit db 'file_unit',0
|
||||||
key_displ_w db 'displ_w',0
|
key_displ_w db 'displ_w',0
|
||||||
key_displ_h db 'displ_h',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_sec_color db 'Colors',0
|
||||||
|
;<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
|
||||||
key_color_unit db 'unit',0
|
key_color_unit db 'unit',0
|
||||||
|
|
||||||
;梥<><E6A2A5> <20> <20><><EFBFBD><EFBFBD>
|
;梥<><E6A2A5> <20> <20><><EFBFBD><EFBFBD>
|
||||||
color_fon dd 0xffffff
|
color_fon dd ? ;梥<> 䮭<>
|
||||||
color_shadows dd 0xd0d0d0 ;梥<> ⥭<><E2A5AD>
|
color_shadows dd ? ;梥<> ⥭<><E2A5AD>
|
||||||
color_trees dd 0x008000 ;梥<> <20>ࠢ<EFBFBD>
|
color_wolf dd ? ;梥<> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
color_wolf dd 0x800000 ;梥<> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
color_egg dd ? ;梥<> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
color_egg dd 0x404080 ;梥<> <20><><EFBFBD><EFBFBD>
|
color_chick dd ? ;梥<> 樯<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
color_chick dd 0x00d0d0 ;梥<> 樯<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
color_decorat dd ?,?,? ;梥<><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>権 (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><>ਫ<EFBFBD>, ...)
|
||||||
color_curici dd 0x8080d0 ;梥<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
color_perilo dd 0x000080 ;梥<> <20><>ਫ<EFBFBD> (<28>ॡ<EFBFBD><E0A5A1>)
|
|
||||||
;梥<><E6A2A5> <20><><EFBFBD><EFBFBD><EFBFBD>䥩<EFBFBD><E4A5A9>
|
;梥<><E6A2A5> <20><><EFBFBD><EFBFBD><EFBFBD>䥩<EFBFBD><E4A5A9>
|
||||||
color_but_sm dd 0x808080 ;梥<> <20><><EFBFBD><EFBFBD><EFBFBD>쪨<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
color_but_sm dd 0x808080 ;梥<> <20><><EFBFBD><EFBFBD><EFBFBD>쪨<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
color_but_te dd 0xffffff ;梥<> ⥪<><E2A5AA><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
color_but_te dd 0xffffff ;梥<> ⥪<><E2A5AA><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
@@ -136,6 +142,7 @@ mask_lot_ld equ 100000b ;
|
|||||||
mask_lot_ru equ 10000000000b ;<3B><>᪠ <20><><EFBFBD> <20>ࠢ<EFBFBD><E0A0A2><EFBFBD> <20><><EFBFBD>孥<EFBFBD><E5ADA5> <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_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>
|
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>
|
||||||
|
mask_move_eggs equ 11111111111111111111b ;<3B><>᪠ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||||
mask_fail_eggs equ 100001000010000100000b ;<3B><>᪠ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
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_left equ 11111000000000000000000000b ;<3B><>᪠ <20><><EFBFBD><EFBFBD><EFBFBD> 樯<><E6A8AF><EFBFBD>
|
||||||
mask_chi_right equ 11111000000000000000000000000000b ;<3B><>᪠ <20>ࠢ<EFBFBD><E0A0A2> 樯<><E6A8AF><EFBFBD>
|
mask_chi_right equ 11111000000000000000000000000000b ;<3B><>᪠ <20>ࠢ<EFBFBD><E0A0A2> 樯<><E6A8AF><EFBFBD>
|
||||||
@@ -149,7 +156,7 @@ val_zaac_time_n equ 7 ;
|
|||||||
txt_game_a db '<27><><EFBFBD><EFBFBD> <20>',0
|
txt_game_a db '<27><><EFBFBD><EFBFBD> <20>',0
|
||||||
txt_game_b db '<27><><EFBFBD><EFBFBD> <20>',0
|
txt_game_b db '<27><><EFBFBD><EFBFBD> <20>',0
|
||||||
|
|
||||||
zaac_status db 0
|
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>
|
||||||
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>
|
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
|
;rb 1
|
||||||
pos_eggs dd 0 ;<3B><><EFBFBD><EFBFBD>樨 <20><>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> 樯<><E6A8AF><EFBFBD>
|
pos_eggs dd 0 ;<3B><><EFBFBD><EFBFBD>樨 <20><>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> 樯<><E6A8AF><EFBFBD>
|
||||||
@@ -211,36 +218,35 @@ InitBackgroundBuffer: ;ᮧ
|
|||||||
mov esi,edi
|
mov esi,edi
|
||||||
|
|
||||||
xor eax,eax
|
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
|
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:
|
||||||
|
|
||||||
mov edi,buf_decor
|
mov edi,buf_decor
|
||||||
|
mov ebx,color_decorat
|
||||||
|
mov ecx,3
|
||||||
|
@@:
|
||||||
mov ax,buf2d_t
|
mov ax,buf2d_t
|
||||||
add eax,OFFS_SHADOW_Y
|
stdcall [buf2d_bit_blt_alpha], esi, 0,eax, edi,[ebx] ;<3B><><EFBFBD>㥬 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨
|
||||||
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><EFBFBD>
|
|
||||||
add edi,BUF_STRUCT_SIZE
|
add edi,BUF_STRUCT_SIZE
|
||||||
mov ax,buf2d_t
|
add ebx,4
|
||||||
add eax,OFFS_SHADOW_Y
|
loop @b
|
||||||
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>
|
|
||||||
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] ;<3B><><EFBFBD>㥬 ⥭<> <20><>ॢ쥢
|
|
||||||
|
|
||||||
mov edi,buf_decor
|
|
||||||
mov ax,buf2d_t
|
|
||||||
stdcall [buf2d_bit_blt_alpha], esi, 0,eax, edi,[color_perilo] ;<3B><><EFBFBD>㥬 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
add edi,BUF_STRUCT_SIZE
|
|
||||||
mov ax,buf2d_t
|
|
||||||
stdcall [buf2d_bit_blt_alpha], esi, 0,eax, edi,[color_curici] ;<3B><><EFBFBD>㥬 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
add edi,BUF_STRUCT_SIZE
|
|
||||||
mov ax,buf2d_t
|
|
||||||
stdcall [buf2d_bit_blt_alpha], esi, 0,eax, edi,[color_trees] ;<3B><><EFBFBD>㥬 <20><>ॢ<EFBFBD><E0A5A2>
|
|
||||||
popad
|
popad
|
||||||
ret
|
ret
|
||||||
|
|
||||||
@@ -510,6 +516,14 @@ MoveEggs:
|
|||||||
.no_zaac_move:
|
.no_zaac_move:
|
||||||
|
|
||||||
;ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
;ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||||
|
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
|
||||||
|
@@:
|
||||||
|
|
||||||
bt dword[rand_x],4 ;<3B><EFBFBD><E0AEA2>塞 <20>㤥<EFBFBD> <20><> ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
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
|
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>
|
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>
|
||||||
@@ -610,10 +624,34 @@ start:
|
|||||||
mov dword[displ_w],eax
|
mov dword[displ_w],eax
|
||||||
stdcall dword[ini_get_int],file_name,ini_sec_files,key_displ_h,140
|
stdcall dword[ini_get_int],file_name,ini_sec_files,key_displ_h,140
|
||||||
mov dword[displ_h],eax
|
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
|
stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_unit,0
|
||||||
mov dword[color_wolf],eax
|
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]
|
mov edx,dword[displ_w]
|
||||||
imul edx,dword[displ_h]
|
imul edx,dword[displ_h]
|
||||||
@@ -790,7 +828,6 @@ draw_window:
|
|||||||
inc esi
|
inc esi
|
||||||
.draw_s:
|
.draw_s:
|
||||||
|
|
||||||
if use_but eq 1
|
|
||||||
; *** <20><>ᮢ<EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ***
|
; *** <20><>ᮢ<EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ***
|
||||||
push esi
|
push esi
|
||||||
mov eax,8
|
mov eax,8
|
||||||
@@ -828,7 +865,6 @@ pop esi
|
|||||||
; *** <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ࠬ<EFBFBD><E0A0AC> ***
|
; *** <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ࠬ<EFBFBD><E0A0AC> ***
|
||||||
mov eax,13 ;<3B><>ᮢ<EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><>אַ㣮<EFACAE>쭨<EFBFBD><ECADA8>
|
mov eax,13 ;<3B><>ᮢ<EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><>אַ㣮<EFACAE>쭨<EFBFBD><ECADA8>
|
||||||
mov edx,[sc.work]
|
mov edx,[sc.work]
|
||||||
end if
|
|
||||||
|
|
||||||
mov ebx,esi
|
mov ebx,esi
|
||||||
mov ecx,dword[procinfo.client_box.height]
|
mov ecx,dword[procinfo.client_box.height]
|
||||||
@@ -863,7 +899,7 @@ draw_display:
|
|||||||
push eax
|
push eax
|
||||||
mov eax,dword[displ_w]
|
mov eax,dword[displ_w]
|
||||||
shr eax,1
|
shr eax,1
|
||||||
stdcall [buf2d_draw_text], buf_displ, buf_font,game_text,eax,OFFS_SHADOW_X,[color_curici] ;<3B><><EFBFBD>㥬 <20><>ப<EFBFBD> <20> ⥪<>⮬
|
stdcall [buf2d_draw_text], buf_displ, buf_font,game_text,eax,[offs_shadow_x],[color_wolf] ;<3B><><EFBFBD>㥬 <20><>ப<EFBFBD> <20> ⥪<>⮬
|
||||||
pop eax
|
pop eax
|
||||||
stdcall [buf2d_draw], buf_displ
|
stdcall [buf2d_draw], buf_displ
|
||||||
ret
|
ret
|
||||||
@@ -871,7 +907,7 @@ pop eax
|
|||||||
align 4
|
align 4
|
||||||
button:
|
button:
|
||||||
mcall 17 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>⮩ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
mcall 17 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>⮩ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
if use_but eq 1
|
|
||||||
cmp ah,5
|
cmp ah,5
|
||||||
jne @f
|
jne @f
|
||||||
stdcall InitGame,0
|
stdcall InitGame,0
|
||||||
@@ -879,7 +915,7 @@ button:
|
|||||||
cmp ah,6
|
cmp ah,6
|
||||||
jne @f
|
jne @f
|
||||||
stdcall InitGame,1
|
stdcall InitGame,1
|
||||||
@@: end if
|
@@:
|
||||||
cmp ah,1
|
cmp ah,1
|
||||||
jne still
|
jne still
|
||||||
.exit:
|
.exit:
|
||||||
@@ -990,7 +1026,7 @@ image_data dd 0 ;
|
|||||||
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>
|
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
|
run_file_70 FileInfoBlock
|
||||||
hed db 'Nu pogodi 03.08.10',0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
hed db 'Nu pogodi 20.08.10',0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
sc system_colors ;<3B><><EFBFBD>⥬<EFBFBD><E2A5AC><EFBFBD> 梥<><E6A2A5>
|
sc system_colors ;<3B><><EFBFBD>⥬<EFBFBD><E2A5AC><EFBFBD> 梥<><E6A2A5>
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
|
@@ -1,6 +1,16 @@
|
|||||||
[Files]
|
[Files]
|
||||||
displ_w=315
|
displ_w=315
|
||||||
displ_h=210
|
displ_h=210
|
||||||
|
file_decorat=curici.png
|
||||||
file_unit=wolf.png
|
file_unit=wolf.png
|
||||||
|
offs_shadow_x=2
|
||||||
|
offs_shadow_y=2
|
||||||
[Colors]
|
[Colors]
|
||||||
unit=128,0,0
|
background=255,255,255 ;<3B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
|
shadows=200,200,200 ;<3B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
unit=64,0,0 ;<3B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
objects=64,64,128 ;<3B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
lost=0,208,208 ;<3B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
dec0=0,0,128
|
||||||
|
dec1=128,128,208
|
||||||
|
dec2=0,128,0
|
Reference in New Issue
Block a user