Subversion Repositories Kolibri OS

Rev

Rev 1538 | Rev 1555 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1538 Rev 1552
Line 45... Line 45...
45
	Buffer	 dd ?
45
	Buffer	 dd ?
46
		db ?
46
		db ?
47
	FileName dd ?
47
	FileName dd ?
48
ends
48
ends
Line 49... Line 49...
49
 
49
 
50
GAME_POLE_W equ 315 ;è¨à¨­  ¯®«ï
50
displ_w dd ? ;è¨à¨­  ¯®«ï
-
 
51
displ_h dd ? ;¢ëá®â  ¯®«ï
51
GAME_POLE_H equ 210 ;¢ëá®â  ¯®«ï
52
displ_bytes dd ? ;à §¬¥à 1-£® ä ©«  á ¨§®¡à ¦¥­¨¥¬
-
 
53
;displ_bytes equ 315*210*3 ;à §¬¥à 1-£® ä ©«  á ¨§®¡à ¦¥­¨¥¬
52
GAME_POLE_BYTES equ GAME_POLE_W*GAME_POLE_H*3 ;à §¬¥à ä ©«  á ¨§®¡à ¦¥­¨¥¬
54
 
53
OFFS_SHADOW_X equ 2 ;ᤢ¨£ ⥭¥© ¯® ®á¨ 'x'
55
OFFS_SHADOW_X equ 2 ;ᤢ¨£ ⥭¥© ¯® ®á¨ 'x'
54
OFFS_SHADOW_Y equ 2 ;ᤢ¨£ ⥭¥© ¯® ®á¨ 'y'
56
OFFS_SHADOW_Y equ 2 ;ᤢ¨£ ⥭¥© ¯® ®á¨ 'y'
Line 55... Line 57...
55
IMAGE_FONT_SIZE equ 128*144*3
57
IMAGE_FONT_SIZE equ 128*144*3
Line 68... Line 70...
68
fn_icon1 db 'wolf.png',0 ;¨¬ï ä ©«  á ¢®«ª®¬ ¨ § ©æ¥¬
70
fn_icon1 db 'wolf.png',0 ;¨¬ï ä ©«  á ¢®«ª®¬ ¨ § ©æ¥¬
69
fn_icon2 db 'eggs.png',0 ;¨¬ï ä ©«  á ï©æ ¬¨
71
fn_icon2 db 'eggs.png',0 ;¨¬ï ä ©«  á ï©æ ¬¨
70
fn_icon3 db 'chi.png',0 ;¨¬ï ä ©«  á 樯«ïâ ¬¨
72
fn_icon3 db 'chi.png',0 ;¨¬ï ä ©«  á 樯«ïâ ¬¨
71
fn_font db 'font8x9.bmp',0
73
fn_font db 'font8x9.bmp',0
Line -... Line 74...
-
 
74
 
-
 
75
ini_name db 'nu_pogod.ini',0
-
 
76
ini_sec_files db 'Files',0
-
 
77
key_displ_w db 'displ_w',0
-
 
78
key_displ_h db 'displ_h',0
-
 
79
ini_sec_color db 'Colors',0
-
 
80
key_color_unit db 'unit',0
72
 
81
 
73
;æ¢¥â  ¢ ¨£à¥
82
;æ¢¥â  ¢ ¨£à¥
74
color_fon dd 0xffffff
83
color_fon dd 0xffffff
75
color_shadows dd 0xd0d0d0 ;梥â ⥭¥©
84
color_shadows dd 0xd0d0d0 ;梥â ⥭¥©
76
color_trees dd 0x008000 ;梥â âà ¢ë
85
color_trees dd 0x008000 ;梥â âà ¢ë
Line 79... Line 88...
79
color_chick dd 0x00d0d0 ;梥â 樯«¥­ª 
88
color_chick dd 0x00d0d0 ;梥â 樯«¥­ª 
80
color_curici dd 0x8080d0 ;梥⠪ãà¨æë
89
color_curici dd 0x8080d0 ;梥⠪ãà¨æë
81
color_perilo dd 0x000080 ;梥⠯¥à¨«  (£à¥¡­ï)
90
color_perilo dd 0x000080 ;梥⠯¥à¨«  (£à¥¡­ï)
82
;æ¢¥â  ¨­â¥à䥩á 
91
;æ¢¥â  ¨­â¥à䥩á 
83
color_but_sm dd 0x808080 ;梥⠬ «¥­ìª¨å ª­®¯®ª
92
color_but_sm dd 0x808080 ;梥⠬ «¥­ìª¨å ª­®¯®ª
84
color_but_bi dd 0x8080ff ;梥⠡®«ìè¨å ª­®¯®ª
93
color_but_te dd 0xffffff ;梥â ⥪áâ  ­  ª­®¯ª å
Line 85... Line 94...
85
 
94
 
-
 
