update game 'Nu pogodi': add ini file

git-svn-id: svn://kolibrios.org@1552 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
IgorA 2010-08-03 14:28:39 +00:00
parent 24fbc88418
commit 88d434d86d
3 changed files with 158 additions and 130 deletions

View File

@ -4,6 +4,7 @@ if not exist bin\chi.png @copy chi.png bin\chi.png
if not exist bin\curici.png @copy curici.png bin\curici.png if not exist bin\curici.png @copy curici.png bin\curici.png
if not exist bin\eggs.png @copy eggs.png bin\eggs.png if not exist bin\eggs.png @copy eggs.png bin\eggs.png
if not exist bin\wolf.png @copy wolf.png bin\wolf.png if not exist bin\wolf.png @copy wolf.png bin\wolf.png
@copy *.ini bin\*.ini
@fasm.exe -m 16384 nu_pogod.asm bin\nu_pogod.kex @fasm.exe -m 16384 nu_pogod.asm bin\nu_pogod.kex
@kpack bin\nu_pogod.kex @kpack bin\nu_pogod.kex
if not exist bin\buf2d.obj @fasm.exe -m 16384 ..\..\..\develop\libraries\buf2d\trunk\buf2d.asm bin\buf2d.obj if not exist bin\buf2d.obj @fasm.exe -m 16384 ..\..\..\develop\libraries\buf2d\trunk\buf2d.asm bin\buf2d.obj

View File

