forked from KolibriOS/kolibrios
update game 'Nu pogodi': add ini file
git-svn-id: svn://kolibrios.org@1552 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
24fbc88418
commit
88d434d86d
@ -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
|
||||||
|
@ -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
|
||||||
|
5
programs/games/nu_pogodi/trunk/nu_pogod.ini
Normal file
5
programs/games/nu_pogodi/trunk/nu_pogod.ini
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
[Files]
|
||||||
|
displ_w=315
|
||||||
|
displ_h=210
|
||||||
|
[Colors]
|
||||||
|
unit=128,0,0
|
Loading…
Reference in New Issue
Block a user