95
macro load_image_file path,buf,size { ;¬ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥­¨©
-
 
96
	copy_path path,sys_path,file_name,0x0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
86
macro load_image_file path,buf,size { ;¬ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥­¨©
97
 
87
	stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥­¨ï
98
	stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥­¨ï
Line 88... Line -...
88
	mov [buf],eax
-
 
89
 
99
	mov [buf],eax
90
	copy_path path,sys_path,file_name,0x0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
100
 
91
	mov eax,70 ;70-ï äã­ªæ¨ï à ¡®â  á ä ©« ¬¨
101
	mov eax,70 ;70-ï äã­ªæ¨ï à ¡®â  á ä ©« ¬¨
92
	mov [run_file_70.Function], 0
102
	mov [run_file_70.Function], 0
93
	mov [run_file_70.Position], 0
103
	mov [run_file_70.Position], 0
Line 128... Line 138...
128
bit_chi_left  equ 21 ;1-© ¡¨â ª®â®àë© ®â¢¥ç ¥â §  ¡¥£ã饣® á«¥¢ 
138
bit_chi_left  equ 21 ;1-© ¡¨â ª®â®àë© ®â¢¥ç ¥â §  ¡¥£ã饣® á«¥¢ 
129
bit_chi_right equ 27 ;1-© ¡¨â ª®â®àë© ®â¢¥ç ¥â §  ¡¥£ã饣® ¯à ¢ 
139
bit_chi_right equ 27 ;1-© ¡¨â ª®â®àë© ®â¢¥ç ¥â §  ¡¥£ã饣® ¯à ¢ 
130
val_zaac_time_y equ 5 ;ª®««¨ç¥á⢮ ⠪⮢, ª®â®à®¥ ®¡ï§ â¥«ì­® ¤®«¦¥­ ¯à®¢¨á¥âì § ïæ
140
val_zaac_time_y equ 5 ;ª®««¨ç¥á⢮ ⠪⮢, ª®â®à®¥ ®¡ï§ â¥«ì­® ¤®«¦¥­ ¯à®¢¨á¥âì § ïæ
131
val_zaac_time_n equ 7 ;ª®««¨ç¥á⢮ ⠪⮢, ª®â®à®¥ ®¡ï§ â¥«ì­® ¤®«¦¥­ ¡ëâì á¯àïâ ­­ë¬ § ïæ
141
val_zaac_time_n equ 7 ;ª®««¨ç¥á⢮ ⠪⮢, ª®â®à®¥ ®¡ï§ â¥«ì­® ¤®«¦¥­ ¡ëâì á¯àïâ ­­ë¬ § ïæ
Line -... Line 142...
-
 
142
 
-
 
143
txt_game_a db 'ˆ£à  €',0
-
 
144
txt_game_b db 'ˆ£à  ',0
132
 
145
 
133
zaac_status db 0
146
zaac_status db 0
134
pos_wolf db 0 ;¯®§¨æ¨ï ¢®«ª  0-© ¡¨â á«¥¢ /á¯à ¢ , 1-© ¡¨â ᢥàåã/¢­¨§
147
pos_wolf db 0 ;¯®§¨æ¨ï ¢®«ª  0-© ¡¨â á«¥¢ /á¯à ¢ , 1-© ¡¨â ᢥàåã/¢­¨§
135
;rb 1
148
;rb 1
136
pos_eggs dd 0 ;¯®§¨æ¨¨ à á¯®«®¦¥­¨ï ï¨æ ¨ 樯«ïâ
149
pos_eggs dd 0 ;¯®§¨æ¨¨ à á¯®«®¦¥­¨ï ï¨æ ¨ 樯«ïâ
Line 160... Line 173...
160
;£¤¥ buf - ¡ãä¥à ­  ®á­®¢¥ ª®â®à®£® ¡ã¤¥â ᮧ¤ ­ âà ä à¥â
173
;£¤¥ buf - ¡ãä¥à ­  ®á­®¢¥ ª®â®à®£® ¡ã¤¥â ᮧ¤ ­ âà ä à¥â
161
;ä®­®¢ë© 梥⠡ãä¥à  ¤®«¦¥­ ¡ëâì 0xffffff, ¨­ ç¥ ­¥ ¯à®¨§®©¤¥â ®¡à¥§ª 
174
;ä®­®¢ë© 梥⠡ãä¥à  ¤®«¦¥­ ¡ëâì 0xffffff, ¨­ ç¥ ­¥ ¯à®¨§®©¤¥â ®¡à¥§ª 
162
;¯® ä®­®¢®¬ã 梥âã ¨ âà ä à¥â ¡ã¤¥â § ­¨¬ â 쬭®£® ¬¥áâ  ¢ ¯ ¬ïâ¨
175
;¯® ä®­®¢®¬ã 梥âã ¨ âà ä à¥â ¡ã¤¥â § ­¨¬ â 쬭®£® ¬¥áâ  ¢ ¯ ¬ïâ¨
163
align 4
176
align 4
164
proc CreateTrapharetBuffer, buf:dword, img_data:dword
177
proc CreateTrapharetBuffer, buf:dword, img_data:dword
165
	push edi
178
	push eax edi
166
	mov edi,dword[buf]
179
	mov edi,dword[buf]
-
 
180
 
-
 
181
	;§ ¯®«­¥­¨¥ ¤ ­­ëå ¡ãä¥à 
-
 
182
	mov buf2d_size_lt,0
-
 
183
	mov eax,dword[displ_w]
-
 
184
	mov buf2d_w,eax
-
 
185
	mov eax,dword[displ_h]
-
 
186
	mov buf2d_h,eax
-
 
187
	mov buf2d_color,0xffffff
-
 
188
	mov buf2d_bits,24
-
 
189
 
167
	stdcall [buf2d_create_f_img], edi,[img_data] ;ᮧ¤ ¥¬ ¡ãä¥à
190
	stdcall [buf2d_create_f_img], edi,[img_data] ;ᮧ¤ ¥¬ ¡ãä¥à
168
	stdcall [buf2d_conv_24_to_8], edi,1 ;¤¥« ¥¬ ¡ãä¥à ¯à®§à ç­®á⨠8¡¨â
191
	stdcall [buf2d_conv_24_to_8], edi,1 ;¤¥« ¥¬ ¡ãä¥à ¯à®§à ç­®á⨠8¡¨â
169
	;®¡à¥§ ¥¬ «¨è­¨¥ ªà ï ¡ãä¥à , ¤«ï ¡®«¥¥ ¡ëáâண® à¨á®¢ ­¨ï
192
	;®¡à¥§ ¥¬ «¨è­¨¥ ªà ï ¡ãä¥à , ¤«ï ¡®«¥¥ ¡ëáâண® à¨á®¢ ­¨ï
170
	stdcall [buf2d_crop_color], edi,buf2d_color,BUF2D_OPT_CROP_TOP+BUF2D_OPT_CROP_BOTTOM+BUF2D_OPT_CROP_RIGHT+BUF2D_OPT_CROP_LEFT
193
	stdcall [buf2d_crop_color], edi,buf2d_color,BUF2D_OPT_CROP_TOP+BUF2D_OPT_CROP_BOTTOM+BUF2D_OPT_CROP_RIGHT+BUF2D_OPT_CROP_LEFT
171
	pop edi
194
	pop edi eax
172
	ret
195
	ret
173
endp
196
endp
Line 174... Line 197...
174
 
197
 
175
align 4
198
align 4
Line 182... Line 205...
182
	mov esi,edi
205
	mov esi,edi
Line 183... Line 206...
183
 
206
 
184
	xor eax,eax
207
	xor eax,eax
Line 185... Line 208...
185
	xor ebx,ebx
208
	xor ebx,ebx
186
 
209
 
187
	mov edi,buf_tr_fon0
210
	mov edi,buf_decor
188
	mov ax,buf2d_t
211
	mov ax,buf2d_t
189
	add eax,OFFS_SHADOW_Y
212
	add eax,OFFS_SHADOW_Y
190
	mov bx,buf2d_l
213
	mov bx,buf2d_l
191
	add ebx,OFFS_SHADOW_X
214
	add ebx,OFFS_SHADOW_X
192
	stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color_shadows] ;à¨á㥬 ⥭¨ ¤®¬¨ª®¢
215
	stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color_shadows] ;à¨á㥬 ⥭¨ ¤®¬¨ª®¢