@ -47,9 +47,11 @@ struct FileInfoBlock
FileName dd ? FileName dd ?
ends ends
GAME_POLE_W equ 315 ;è¨à¨­  ¯®«ï displ_w dd ? ;è¨à¨­  ¯®«ï
GAME_POLE_H equ 210 ;¢ëá®â  ¯®«ï displ_h dd ? ;¢ëá®â  ¯®«ï
GAME_POLE_BYTES equ GAME_POLE_W*GAME_POLE_H*3 ;à §¬¥à ä ©«  á ¨§®¡à ¦¥­¨¥¬ displ_bytes dd ? ;à §¬¥à 1-£® ä ©«  á ¨§®¡à ¦¥­¨¥¬
;displ_bytes equ 315*210*3 ;à §¬¥à 1-£® ä ©«  á ¨§®¡à ¦¥­¨¥¬
OFFS_SHADOW_X equ 2 ;ᤢ¨£ ⥭¥© ¯® ®á¨ 'x' OFFS_SHADOW_X equ 2 ;ᤢ¨£ ⥭¥© ¯® ®á¨ 'x'
OFFS_SHADOW_Y equ 2 ;ᤢ¨£ ⥭¥© ¯® ®á¨ 'y' OFFS_SHADOW_Y equ 2 ;ᤢ¨£ ⥭¥© ¯® ®á¨ 'y'
IMAGE_FONT_SIZE equ 128*144*3 IMAGE_FONT_SIZE equ 128*144*3
@ -70,6 +72,13 @@ fn_icon2 db 'eggs.png',0 ;
fn_icon3 db 'chi.png',0 ;¨¬ï ä ©«  á 樯«ïâ ¬¨ fn_icon3 db 'chi.png',0 ;¨¬ï ä ©«  á 樯«ïâ ¬¨
fn_font db 'font8x9.bmp',0 fn_font db 'font8x9.bmp',0
ini_name db 'nu_pogod.ini',0
ini_sec_files db 'Files',0
key_displ_w db 'displ_w',0
key_displ_h db 'displ_h',0
ini_sec_color db 'Colors',0
key_color_unit db 'unit',0
;æ¢¥â  ¢ ¨£à¥ ;æ¢¥â  ¢ ¨£à¥
color_fon dd 0xffffff color_fon dd 0xffffff
color_shadows dd 0xd0d0d0 ;梥â ⥭¥© color_shadows dd 0xd0d0d0 ;梥â ⥭¥©
@ -81,13 +90,14 @@ color_curici dd 0x8080d0 ;梥
color_perilo dd 0x000080 ;梥⠯¥à¨«  (£à¥¡­ï) color_perilo dd 0x000080 ;梥⠯¥à¨«  (£à¥¡­ï)
;æ¢¥â  ¨­â¥àä¥©á  ;æ¢¥â  ¨­â¥à䥩á 
color_but_sm dd 0x808080 ;梥⠬ «¥­ìª¨å ª­®¯®ª color_but_sm dd 0x808080 ;梥⠬ «¥­ìª¨å ª­®¯®ª
color_but_bi dd 0x8080ff ;梥⠡®«ìè¨å ª­®¯®ª color_but_te dd 0xffffff ;梥â ⥪áâ  ­  ª­®¯ª å
macro load_image_file path,buf,size { ;¬ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥­¨© macro load_image_file path,buf,size { ;¬ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥­¨©
copy_path path,sys_path,file_name,0x0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥­¨ï stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥­¨ï
mov [buf],eax mov [buf],eax
copy_path path,sys_path,file_name,0x0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
mov eax,70 ;70-ï äã­ªæ¨ï à ¡®â  á ä ©« ¬¨ mov eax,70 ;70-ï äã­ªæ¨ï à ¡®â  á ä ©« ¬¨
mov [run_file_70.Function], 0 mov [run_file_70.Function], 0
mov [run_file_70.Position], 0 mov [run_file_70.Position], 0
@ -130,6 +140,9 @@ bit_chi_right equ 27 ;1-
val_zaac_time_y equ 5 ;ª®««¨ç¥á⢮ ⠪⮢, ª®â®à®¥ ®¡ï§ â¥«ì­® ¤®«¦¥­ ¯à®¢¨á¥âì § ïæ val_zaac_time_y equ 5 ;ª®««¨ç¥á⢮ ⠪⮢, ª®â®à®¥ ®¡ï§ â¥«ì­® ¤®«¦¥­ ¯à®¢¨á¥âì § ïæ
val_zaac_time_n equ 7 ;ª®««¨ç¥á⢮ ⠪⮢, ª®â®à®¥ ®¡ï§ â¥«ì­® ¤®«¦¥­ ¡ëâì á¯àïâ ­­ë¬ § ïæ val_zaac_time_n equ 7 ;ª®««¨ç¥á⢮ ⠪⮢, ª®â®à®¥ ®¡ï§ â¥«ì­® ¤®«¦¥­ ¡ëâì á¯àïâ ­­ë¬ § ïæ
txt_game_a db 'ˆ£à  €',0
txt_game_b db 'ˆ£à  <20>',0
zaac_status db 0 zaac_status db 0
pos_wolf db 0 ;¯®§¨æ¨ï ¢®«ª  0-© ¡¨â á«¥¢ /á¯à ¢ , 1-© ¡¨â ᢥàåã/¢­¨§ pos_wolf db 0 ;¯®§¨æ¨ï ¢®«ª  0-© ¡¨â á«¥¢ /á¯à ¢ , 1-© ¡¨â ᢥàåã/¢­¨§
;rb 1 ;rb 1
@ -162,13 +175,23 @@ pop eax
;¯® ä®­®¢®¬ã 梥âã ¨ âà ä à¥â ¡ã¤¥â § ­¨¬ â 쬭®£® ¬¥áâ  ¢ ¯ ¬ï⨠;¯® ä®­®¢®¬ã 梥âã ¨ âà ä à¥â ¡ã¤¥â § ­¨¬ â 쬭®£® ¬¥áâ  ¢ ¯ ¬ïâ¨
align 4 align 4
proc CreateTrapharetBuffer, buf:dword, img_data:dword proc CreateTrapharetBuffer, buf:dword, img_data:dword
push edi push eax edi
mov edi,dword[buf] mov edi,dword[buf]
;§ ¯®«­¥­¨¥ ¤ ­­ëå ¡ãä¥à 
mov buf2d_size_lt,0
mov eax,dword[displ_w]
mov buf2d_w,eax
mov eax,dword[displ_h]
mov buf2d_h,eax
mov buf2d_color,0xffffff
mov buf2d_bits,24
stdcall [buf2d_create_f_img], edi,[img_data] ;ᮧ¤ ¥¬ ¡ãä¥à stdcall [buf2d_create_f_img], edi,[img_data] ;ᮧ¤ ¥¬ ¡ãä¥à
stdcall [buf2d_conv_24_to_8], edi,1 ;¤¥« ¥¬ ¡ãä¥à ¯à®§à ç­®á⨠8¡¨â stdcall [buf2d_conv_24_to_8], edi,1 ;¤¥« ¥¬ ¡ãä¥à ¯à®§à ç­®á⨠8¡¨â
;®¡à¥§ ¥¬ «¨è­¨¥ ªà ï ¡ãä¥à , ¤«ï ¡®«¥¥ ¡ëáâண® à¨á®¢ ­¨ï ;®¡à¥§ ¥¬ «¨è­¨¥ ªà ï ¡ãä¥à , ¤«ï ¡®«¥¥ ¡ëáâண® à¨á®¢ ­¨ï
stdcall [buf2d_crop_color], edi,buf2d_color,BUF2D_OPT_CROP_TOP+BUF2D_OPT_CROP_BOTTOM+BUF2D_OPT_CROP_RIGHT+BUF2D_OPT_CROP_LEFT stdcall [buf2d_crop_color], edi,buf2d_color,BUF2D_OPT_CROP_TOP+BUF2D_OPT_CROP_BOTTOM+BUF2D_OPT_CROP_RIGHT+BUF2D_OPT_CROP_LEFT
pop edi pop edi eax
ret ret
endp endp
@ -184,32 +207,32 @@ InitBackgroundBuffer: ;ᮧ
xor eax,eax xor eax,eax
xor ebx,ebx xor ebx,ebx
mov edi,buf_tr_fon0 mov edi,buf_decor
mov ax,buf2d_t mov ax,buf2d_t
add eax,OFFS_SHADOW_Y add eax,OFFS_SHADOW_Y
mov bx,buf2d_l mov bx,buf2d_l
add ebx,OFFS_SHADOW_X add ebx,OFFS_SHADOW_X
stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color_shadows] ;à¨á㥬 ⥭¨ ¤®¬¨ª®¢ stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color_shadows] ;à¨á㥬 ⥭¨ ¤®¬¨ª®¢
mov edi,buf_tr_fon1 add edi,BUF_STRUCT_SIZE
mov ax,buf2d_t mov ax,buf2d_t
add eax,OFFS_SHADOW_Y add eax,OFFS_SHADOW_Y
mov bx,buf2d_l mov bx,buf2d_l
add ebx,OFFS_SHADOW_X add ebx,OFFS_SHADOW_X
stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color_shadows] ;à¨á㥬 ⥭¨ ªãà¨æ stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color_shadows] ;à¨á㥬 ⥭¨ ªãà¨æ
mov edi,buf_tr_fon2 add edi,BUF_STRUCT_SIZE
mov ax,buf2d_t mov ax,buf2d_t
add eax,OFFS_SHADOW_Y add eax,OFFS_SHADOW_Y
mov bx,buf2d_l mov bx,buf2d_l
add ebx,OFFS_SHADOW_X add ebx,OFFS_SHADOW_X
stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color_shadows] ;à¨á㥬 ⥭¨ ¤¥à¥¢ì¥¢ stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color_shadows] ;à¨á㥬 ⥭¨ ¤¥à¥¢ì¥¢
mov edi,buf_tr_fon0 mov edi,buf_decor
mov ax,buf2d_t mov ax,buf2d_t
stdcall [buf2d_bit_blt_alpha], esi, 0,eax, edi,[color_perilo] ;à¨á㥬 ¤®¬¨ª¨ stdcall [buf2d_bit_blt_alpha], esi, 0,eax, edi,[color_perilo] ;à¨á㥬 ¤®¬¨ª¨
mov edi,buf_tr_fon1 add edi,BUF_STRUCT_SIZE
mov ax,buf2d_t mov ax,buf2d_t
stdcall [buf2d_bit_blt_alpha], esi, 0,eax, edi,[color_curici] ;à¨á㥬 ªãà¨æë stdcall [buf2d_bit_blt_alpha], esi, 0,eax, edi,[color_curici] ;à¨á㥬 ªãà¨æë
mov edi,buf_tr_fon2 add edi,BUF_STRUCT_SIZE
mov ax,buf2d_t mov ax,buf2d_t
stdcall [buf2d_bit_blt_alpha], esi, 0,eax, edi,[color_trees] ;à¨á㥬 ¤¥à¥¢ìï stdcall [buf2d_bit_blt_alpha], esi, 0,eax, edi,[color_trees] ;à¨á㥬 ¤¥à¥¢ìï
popad popad
@ -533,6 +556,29 @@ proc InitGame, b:dword ;
ret ret
endp endp
align 4
proc LoadArrayBuffer, f_name:dword, buf_start:dword, count:dword
pushad
mov edx,dword[displ_bytes]
mov ecx,edx
imul ecx,dword[count]
mov eax,dword[f_name]
load_image_file eax,image_data_gray,ecx
mov edx,dword[displ_bytes]
mov eax,[image_data_gray]
mov edi,dword[buf_start]
mov ecx,dword[count]
cld
@@: ;áç¨â뢠¥¬ 3 ¡ãä¥à  á ¤¥ª®à æ¨ï¬¨
stdcall CreateTrapharetBuffer,edi,eax
add eax,edx
add edi,BUF_STRUCT_SIZE
loop @b
stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
popad
ret
endp
align 4 align 4
start: start:
load_libraries l_libs_start,load_lib_end load_libraries l_libs_start,load_lib_end
@ -552,67 +598,24 @@ start:
mcall 40,0x27 mcall 40,0x27
mcall 48,3,sc,sizeof.system_colors ;¯®«ãç ¥¬ á¨á⥬­ë¥ æ¢¥â  mcall 48,3,sc,sizeof.system_colors ;¯®«ãç ¥¬ á¨á⥬­ë¥ 梥â 
load_image_file fn_icon0,image_data_gray,3*GAME_POLE_BYTES ;à ¡®â  á ä ©«®¬ ­ áâ஥ª
mov eax,[image_data_gray] copy_path ini_name,sys_path,file_name,0x0
stdcall CreateTrapharetBuffer,buf_tr_fon0,eax stdcall dword[ini_get_int],file_name,ini_sec_files,key_displ_w,210
add eax,GAME_POLE_BYTES mov dword[displ_w],eax
stdcall CreateTrapharetBuffer,buf_tr_fon1,eax stdcall dword[ini_get_int],file_name,ini_sec_files,key_displ_h,140
add eax,GAME_POLE_BYTES mov dword[displ_h],eax
stdcall CreateTrapharetBuffer,buf_tr_fon2,eax stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_unit,0
stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì mov dword[color_wolf],eax
stdcall [buf2d_create], buf_fon ;ᮧ¤ ¥¬ ¡ãä¥à á ä®­®¢ë¬¨ ¤¥ª®à æ¨ï¬¨ mov edx,dword[displ_w]
imul edx,dword[displ_h]
lea edx,[edx+edx*2]
mov dword[displ_bytes],edx ;¢ëç¨á«ï¥¬ à §¬¥à ¨£à®¢®£® ¯®«ï
load_image_file fn_icon1,image_data_gray, 9*GAME_POLE_BYTES stdcall LoadArrayBuffer, fn_icon0, buf_decor,3 ;áç¨â뢠¥¬ 3 ¡ãä¥à  á ¤¥ª®à æ¨ï¬¨
mov eax,[image_data_gray] stdcall LoadArrayBuffer, fn_icon1, buf_wolf,9 ;áç¨â뢠¥¬ 9 ¡ãä¥à®¢ á ¢®«ª®¬ ¨ § ©æ¥¬
mov edi,buf_wolf stdcall LoadArrayBuffer, fn_icon2, buf_egg,22 ;áç¨â뢠¥¬ 22 ¡ãä¥à®¢ á ï©æ ¬¨
mov ecx,9 stdcall LoadArrayBuffer, fn_icon3, buf_chi,13 ;áç¨â뢠¥¬ 13 ¡ãä¥à®¢ á 樯«ïâ ¬¨
cld
@@: ;áç¨â뢠¥¬ 9 ¡ãä¥à®¢ á ¢®«ª®¬ ¨ § ©æ¥¬
mov buf2d_size_lt,0
mov buf2d_w,GAME_POLE_W
mov buf2d_h,GAME_POLE_H
mov buf2d_color,0xffffff
mov buf2d_bits,24
stdcall CreateTrapharetBuffer,edi,eax
add eax,GAME_POLE_BYTES
add edi,BUF_STRUCT_SIZE
loop @b
stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
load_image_file fn_icon2,image_data_gray, 22*GAME_POLE_BYTES
mov eax,[image_data_gray]
mov edi,buf_egg
mov ecx,22
cld
@@: ;áç¨â뢠¥¬ 22 ¡ãä¥à®¢ á ï©æ ¬¨
mov buf2d_size_lt,0
mov buf2d_w,GAME_POLE_W
mov buf2d_h,GAME_POLE_H
mov buf2d_color,0xffffff
mov buf2d_bits,24
stdcall CreateTrapharetBuffer,edi,eax
add eax,GAME_POLE_BYTES
add edi,BUF_STRUCT_SIZE
loop @b
stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
load_image_file fn_icon3,image_data_gray, 13*GAME_POLE_BYTES
mov eax,[image_data_gray]
mov edi,buf_chi
mov ecx,13
cld
@@: ;áç¨â뢠¥¬ 13 ¡ãä¥à®¢ á 樯«ïâ ¬¨
mov buf2d_size_lt,0
mov buf2d_w,GAME_POLE_W
mov buf2d_h,GAME_POLE_H
mov buf2d_color,0xffffff
mov buf2d_bits,24
stdcall CreateTrapharetBuffer,edi,eax
add eax,GAME_POLE_BYTES
add edi,BUF_STRUCT_SIZE
loop @b
stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
load_image_file fn_font, image_data_gray,IMAGE_FONT_SIZE load_image_file fn_font, image_data_gray,IMAGE_FONT_SIZE
stdcall [buf2d_create_f_img], buf_font,[image_data_gray] ;ᮧ¤ ¥¬ ¡ãä¥à stdcall [buf2d_create_f_img], buf_font,[image_data_gray] ;ᮧ¤ ¥¬ ¡ãä¥à
@ -626,7 +629,19 @@ start:
;add edi,BUF_STRUCT_SIZE ;¯¥à¥å®¤¨¬ ­  ¡ãä¥à ª®à§¨­ë ;add edi,BUF_STRUCT_SIZE ;¯¥à¥å®¤¨¬ ­  ¡ãä¥à ª®à§¨­ë
;stdcall [buf2d_clear],edi,0x808080 ;§ «¨¢ ¥¬ ¥£® á¥àë¬ æ¢¥â®¬ ;stdcall [buf2d_clear],edi,0x808080 ;§ «¨¢ ¥¬ ¥£® á¥àë¬ æ¢¥â®¬
mov ebx,dword[displ_w]
mov edx,dword[displ_h]
mov edi,buf_displ
mov buf2d_w,ebx
mov buf2d_h,edx
stdcall [buf2d_create], buf_displ ;ᮧ¤ ¥¬ ¡ãä¥à ¤«ï ¢ë¢®¤  ­  íªà ­ stdcall [buf2d_create], buf_displ ;ᮧ¤ ¥¬ ¡ãä¥à ¤«ï ¢ë¢®¤  ­  íªà ­
mov edi,buf_fon
mov buf2d_w,ebx
mov buf2d_h,edx
stdcall [buf2d_create], buf_fon ;ᮧ¤ ¥¬ ¡ãä¥à á ä®­®¢ë¬¨ ¤¥ª®à æ¨ï¬¨
call InitBackgroundBuffer ;§ ¯®«­ï¥¬ ¡ãä¥à á ä®­®¢ë¬¨ ¤¥ª®à æ¨ï¬¨ call InitBackgroundBuffer ;§ ¯®«­ï¥¬ ¡ãä¥à á ä®­®¢ë¬¨ ¤¥ª®à æ¨ï¬¨
stdcall InitGame,0 stdcall InitGame,0
mcall 26,9 mcall 26,9
@ -736,9 +751,9 @@ draw_window:
mcall 9,procinfo,-1 mcall 9,procinfo,-1
mov edi,buf_displ mov edi,buf_displ
mov eax,dword[procinfo.client_box.width] mov eax,dword[procinfo.client_box.width]
cmp eax,GAME_POLE_W cmp eax,dword[displ_w]
jle @f jle @f
sub eax,GAME_POLE_W sub eax,dword[displ_w]
shr eax,1 shr eax,1
mov buf2d_l,ax ;¢ë¯à ¢­¨¢ ¥¬ ¡ãä¥à ¯® 業âàã ®ª­  mov buf2d_l,ax ;¢ë¯à ¢­¨¢ ¥¬ ¡ãä¥à ¯® 業âàã ®ª­ 
@@: @@:
@ -749,7 +764,7 @@ draw_window:
mov edx,[sc.work] mov edx,[sc.work]
xor esi,esi xor esi,esi
mov si,buf2d_l mov si,buf2d_l
add esi,GAME_POLE_W add esi,dword[displ_w]
mov ebx,dword[procinfo.client_box.width] mov ebx,dword[procinfo.client_box.width]
inc ebx inc ebx
cmp esi,ebx cmp esi,ebx
@ -788,6 +803,20 @@ push esi
int 0x40 int 0x40
pop esi pop esi
mov eax,4 ; ð¡R÷ÿ-ð? ¢?ò¡¢ÿ
mov bx,BUT1_H
add ebx,3*65536;+3
mov ecx,dword[color_but_te]
or ecx,0x80000000
mov edx,txt_game_a
int 0x40
ror ebx,16
add ebx,BUT1_NEXT_TOP
ror ebx,16
mov edx,txt_game_b
int 0x40
; *** ¢®ááâ ­®¢«¥­¨¥ ¯ à ¬¥â஢ *** ; *** ¢®ááâ ­®¢«¥­¨¥ ¯ à ¬¥â஢ ***
mov eax,13 ;à¨á®¢ ­¨¥ ¯àאַ㣮«ì­¨ª  mov eax,13 ;à¨á®¢ ­¨¥ ¯àאַ㣮«ì­¨ª 
mov edx,[sc.work] mov edx,[sc.work]
@ -796,7 +825,7 @@ end if
mov ebx,esi mov ebx,esi
mov ecx,dword[procinfo.client_box.height] mov ecx,dword[procinfo.client_box.height]
inc ecx inc ecx
mov esi,GAME_POLE_H mov esi,dword[displ_h]
cmp esi,ebx cmp esi,ebx
jge @f jge @f
sub ecx,esi sub ecx,esi
@ -808,7 +837,7 @@ end if
xor ebx,ebx xor ebx,ebx
mov bx,buf2d_l mov bx,buf2d_l
mov ecx,GAME_POLE_H mov ecx,dword[displ_h]
int 0x40 ;à¨á®¢ ­¨¥ «¥¢®£® ¡®ª®¢®£® ¯®«ï int 0x40 ;à¨á®¢ ­¨¥ «¥¢®£® ¡®ª®¢®£® ¯®«ï
mcall 12,2 mcall 12,2
@ -818,22 +847,17 @@ end if
align 4 align 4
draw_display: draw_display:
stdcall mem_copy, dword[buf_fon],dword[buf_displ],GAME_POLE_BYTES ;ª®¯¨à®¢ ­¨¥ ¨§®¡à ¦¥­¨ï ¨§ ä®­®¢®£® ¡ãä¥à  stdcall mem_copy, dword[buf_fon],dword[buf_displ],315*210*3;dword[displ_bytes] ;ª®¯¨à®¢ ­¨¥ ¨§®¡à ¦¥­¨ï ¨§ ä®­®¢®£® ¡ãä¥à 
call DrawZaac call DrawZaac ;à¨á㥬 § ©æ 
call DrawWolf ;à¨á㥬 ¢®«ª  call DrawWolf ;à¨á㥬 ¢®«ª 
call DrawEggs call DrawEggs ;à¨á㥬 ï©æ 
stdcall [buf2d_draw_text], buf_displ, buf_font,game_text,GAME_POLE_W/2,OFFS_SHADOW_X,[color_curici] ;à¨á㥬 áâபã á ⥪á⮬
push eax
mov eax,dword[displ_w]
shr eax,1
stdcall [buf2d_draw_text], buf_displ, buf_font,game_text,eax,OFFS_SHADOW_X,[color_curici] ;à¨á㥬 áâபã á ⥪á⮬
pop eax
stdcall [buf2d_draw], buf_displ stdcall [buf2d_draw], buf_displ
;mov eax,4 ;à¨á®¢ ­¨¥ ⥪áâ 
;mov ebx,(GAME_POLE_W/2)*65536+OFFS_SHADOW_X
;mov ecx,[color_curici]
;or ecx,0x80000000
;mov edx,some_text
;mcall
ret ret
align 4 align 4
@ -854,13 +878,15 @@ button:
stdcall [buf2d_delete],buf_fon ;㤠«ï¥¬ ¡ãä¥à stdcall [buf2d_delete],buf_fon ;㤠«ï¥¬ ¡ãä¥à
stdcall [buf2d_delete],buf_displ ;㤠«ï¥¬ ¡ãä¥à stdcall [buf2d_delete],buf_displ ;㤠«ï¥¬ ¡ãä¥à
stdcall [buf2d_delete],buf_tr_fon0
stdcall [buf2d_delete],buf_tr_fon1
stdcall [buf2d_delete],buf_tr_fon2
stdcall [buf2d_delete],buf_font stdcall [buf2d_delete],buf_font
cld cld
mov ecx,3
mov edi,buf_decor
@@: ;㤠«ï¥¬ 3 ¡ãä¥à 
stdcall [buf2d_delete],edi
add edi,BUF_STRUCT_SIZE
loop @b
mov ecx,9 mov ecx,9
mov edi,buf_wolf mov edi,buf_wolf
@@: ;㤠«ï¥¬ 9 ¡ãä¥à®¢ á ¢®«ª®¬ ¨ § ©æ¥¬ @@: ;㤠«ï¥¬ 9 ¡ãä¥à®¢ á ¢®«ª®¬ ¨ § ©æ¥¬
@ -895,10 +921,16 @@ name_libimg db 'libimg.obj',0
err_message_found_lib1 db '<27>¥ 㤠«®áì ­ ©â¨ ¡¨¡«¨®â¥ªã libimg.obj',0 err_message_found_lib1 db '<27>¥ 㤠«®áì ­ ©â¨ ¡¨¡«¨®â¥ªã libimg.obj',0
err_message_import1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ libimg.obj',0 err_message_import1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ libimg.obj',0
system_dir2 db '/sys/lib/'
libini_name db 'libini.obj',0
err_message_found_lib2 db '<27>¥ 㤠«®áì ­ ©â¨ ¡¨¡«¨®â¥ªã libini.obj',0
err_message_import2 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ libini.obj',0
;library structures ;library structures
l_libs_start: l_libs_start:
lib0 l_libs name_buf2d, sys_path, file_name, system_dir0, err_message_found_lib0, head_f_l, import_buf2d_lib, err_message_import0, head_f_i lib0 l_libs name_buf2d, sys_path, file_name, system_dir0, err_message_found_lib0, head_f_l, import_buf2d_lib, err_message_import0, head_f_i
lib1 l_libs name_libimg, sys_path, file_name, system_dir1, err_message_found_lib1, head_f_l, import_libimg, err_message_import1, head_f_i lib1 l_libs name_libimg, sys_path, file_name, system_dir1, err_message_found_lib1, head_f_l, import_libimg, err_message_import1, head_f_i
lib2 l_libs libini_name, sys_path, file_name, system_dir2, err_message_found_lib2, head_f_l, libini_import, err_message_import2, head_f_i
load_lib_end: load_lib_end:
align 4 align 4
@ -950,19 +982,9 @@ image_data dd 0 ;
image_data_gray dd 0 ;¯ ¬ïâì á ¢à¥¬¥­­ë¬¨ á¥à묨 ¨§®¡à ¦¥­¨ï¬¨ ¢ ä®à¬ â¥ 24-bit, ¨§ ª®â®àëå ¡ã¤ãâ ᮧ¤ ¢ âìáï âà ä à¥âë image_data_gray dd 0 ;¯ ¬ïâì á ¢à¥¬¥­­ë¬¨ á¥à묨 ¨§®¡à ¦¥­¨ï¬¨ ¢ ä®à¬ â¥ 24-bit, ¨§ ª®â®àëå ¡ã¤ãâ ᮧ¤ ¢ âìáï âà ä à¥âë
run_file_70 FileInfoBlock run_file_70 FileInfoBlock
hed db 'Nu pogodi 30.07.10',0 ;¯®¤¯¨áì ®ª­  hed db 'Nu pogodi 03.08.10',0 ;¯®¤¯¨áì ®ª­ 
sc system_colors ;á¨á⥬­ë¥ æ¢¥â  sc system_colors ;á¨á⥬­ë¥ 梥â 
align 4
buf_fon: ;ä®­®¢ë© ¡ãä¥à
dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
dw 0 ;+4 left
dw 0 ;+6 top
dd GAME_POLE_W ;+8 w
dd GAME_POLE_H ;+12 h
dd 0xffffff ;+16 color
db 24 ;+20 bit in pixel
align 4 align 4
buf_font: ;¡ãä¥à á® èà¨ä⮬ buf_font: ;¡ãä¥à á® èà¨ä⮬
dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
@ -974,41 +996,27 @@ buf_font: ;
db 24 ;+20 bit in pixel db 24 ;+20 bit in pixel
align 4 align 4
buf_tr_fon0: ;¡ãä¥à á ¤®¬¨ª ¬¨ ¨ ३ª ¬¨ buf_displ:
dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
dw 0 ;+4 left dw 25,0
dw 0 ;+6 top dd ? ;+8 w
dd GAME_POLE_W ;+8 w dd ? ;+12 h
dd GAME_POLE_H ;+12 h dd 0 ;+16 color
dd 0xffffff ;+16 color
db 24 ;+20 bit in pixel db 24 ;+20 bit in pixel
align 4 align 4
buf_tr_fon1: ;¡ãä¥à á ªãà¨æ ¬¨ buf_fon: ;ä®­®¢ë© ¡ãä¥à
dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
dw 0 ;+4 left dw 0 ;+4 left
dw 0 ;+6 top dw 0 ;+6 top
dd GAME_POLE_W ;+8 w dd ? ;+8 w
dd GAME_POLE_H ;+12 h dd ? ;+12 h
dd 0xffffff ;+16 color
db 24 ;+20 bit in pixel
align 4
buf_tr_fon2: ;¡ãä¥à á à á⥭¨ï¬¨
dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
dw 0 ;+4 left
dw 0 ;+6 top
dd GAME_POLE_W ;+8 w
dd GAME_POLE_H ;+12 h
dd 0xffffff ;+16 color dd 0xffffff ;+16 color
db 24 ;+20 bit in pixel db 24 ;+20 bit in pixel
align 4 align 4
buf_displ: buf_decor: ;¡ãä¥à  á ¤¥ª®à æ¨ï¬¨: ¤®¬¨ª ¬¨ ¨ ३ª ¬¨; á ªãà¨æ ¬¨; á à á⥭¨ï¬¨
dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï rb 3*BUF_STRUCT_SIZE
dw 25,0
dd GAME_POLE_W ;+8 w
dd GAME_POLE_H ;+12 h
dd 0 ;+16 color
db 24 ;+20 bit in pixel
align 4 align 4
buf_wolf: buf_wolf:
@ -1022,6 +1030,20 @@ align 4
buf_chi: buf_chi:
rb 13*BUF_STRUCT_SIZE rb 13*BUF_STRUCT_SIZE
align 4
libini_import:
dd alib_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
align 4 align 4
import_libimg: import_libimg:
dd alib_init1 dd alib_init1

View File

@ -0,0 +1,5 @@
[Files]
displ_w=315
displ_h=210
[Colors]
unit=128,0,0