193
	mov edi,buf_tr_fon1
216
	add edi,BUF_STRUCT_SIZE
194
	mov ax,buf2d_t
217
	mov ax,buf2d_t
195
	add eax,OFFS_SHADOW_Y
218
	add eax,OFFS_SHADOW_Y
196
	mov bx,buf2d_l
219
	mov bx,buf2d_l
197
	add ebx,OFFS_SHADOW_X
220
	add ebx,OFFS_SHADOW_X
198
	stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color_shadows] ;à¨á㥬 ⥭¨ ªãà¨æ
221
	stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color_shadows] ;à¨á㥬 ⥭¨ ªãà¨æ
199
	mov edi,buf_tr_fon2
222
	add edi,BUF_STRUCT_SIZE
200
	mov ax,buf2d_t
223
	mov ax,buf2d_t
201
	add eax,OFFS_SHADOW_Y
224
	add eax,OFFS_SHADOW_Y
202
	mov bx,buf2d_l
225
	mov bx,buf2d_l
Line 203... Line 226...
203
	add ebx,OFFS_SHADOW_X
226
	add ebx,OFFS_SHADOW_X
204
	stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color_shadows] ;à¨á㥬 ⥭¨ ¤¥à¥¢ì¥¢
227
	stdcall [buf2d_bit_blt_alpha], esi, ebx,eax, edi,[color_shadows] ;à¨á㥬 ⥭¨ ¤¥à¥¢ì¥¢
205
 
228
 
206
	mov edi,buf_tr_fon0
229
	mov edi,buf_decor
207
	mov ax,buf2d_t
230
	mov ax,buf2d_t
208
	stdcall [buf2d_bit_blt_alpha], esi, 0,eax, edi,[color_perilo] ;à¨á㥬 ¤®¬¨ª¨
231
	stdcall [buf2d_bit_blt_alpha], esi, 0,eax, edi,[color_perilo] ;à¨á㥬 ¤®¬¨ª¨
209
	mov edi,buf_tr_fon1
232
	add edi,BUF_STRUCT_SIZE
210
	mov ax,buf2d_t
233
	mov ax,buf2d_t
211
	stdcall [buf2d_bit_blt_alpha], esi, 0,eax, edi,[color_curici] ;à¨á㥬 ªãà¨æë
234
	stdcall [buf2d_bit_blt_alpha], esi, 0,eax, edi,[color_curici] ;à¨á㥬 ªãà¨æë
212
	mov edi,buf_tr_fon2
235
	add edi,BUF_STRUCT_SIZE
213
	mov ax,buf2d_t
236
	mov ax,buf2d_t
Line 532... Line 555...
532
 
555
 
533
	ret
556
	ret
Line 534... Line 557...
534
endp
557
endp
-
 
558
 
-
 
559
align 4
-
 
560
proc LoadArrayBuffer, f_name:dword, buf_start:dword, count:dword
-
 
561
	pushad
-
 
562
	mov edx,dword[displ_bytes]
-
 
563
	mov ecx,edx
-
 
564
	imul ecx,dword[count]
-
 
565
	mov eax,dword[f_name]
-
 
566
	load_image_file eax,image_data_gray,ecx
-
 
567
		mov edx,dword[displ_bytes]
-
 
568
		mov eax,[image_data_gray]
-
 
569
		mov edi,dword[buf_start]
-
 
570
		mov ecx,dword[count]
-
 
571
		cld
-
 
572
		@@: ;áç¨â뢠¥¬ 3 ¡ãä¥à  á ¤¥ª®à æ¨ï¬¨
-
 
573
			stdcall CreateTrapharetBuffer,edi,eax
-
 
574
			add eax,edx
-
 
575
			add edi,BUF_STRUCT_SIZE
-
 
576
			loop @b
-
 
577
	stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
-
 
578
	popad
-
 
579
	ret
-
 
580
endp
535
 
581
 
536
align 4
582
align 4
Line 537... Line 583...
537
start:
583
start:
538
	load_libraries l_libs_start,load_lib_end
584
	load_libraries l_libs_start,load_lib_end
Line 550... Line 596...
550
	@@:
596
	@@:
Line 551... Line 597...
551
 
597
 
552
	mcall 40,0x27
598
	mcall 40,0x27
Line 553... Line 599...
553
	mcall 48,3,sc,sizeof.system_colors ;¯®«ãç ¥¬ á¨á⥬­ë¥ 梥â 
599
	mcall 48,3,sc,sizeof.system_colors ;¯®«ãç ¥¬ á¨á⥬­ë¥ 梥â 
554
 
-
 
555
	load_image_file fn_icon0,image_data_gray,3*GAME_POLE_BYTES
600
 
556
		mov eax,[image_data_gray]
-
 
557
		stdcall CreateTrapharetBuffer,buf_tr_fon0,eax
601
	;à ¡®â  á ä ©«®¬ ­ áâ஥ª
558
		add eax,GAME_POLE_BYTES
602
	copy_path ini_name,sys_path,file_name,0x0
559
		stdcall CreateTrapharetBuffer,buf_tr_fon1,eax
-
 
560
		add eax,GAME_POLE_BYTES
603
	stdcall dword[ini_get_int],file_name,ini_sec_files,key_displ_w,210
561
		stdcall CreateTrapharetBuffer,buf_tr_fon2,eax
-
 
562
	stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
-
 
563
 
-
 
564
	stdcall [buf2d_create], buf_fon ;ᮧ¤ ¥¬ ¡ãä¥à á ä®­®¢ë¬¨ ¤¥ª®à æ¨ï¬¨
-
 
565
 
604
	mov	dword[displ_w],eax
566
	load_image_file fn_icon1,image_data_gray, 9*GAME_POLE_BYTES
-
 
567
		mov eax,[image_data_gray]
-
 
568
		mov edi,buf_wolf
-
 
569
		mov ecx,9
605
	stdcall dword[ini_get_int],file_name,ini_sec_files,key_displ_h,140
570
		cld
-
 
571
		@@: ;áç¨â뢠¥¬ 9 ¡ãä¥à®¢ á ¢®«ª®¬ ¨ § ©æ¥¬
-
 
572
			mov buf2d_size_lt,0
-
 
573
			mov buf2d_w,GAME_POLE_W
606
	mov	dword[displ_h],eax
574
			mov buf2d_h,GAME_POLE_H
-
 
575
			mov buf2d_color,0xffffff
-
 
576
			mov buf2d_bits,24
-
 
577
			stdcall CreateTrapharetBuffer,edi,eax
-
 
578
			add eax,GAME_POLE_BYTES
-
 
579
			add edi,BUF_STRUCT_SIZE
-
 
580
			loop @b
607
	stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_unit,0
581
	stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
-
 
582
 
608
	mov	dword[color_wolf],eax
583
	load_image_file fn_icon2,image_data_gray, 22*GAME_POLE_BYTES
-
 
584
		mov eax,[image_data_gray]
-
 
585
		mov edi,buf_egg
-
 
586
		mov ecx,22
-
 
587
		cld
-
 
588
		@@: ;áç¨â뢠¥¬ 22 ¡ãä¥à®¢ á ï©æ ¬¨
609
 
589
			mov buf2d_size_lt,0
-
 
590
			mov buf2d_w,GAME_POLE_W
-
 
591
			mov buf2d_h,GAME_POLE_H
610
	mov edx,dword[displ_w]
592
			mov buf2d_color,0xffffff
-
 
593
			mov buf2d_bits,24
-
 
594
			stdcall CreateTrapharetBuffer,edi,eax
-
 
595
			add eax,GAME_POLE_BYTES
-
 
596
			add edi,BUF_STRUCT_SIZE
611
	imul edx,dword[displ_h]
597
			loop @b
612
	lea edx,[edx+edx*2]
598
	stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
613
	mov dword[displ_bytes],edx ;¢ëç¨á«ï¥¬ à §¬¥à ¨£à®¢®£® ¯®«ï
599
 
-
 
600
	load_image_file fn_icon3,image_data_gray, 13*GAME_POLE_BYTES
-
 
601
		mov eax,[image_data_gray]
-
 
602
		mov edi,buf_chi
-
 
603
		mov ecx,13
614
 
604
		cld
-
 
605
		@@: ;áç¨â뢠¥¬ 13 ¡ãä¥à®¢ á 樯«ïâ ¬¨
-
 
606
			mov buf2d_size_lt,0
-
 
607
			mov buf2d_w,GAME_POLE_W
-
 
608
			mov buf2d_h,GAME_POLE_H
-
 
609
			mov buf2d_color,0xffffff
615
	stdcall LoadArrayBuffer, fn_icon0, buf_decor,3 ;áç¨â뢠¥¬ 3 ¡ãä¥à  á ¤¥ª®à æ¨ï¬¨
610
			mov buf2d_bits,24
-
 
611
			stdcall CreateTrapharetBuffer,edi,eax
-
 
612
			add eax,GAME_POLE_BYTES
-
 
613
			add edi,BUF_STRUCT_SIZE
616
	stdcall LoadArrayBuffer, fn_icon1, buf_wolf,9 ;áç¨â뢠¥¬ 9 ¡ãä¥à®¢ á ¢®«ª®¬ ¨ § ©æ¥¬
Line 614... Line 617...
614
			loop @b
617
	stdcall LoadArrayBuffer, fn_icon2, buf_egg,22 ;áç¨â뢠¥¬ 22 ¡ãä¥à®¢ á ï©æ ¬¨
615
	stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
618
	stdcall LoadArrayBuffer, fn_icon3, buf_chi,13 ;áç¨â뢠¥¬ 13 ¡ãä¥à®¢ á 樯«ïâ ¬¨
616
 
619
 
Line 624... Line 627...
624
;¯à®¢¥àª  § ­¨¬ ¥¬®£® ¡ãä¥à®¬ ¬¥áâ 
627
;¯à®¢¥àª  § ­¨¬ ¥¬®£® ¡ãä¥à®¬ ¬¥áâ 
625
;mov edi,buf_wolf
628
;mov edi,buf_wolf
626
;add edi,BUF_STRUCT_SIZE ;¯¥à¥å®¤¨¬ ­  ¡ãä¥à ª®à§¨­ë
629
;add edi,BUF_STRUCT_SIZE ;¯¥à¥å®¤¨¬ ­  ¡ãä¥à ª®à§¨­ë
627
;stdcall [buf2d_clear],edi,0x808080 ;§ «¨¢ ¥¬ ¥£® á¥àë¬ æ¢¥â®¬
630
;stdcall [buf2d_clear],edi,0x808080 ;§ «¨¢ ¥¬ ¥£® á¥àë¬ æ¢¥â®¬
Line -... Line 631...
-
 
631
 
-
 
632
	mov ebx,dword[displ_w]
-
 
633
	mov edx,dword[displ_h]
-
 
634
 
-
 
635
	mov edi,buf_displ
-
 
636
	mov buf2d_w,ebx
628
 
637
	mov buf2d_h,edx
-
 
638
	stdcall [buf2d_create], buf_displ ;ᮧ¤ ¥¬ ¡ãä¥à ¤«ï ¢ë¢®¤  ­  íªà ­
-
 
639
 
-
 
640
	mov edi,buf_fon
-
 
641
	mov buf2d_w,ebx
-
 
642
	mov buf2d_h,edx
-
 
643
	stdcall [buf2d_create], buf_fon ;ᮧ¤ ¥¬ ¡ãä¥à á ä®­®¢ë¬¨ ¤¥ª®à æ¨ï¬¨
629
	stdcall [buf2d_create], buf_displ ;ᮧ¤ ¥¬ ¡ãä¥à ¤«ï ¢ë¢®¤  ­  íªà ­
644
 
630
	call InitBackgroundBuffer ;§ ¯®«­ï¥¬ ¡ãä¥à á ä®­®¢ë¬¨ ¤¥ª®à æ¨ï¬¨
645
	call InitBackgroundBuffer ;§ ¯®«­ï¥¬ ¡ãä¥à á ä®­®¢ë¬¨ ¤¥ª®à æ¨ï¬¨
631
	stdcall InitGame,0
646
	stdcall InitGame,0
632
	mcall 26,9
647
	mcall 26,9
Line 734... Line 749...
734
	mcall ;ᮧ¤ ­¨¥ ®ª­ 
749
	mcall ;ᮧ¤ ­¨¥ ®ª­ 
Line 735... Line 750...
735
 
750
 
736
	mcall 9,procinfo,-1
751
	mcall 9,procinfo,-1
737
	mov edi,buf_displ
752
	mov edi,buf_displ
738
	mov eax,dword[procinfo.client_box.width]
753
	mov eax,dword[procinfo.client_box.width]
739
	cmp eax,GAME_POLE_W
754
	cmp eax,dword[displ_w]
740
	jle @f
755
	jle @f
741
		sub eax,GAME_POLE_W
756
		sub eax,dword[displ_w]
742
		shr eax,1
757
		shr eax,1
743
		mov buf2d_l,ax ;¢ë¯à ¢­¨¢ ¥¬ ¡ãä¥à ¯® 業âàã ®ª­ 
758
		mov buf2d_l,ax ;¢ë¯à ¢­¨¢ ¥¬ ¡ãä¥à ¯® 業âàã ®ª­ 
Line 744... Line 759...
744
	@@:
759
	@@:
Line 745... Line 760...
745
 
760
 
746
	call draw_display
761
	call draw_display
747
 
762
 
748
	mov eax,13 ;à¨á®¢ ­¨¥ ¯àאַ㣮«ì­¨ª 
763
	mov eax,13 ;à¨á®¢ ­¨¥ ¯àאַ㣮«ì­¨ª 
749
	mov edx,[sc.work]
764
	mov edx,[sc.work]
750
	xor esi,esi
765
	xor esi,esi
751
	mov si,buf2d_l
766
	mov si,buf2d_l
752
	add esi,GAME_POLE_W
767
	add esi,dword[displ_w]
753
	mov ebx,dword[procinfo.client_box.width]
768
	mov ebx,dword[procinfo.client_box.width]
754
	inc ebx
769
	inc ebx
Line 786... Line 801...
786
	inc edx
801
	inc edx
787
	add ecx,BUT1_NEXT_TOP
802
	add ecx,BUT1_NEXT_TOP
788
	int 0x40
803
	int 0x40
789
pop esi
804
pop esi
Line -... Line 805...
-
 
805
 
-
 
806
	mov eax,4 ; ð¡R÷ÿ-ð? ¢?ò¡¢ÿ
-
 
807
	mov bx,BUT1_H
-
 
808
	add ebx,3*65536;+3
-
 
809
	mov ecx,dword[color_but_te]
-
 
810
	or  ecx,0x80000000
-
 
811
	mov edx,txt_game_a
-
 
812
	int 0x40
-
 
813
 
-
 
814
	ror ebx,16
-
 
815
	add ebx,BUT1_NEXT_TOP
-
 
816
	ror ebx,16
-
 
817
	mov edx,txt_game_b
-
 
818
	int 0x40
790
 
819
 
791
	; *** ¢®ááâ ­®¢«¥­¨¥ ¯ à ¬¥â஢ ***
820
	; *** ¢®ááâ ­®¢«¥­¨¥ ¯ à ¬¥â஢ ***
792
	mov eax,13 ;à¨á®¢ ­¨¥ ¯àאַ㣮«ì­¨ª 
821
	mov eax,13 ;à¨á®¢ ­¨¥ ¯àאַ㣮«ì­¨ª 
793
	mov edx,[sc.work]
822
	mov edx,[sc.work]
Line 794... Line 823...
794
end if
823
end if
795
 
824
 
796
	mov ebx,esi
825
	mov ebx,esi
797
	mov ecx,dword[procinfo.client_box.height]
826
	mov ecx,dword[procinfo.client_box.height]
798
	inc ecx
827
	inc ecx
799
	mov esi,GAME_POLE_H
828
	mov esi,dword[displ_h]
800
	cmp esi,ebx
829
	cmp esi,ebx
801
	jge @f
830
	jge @f
802
		sub ecx,esi
831
		sub ecx,esi
Line 806... Line 835...
806
		int 0x40 ;à¨á®¢ ­¨¥ ­¨¦­¥£® ¯®«ï
835
		int 0x40 ;à¨á®¢ ­¨¥ ­¨¦­¥£® ¯®«ï
807
	@@:
836
	@@:
Line 808... Line 837...
808
	
837
	
809
	xor ebx,ebx
838
	xor ebx,ebx
810
	mov bx,buf2d_l
839
	mov bx,buf2d_l
811
	mov ecx,GAME_POLE_H
840
	mov ecx,dword[displ_h]
Line 812... Line 841...
812
	int 0x40 ;à¨á®¢ ­¨¥ «¥¢®£® ¡®ª®¢®£® ¯®«ï
841
	int 0x40 ;à¨á®¢ ­¨¥ «¥¢®£® ¡®ª®¢®£® ¯®«ï
813
 
842
 
814
	mcall 12,2
843
	mcall 12,2
Line 815... Line 844...
815
	popad
844
	popad
816
	ret
845
	ret
Line 817... Line 846...
817
 
846
 
818
align 4
847
align 4
819
draw_display:
848
draw_display:
820
 
849
 
821
	stdcall mem_copy, dword[buf_fon],dword[buf_displ],GAME_POLE_BYTES ;ª®¯¨à®¢ ­¨¥ ¨§®¡à ¦¥­¨ï ¨§ ä®­®¢®£® ¡ãä¥à 
-
 
822
	call DrawZaac
-
 
Line -... Line 850...
-
 
850
	stdcall mem_copy, dword[buf_fon],dword[buf_displ],315*210*3;dword[displ_bytes] ;ª®¯¨à®¢ ­¨¥ ¨§®¡à ¦¥­¨ï ¨§ ä®­®¢®£® ¡ãä¥à 
-
 
851
	call DrawZaac ;à¨á㥬 § ©æ 
-
 
852
	call DrawWolf ;à¨á㥬 ¢®«ª 
-
 
853
	call DrawEggs ;à¨á㥬 ï©æ 
-
 
854
 
823
	call DrawWolf ;à¨á㥬 ¢®«ª 
855
push eax
824
	call DrawEggs
-
 
825
 
-
 
826
	stdcall [buf2d_draw_text], buf_displ, buf_font,game_text,GAME_POLE_W/2,OFFS_SHADOW_X,[color_curici] ;à¨á㥬 áâபã á ⥪á⮬
-
 
827
 
-
 
828
	stdcall [buf2d_draw], buf_displ
-
 
829
 
-
 
830
;mov eax,4 ;à¨á®¢ ­¨¥ ⥪áâ 
-
 
831
;mov ebx,(GAME_POLE_W/2)*65536+OFFS_SHADOW_X
-
 
832
;mov ecx,[color_curici]
856
	mov eax,dword[displ_w]
Line 833... Line 857...
833
;or  ecx,0x80000000
857
	shr eax,1
834
;mov edx,some_text
858
	stdcall [buf2d_draw_text], buf_displ, buf_font,game_text,eax,OFFS_SHADOW_X,[color_curici] ;à¨á㥬 áâபã á ⥪á⮬
835
;mcall
859
pop eax
Line 852... Line 876...
852
	jne still
876
	jne still
853
.exit:
877
.exit:
854
	stdcall [buf2d_delete],buf_fon ;㤠«ï¥¬ ¡ãä¥à
878
	stdcall [buf2d_delete],buf_fon ;㤠«ï¥¬ ¡ãä¥à
855
	stdcall [buf2d_delete],buf_displ ;㤠«ï¥¬ ¡ãä¥à
879
	stdcall [buf2d_delete],buf_displ ;㤠«ï¥¬ ¡ãä¥à
Line 856... Line -...
856
 
-
 
857
	stdcall [buf2d_delete],buf_tr_fon0
-
 
858
	stdcall [buf2d_delete],buf_tr_fon1
-
 
859
	stdcall [buf2d_delete],buf_tr_fon2
-
 
860
 
880
 
Line 861... Line 881...
861
	stdcall [buf2d_delete],buf_font
881
	stdcall [buf2d_delete],buf_font
-
 
882
 
-
 
883
	cld
-
 
884
	mov ecx,3
-
 
885
	mov edi,buf_decor
-
 
886
	@@: ;㤠«ï¥¬ 3 ¡ãä¥à 
-
 
887
		stdcall [buf2d_delete],edi
862
 
888
		add edi,BUF_STRUCT_SIZE
863
	cld
889
		loop @b
864
	mov ecx,9
890
	mov ecx,9
865
	mov edi,buf_wolf
891
	mov edi,buf_wolf
866
	@@: ;㤠«ï¥¬ 9 ¡ãä¥à®¢ á ¢®«ª®¬ ¨ § ©æ¥¬
892
	@@: ;㤠«ï¥¬ 9 ¡ãä¥à®¢ á ¢®«ª®¬ ¨ § ©æ¥¬
Line 893... Line 919...
893
system_dir1 db '/sys/lib/'
919
system_dir1 db '/sys/lib/'
894
name_libimg db 'libimg.obj',0
920
name_libimg db 'libimg.obj',0
895
err_message_found_lib1 db '¥ 㤠«®áì ­ ©â¨ ¡¨¡«¨®â¥ªã libimg.obj',0
921
err_message_found_lib1 db '¥ 㤠«®áì ­ ©â¨ ¡¨¡«¨®â¥ªã libimg.obj',0
896
err_message_import1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ libimg.obj',0
922
err_message_import1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ libimg.obj',0
Line -... Line 923...
-
 
923
 
-
 
924
system_dir2 db '/sys/lib/'
-
 
925
libini_name db 'libini.obj',0
-
 
926
err_message_found_lib2 db '¥ 㤠«®áì ­ ©â¨ ¡¨¡«¨®â¥ªã libini.obj',0
-
 
927
err_message_import2 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ libini.obj',0
897
 
928
 
898
;library structures
929
;library structures
899
l_libs_start:
930
l_libs_start:
900
	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
931
	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
-
 
932
	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
901
	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
933
	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
Line 902... Line 934...
902
load_lib_end:
934
load_lib_end:
903
 
935
 
904
align 4
936
align 4
Line 948... Line 980...
948
last_time dd ?
980
last_time dd ?
949
image_data dd 0 ;¯ ¬ïâì ¤«ï ¯à¥®¡à §®¢ ­¨ï ª à⨭ª¨ äã­ªæ¨ï¬¨ libimg
981
image_data dd 0 ;¯ ¬ïâì ¤«ï ¯à¥®¡à §®¢ ­¨ï ª à⨭ª¨ äã­ªæ¨ï¬¨ libimg
950
image_data_gray dd 0 ;¯ ¬ïâì á ¢à¥¬¥­­ë¬¨ á¥à묨 ¨§®¡à ¦¥­¨ï¬¨ ¢ ä®à¬ â¥ 24-bit, ¨§ ª®â®àëå ¡ã¤ãâ ᮧ¤ ¢ âìáï âà ä à¥âë
982
image_data_gray dd 0 ;¯ ¬ïâì á ¢à¥¬¥­­ë¬¨ á¥à묨 ¨§®¡à ¦¥­¨ï¬¨ ¢ ä®à¬ â¥ 24-bit, ¨§ ª®â®àëå ¡ã¤ãâ ᮧ¤ ¢ âìáï âà ä à¥âë
Line 951... Line 983...
951
 
983
 
952
run_file_70 FileInfoBlock
984
run_file_70 FileInfoBlock
953
hed db 'Nu pogodi 30.07.10',0 ;¯®¤¯¨áì ®ª­ 
985
hed db 'Nu pogodi 03.08.10',0 ;¯®¤¯¨áì ®ª­ 
Line 954... Line 986...
954
sc system_colors  ;á¨á⥬­ë¥ 梥â 
986
sc system_colors  ;á¨á⥬­ë¥ 梥â 
955
 
-
 
956
align 4
-
 
957
buf_fon: ;ä®­®¢ë© ¡ãä¥à
-
 
958
	dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
-
 
959
	dw 0 ;+4 left
-
 
960
	dw 0 ;+6 top
-
 
961
	dd GAME_POLE_W ;+8 w
-
 
962
	dd GAME_POLE_H ;+12 h
-
 
963
	dd 0xffffff ;+16 color
-
 
964
	db 24 ;+20 bit in pixel
-
 
965
 
987
 
966
align 4
988
align 4
967
buf_font: ;¡ãä¥à á® èà¨ä⮬
989
buf_font: ;¡ãä¥à á® èà¨ä⮬
968
	dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
990
	dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
969
	dw 25 ;+4 left
991
	dw 25 ;+4 left
970
	dw 25 ;+6 top
992
	dw 25 ;+6 top
971
	dd 128 ;+8 w
993
	dd 128 ;+8 w
972
	dd 144 ;+12 h
994
	dd 144 ;+12 h
Line 973... Line 995...
973
	dd 0 ;+16 color
995
	dd 0 ;+16 color
974
	db 24 ;+20 bit in pixel
-
 
975
 
-
 
976
align 4
-
 
977
buf_tr_fon0: ;¡ãä¥à á ¤®¬¨ª ¬¨ ¨ ३ª ¬¨
-
 
978
	dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
-
 
979
	dw 0 ;+4 left
-
 
980
	dw 0 ;+6 top
-
 
981
	dd GAME_POLE_W ;+8 w
-
 
982
	dd GAME_POLE_H ;+12 h
996
	db 24 ;+20 bit in pixel
983
	dd 0xffffff ;+16 color
-
 
984
	db 24 ;+20 bit in pixel
997
 
985
align 4
998
align 4
986
buf_tr_fon1: ;¡ãä¥à á ªãà¨æ ¬¨
999
buf_displ:
987
	dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
-
 
988
	dw 0 ;+4 left
1000
	dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
989
	dw 0 ;+6 top
1001
	dw 25,0
990
	dd GAME_POLE_W ;+8 w
1002
	dd ? ;+8 w
-
 
1003
	dd ? ;+12 h
991
	dd GAME_POLE_H ;+12 h
1004
	dd 0 ;+16 color
992
	dd 0xffffff ;+16 color
1005
	db 24 ;+20 bit in pixel
993
	db 24 ;+20 bit in pixel
1006
 
994
align 4
1007
align 4
995
buf_tr_fon2: ;¡ãä¥à á à á⥭¨ï¬¨
1008
buf_fon: ;ä®­®¢ë© ¡ãä¥à
996
	dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
1009
	dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
997
	dw 0 ;+4 left
1010
	dw 0 ;+4 left
998
	dw 0 ;+6 top
1011
	dw 0 ;+6 top
999
	dd GAME_POLE_W ;+8 w
1012
	dd ? ;+8 w
Line 1000... Line 1013...
1000
	dd GAME_POLE_H ;+12 h
1013
	dd ? ;+12 h
1001
	dd 0xffffff ;+16 color
-
 
1002
	db 24 ;+20 bit in pixel
1014
	dd 0xffffff ;+16 color
1003
 
-
 
1004
align 4
1015
	db 24 ;+20 bit in pixel
1005
buf_displ:
-
 
1006
	dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
-
 
1007
	dw 25,0
-
 
Line 1008... Line 1016...
1008
	dd GAME_POLE_W ;+8 w
1016
 
1009
	dd GAME_POLE_H ;+12 h
1017
align 4
1010
	dd 0 ;+16 color
1018
buf_decor: ;¡ãä¥à  á ¤¥ª®à æ¨ï¬¨: ¤®¬¨ª ¬¨ ¨ ३ª ¬¨; á ªãà¨æ ¬¨; á à á⥭¨ï¬¨
Line 1020... Line 1028...
1020
 
1028
 
1021
align 4
1029
align 4
1022
buf_chi:
1030
buf_chi:
Line -... Line 1031...
-
 
1031
	rb 13*BUF_STRUCT_SIZE
-
 
1032
 
-
 
1033
 
-
 
1034
 
-
 
1035
align 4
-
 
1036
libini_import:
-
 
1037
	dd alib_init0
-
 
1038
	ini_get_str   dd aini_get_str
-
 
1039
	ini_get_int   dd aini_get_int
-
 
1040
	ini_get_color dd aini_get_color
-
 
1041
dd 0,0
-
 
1042
	alib_init0     db 'lib_init',0
-
 
1043
	aini_get_str   db 'ini_get_str',0
-
 
1044
	aini_get_int   db 'ini_get_int',0
1023
	rb 13*BUF_STRUCT_SIZE
1045
	aini_get_color db 'ini_get_color',0
1024
 
1046
 
1025
align 4
1047
align 4
1026
import_libimg:
1048
import_libimg:
1027
  dd alib_init1
1049
  dd alib_init1