Rev 1861 | Rev 3015 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1518 | dunkaist | 1 | ;;===HEADER==================================================================================================================== |
2 | |||
3 | use32 |
||
4 | org 0x0 |
||
5 | db 'MENUET01' |
||
1566 | dunkaist | 6 | dd 0x01,start,i_end,d_end,stacktop,0x0,cur_dir_path |
1518 | dunkaist | 7 | |
8 | ;;---HEADER-------------------------------------------------------------------------------------------------------------------- |
||
9 | |||
10 | include '../../../proc32.inc' |
||
11 | include '../../../macros.inc' |
||
12 | include '../../../system/launch/trunk/mem.inc' |
||
13 | include '../../../develop/libraries/libs-dev/.test/dll.inc' |
||
14 | include '../../../develop/libraries/box_lib/trunk/box_lib.mac' |
||
2061 | dunkaist | 15 | ;include '../../../system/board/trunk/debug.inc' |
1518 | dunkaist | 16 | |
17 | ;;===Define_chapter============================================================================================================ |
||
18 | |||
1677 | dunkaist | 19 | WINDOW_MODE_WINDOWED equ 0 |
20 | WINDOW_MODE_FULLSCREEN equ 1 |
||
21 | |||
1566 | dunkaist | 22 | GRID_WIDTH equ 28 |
23 | GRID_HEIGHT equ 14 |
||
24 | |||
25 | MIN_SQUARE_SIDE_LENGTH equ 9 |
||
26 | |||
1518 | dunkaist | 27 | SCORE_EAT equ 100 |
28 | |||
29 | LEFT equ 0 |
||
30 | DOWN equ 1 |
||
31 | UP equ 2 |
||
32 | RIGHT equ 3 |
||
33 | |||
1566 | dunkaist | 34 | struct LEVEL |
1677 | dunkaist | 35 | field db 4*GRID_HEIGHT dup (?) |
1566 | dunkaist | 36 | snake_dots db 6 dup (?) |
37 | snake_direction dd ? |
||
38 | snake_direction_next dd ? |
||
39 | number_of_stones dd ? |
||
1677 | dunkaist | 40 | name dd ? |
1566 | dunkaist | 41 | ends |
42 | |||
43 | CLASSIC_MODE equ 0 |
||
44 | LEVELS_MODE equ 1 |
||
45 | |||
46 | CLASSIC_MODE_FIRST_LEVEL equ 0 |
||
47 | LEVELS_MODE_FIRST_LEVEL equ 1 |
||
48 | |||
1677 | dunkaist | 49 | EAT_TO_END_LEVEL equ 7 |
50 | PAUSE_BETWEEN_LEVELS equ 200 |
||
51 | PAUSE_WHILE_DRAWING_SPLASH equ 3 |
||
1566 | dunkaist | 52 | |
53 | CHAMPION_NAME_LENGTH equ 15 |
||
1677 | dunkaist | 54 | LAST_LEVEL_NUMBER equ 36 |
1566 | dunkaist | 55 | |
1677 | dunkaist | 56 | START_LIVES equ 3 |
57 | |||
1518 | dunkaist | 58 | ;;---Define_chapter------------------------------------------------------------------------------------------------------------ |
59 | |||
60 | start: |
||
61 | |||
62 | stdcall dll.Load,@IMPORT |
||
63 | or eax, eax |
||
64 | jnz Exit |
||
65 | |||
66 | align 4 |
||
67 | |||
1677 | dunkaist | 68 | mov edi, cur_dir_path |
69 | mov al, 0 |
||
70 | mov ecx, 4096 |
||
71 | repne scasb |
||
72 | mov dword[edi-1], '.ini' |
||
1518 | dunkaist | 73 | |
1520 | dunkaist | 74 | invoke ini.get_int, cur_dir_path, aPreferences, aSpeed, 80 |
1518 | dunkaist | 75 | neg eax |
76 | add [time_wait_limit], eax |
||
1677 | dunkaist | 77 | mov ebx, [time_wait_limit] |
78 | mov [time_wait_limit_const], ebx |
||
79 | sub ebx, 4 |
||
80 | mov eax, 200 |
||
81 | div bl |
||
82 | mov byte[speed_up_counter], al |
||
83 | mov byte[speed_up_counter+1], al |
||
1522 | dunkaist | 84 | invoke ini.get_str, cur_dir_path, aPreferences, aTheme, aTheme_name, 31, aTheme_name |
1677 | dunkaist | 85 | invoke ini.get_int, cur_dir_path, aPreferences, aSmart_reverse, 0 |
86 | mov [smart_reverse], eax |
||
87 | invoke ini.get_int, cur_dir_path, aPreferences, aShow_lives_style, 2 |
||
88 | mov [show_lives_style], eax |
||
89 | invoke ini.get_int, cur_dir_path, aPreferences, aDraw_level_name_in_window_title, 1 |
||
90 | mov [draw_level_name_in_window_title], eax |
||
91 | invoke ini.get_str, cur_dir_path, aPreferences, aSeparating_symbol, separating_symbol, 3, default_separating_symbol |
||
1522 | dunkaist | 92 | |
1677 | dunkaist | 93 | invoke ini.get_shortcut, cur_dir_path, aShortcuts, aMove_left, 0x23, 0 |
94 | mov [shortcut_move_left], al |
||
95 | invoke ini.get_shortcut, cur_dir_path, aShortcuts, aMove_down, 0x24, 0 |
||
96 | mov [shortcut_move_down], al |
||
97 | invoke ini.get_shortcut, cur_dir_path, aShortcuts, aMove_up, 0x25, 0 |
||
98 | mov [shortcut_move_up], al |
||
99 | invoke ini.get_shortcut, cur_dir_path, aShortcuts, aMove_right, 0x26, 0 |
||
100 | mov [shortcut_move_right], al |
||
101 | invoke ini.get_shortcut, cur_dir_path, aShortcuts, aReverse, 0x0F, 0 |
||
102 | mov [shortcut_reverse], al |
||
103 | invoke ini.get_shortcut, cur_dir_path, aShortcuts, aIncrease, 0x16, 0 |
||
104 | mov [shortcut_increase], al |
||
105 | invoke ini.get_shortcut, cur_dir_path, aShortcuts, aDecrease, 0x17, 0 |
||
106 | mov [shortcut_decrease], al |
||
107 | |||
108 | invoke ini.get_int, cur_dir_path, aTheme_name, aDecorations, 3 |
||
1566 | dunkaist | 109 | mov [decorations], eax |
1522 | dunkaist | 110 | invoke ini.get_color, cur_dir_path, aTheme_name, aBackground_color, 0x000000 |
1518 | dunkaist | 111 | or [background_color], eax |
1677 | dunkaist | 112 | or [window_style_windowed], eax |
1566 | dunkaist | 113 | invoke ini.get_color, cur_dir_path, aTheme_name, aDecorations_color, 0xAAAA00 |
1518 | dunkaist | 114 | or [decorations_color], eax |
1522 | dunkaist | 115 | invoke ini.get_color, cur_dir_path, aTheme_name, aSnake_color, 0x1111ff |
1518 | dunkaist | 116 | or [snake_color], eax |
1566 | dunkaist | 117 | invoke ini.get_color, cur_dir_path, aTheme_name, aSnake_head_color, 0x6B6Bff |
1518 | dunkaist | 118 | or [snake_head_color], eax |
1677 | dunkaist | 119 | invoke ini.get_color, cur_dir_path, aTheme_name, aLives_in_head_number_color, 0xff8800 |
120 | or [lives_in_head_number_color], eax |
||
1522 | dunkaist | 121 | invoke ini.get_color, cur_dir_path, aTheme_name, aSnake_picture_color, 0x4488ff |
1518 | dunkaist | 122 | or [snake_picture_color], eax |
1522 | dunkaist | 123 | invoke ini.get_color, cur_dir_path, aTheme_name, aVersion_picture_color, 0x55ff55 |
1518 | dunkaist | 124 | or [version_picture_color], eax |
1522 | dunkaist | 125 | invoke ini.get_color, cur_dir_path, aTheme_name, aPause_picture_color, 0x11ff11 |
1518 | dunkaist | 126 | or [pause_picture_color], eax |
1522 | dunkaist | 127 | invoke ini.get_color, cur_dir_path, aTheme_name, aGame_over_picture_color, 0xff1111 |
1518 | dunkaist | 128 | or [game_over_picture_color], eax |
1566 | dunkaist | 129 | invoke ini.get_color, cur_dir_path, aTheme_name, aYou_win_picture_color, 0xffff11 |
130 | or [you_win_picture_color], eax |
||
1522 | dunkaist | 131 | invoke ini.get_color, cur_dir_path, aTheme_name, aEat_color, 0xffff11 |
1518 | dunkaist | 132 | or [eat_color], eax |
1522 | dunkaist | 133 | invoke ini.get_color, cur_dir_path, aTheme_name, aNavigation_strings_color, 0x80ff7777 |
1518 | dunkaist | 134 | or [navigation_strings_color], eax |
1522 | dunkaist | 135 | invoke ini.get_color, cur_dir_path, aTheme_name, aGame_over_strings_color, 0x80ff9900 |
1518 | dunkaist | 136 | or [game_over_strings_color], eax |
1522 | dunkaist | 137 | invoke ini.get_color, cur_dir_path, aTheme_name, aScore_string_color, 0x80ffffff |
1518 | dunkaist | 138 | or [score_string_color], eax |
1566 | dunkaist | 139 | invoke ini.get_color, cur_dir_path, aTheme_name, aLevel_string_color, 0xffffff |
140 | or [level_string_color], eax |
||
1522 | dunkaist | 141 | invoke ini.get_color, cur_dir_path, aTheme_name, aHiscore_string_color, 0x80ffffff |
1518 | dunkaist | 142 | or [hiscore_string_color], eax |
1522 | dunkaist | 143 | invoke ini.get_color, cur_dir_path, aTheme_name, aChampion_string_color, 0x80ffffff |
1518 | dunkaist | 144 | or [champion_string_color], eax |
1522 | dunkaist | 145 | invoke ini.get_color, cur_dir_path, aTheme_name, aGame_over_hiscore_color, 0x80ffdd44 |
1518 | dunkaist | 146 | or [game_over_hiscore_color], eax |
1522 | dunkaist | 147 | invoke ini.get_color, cur_dir_path, aTheme_name, aScore_number_color, 0xffffff |
1518 | dunkaist | 148 | or [score_number_color], eax |
1566 | dunkaist | 149 | invoke ini.get_color, cur_dir_path, aTheme_name, aLevel_number_color, 0xffffff |
150 | or [level_number_color], eax |
||
1522 | dunkaist | 151 | invoke ini.get_color, cur_dir_path, aTheme_name, aHiscore_number_color, 0x00ffffff |
1518 | dunkaist | 152 | or [hiscore_number_color], eax |
1522 | dunkaist | 153 | invoke ini.get_color, cur_dir_path, aTheme_name, aChampion_name_color, 0x80ffffff |
1518 | dunkaist | 154 | or [champion_name_color], eax |
1522 | dunkaist | 155 | invoke ini.get_color, cur_dir_path, aTheme_name, aEdit_box_selection_color, 0x00aa00 |
1566 | dunkaist | 156 | or [edit1.shift_color], eax |
157 | invoke ini.get_color, cur_dir_path, aTheme_name, aButton_color, 0xDDDDDD |
||
158 | or [button_color], eax |
||
159 | invoke ini.get_color, cur_dir_path, aTheme_name, aButton_text_color, 0x000000 |
||
160 | or [button_text_color], eax |
||
161 | invoke ini.get_color, cur_dir_path, aTheme_name, aStone_color, 0x5f8700 |
||
162 | or [stone_color], eax |
||
163 | invoke ini.get_color, cur_dir_path, aTheme_name, aSplash_background_color, 0xAAAA00 |
||
164 | or [splash_background_color], eax |
||
165 | invoke ini.get_color, cur_dir_path, aTheme_name, aSplash_level_number_color, 0x000000 |
||
166 | or [splash_level_number_color], eax |
||
167 | invoke ini.get_color, cur_dir_path, aTheme_name, aSplash_level_string_color, 0x000000 |
||
168 | or [splash_level_string_color], eax |
||
1518 | dunkaist | 169 | |
1566 | dunkaist | 170 | invoke ini.get_int, cur_dir_path, aReserved, aSquare_side_length, 19 |
171 | mov [square_side_length], eax |
||
172 | invoke ini.get_str, cur_dir_path, aReserved, aChampion_name_classic, champion_name_classic, CHAMPION_NAME_LENGTH, champion_name_classic |
||
173 | invoke ini.get_int, cur_dir_path, aReserved, aHiscore_classic, 777 |
||
174 | or [hi_score_classic], eax |
||
175 | invoke ini.get_str, cur_dir_path, aReserved, aChampion_name_levels, champion_name_levels, CHAMPION_NAME_LENGTH, champion_name_levels |
||
176 | invoke ini.get_int, cur_dir_path, aReserved, aHiscore_levels, 777 |
||
177 | or [hi_score_levels], eax |
||
178 | |||
1520 | dunkaist | 179 | mov eax, [background_color] |
1566 | dunkaist | 180 | mov [edit1.color], eax |
181 | mov [edit1.focus_border_color], eax |
||
182 | mov [edit1.blur_border_color], eax |
||
1520 | dunkaist | 183 | mov eax, [game_over_hiscore_color] |
1566 | dunkaist | 184 | mov [edit1.text_color], eax |
1520 | dunkaist | 185 | |
1566 | dunkaist | 186 | mcall 37,4,cursor_data,2 ; load empty cursor (for "hiding" cursor while level_mode) |
187 | mov [cursor_handle], eax |
||
188 | |||
1677 | dunkaist | 189 | mov eax, WINDOW_MODE_WINDOWED |
190 | call Set_window_mode |
||
2061 | dunkaist | 191 | mcall 0,0,0,[window_style_windowed] ; create empty window. Set_geometry will set all parameters |
1677 | dunkaist | 192 | call Set_geometry.by_hotkey |
193 | mcall 71,1,window_title |
||
1522 | dunkaist | 194 | |
1518 | dunkaist | 195 | include 'first_menu.asm' ; First menu body and functions |
196 | include 'level.asm' ; Level body and functions (game process) |
||
197 | include 'pause.asm' ; Pause body and functions |
||
198 | include 'game_over.asm' ; Game_over body and functions |
||
199 | |||
200 | ;;===Some_functions============================================================================================================ |
||
201 | |||
1566 | dunkaist | 202 | |
203 | Save_do_smth_else_and_exit: |
||
204 | ;;===Save_do_smth_else_and_exit============================================================================================ |
||
205 | |||
206 | mcall 37,6,[cursor_handle] ; delete cursor |
||
207 | |||
208 | invoke ini.set_int, cur_dir_path, aReserved, aSquare_side_length, [square_side_length] |
||
209 | |||
210 | mov edi, champion_name_classic |
||
211 | xor al, al |
||
212 | mov ecx, CHAMPION_NAME_LENGTH+1 |
||
213 | cld |
||
214 | repne scasb |
||
215 | neg ecx |
||
216 | add ecx, CHAMPION_NAME_LENGTH |
||
217 | invoke ini.set_str, cur_dir_path, aReserved, aChampion_name_classic, champion_name_classic, ecx |
||
218 | invoke ini.set_int, cur_dir_path, aReserved, aHiscore_classic, [hi_score_classic] |
||
219 | |||
220 | mov edi, champion_name_levels |
||
221 | xor al, al |
||
222 | mov ecx, CHAMPION_NAME_LENGTH+1 |
||
223 | cld |
||
224 | repne scasb |
||
225 | neg ecx |
||
226 | add ecx, CHAMPION_NAME_LENGTH |
||
227 | invoke ini.set_str, cur_dir_path, aReserved, aChampion_name_levels, champion_name_levels, ecx |
||
228 | invoke ini.set_int, cur_dir_path, aReserved, aHiscore_levels, [hi_score_levels] |
||
229 | |||
230 | ;;---Save_do_smth_else_and_exit-------------------------------------------------------------------------------------------- |
||
231 | |||
232 | |||
1518 | dunkaist | 233 | Exit: |
1522 | dunkaist | 234 | ;;===Exit================================================================================================================== |
1518 | dunkaist | 235 | |
236 | or eax, -1 |
||
237 | int 0x40 |
||
238 | |||
1522 | dunkaist | 239 | ;;---Exit------------------------------------------------------------------------------------------------------------------ |
240 | |||
241 | |||
242 | Set_geometry: |
||
243 | ;;===Set_geometry========================================================================================================== |
||
244 | |||
1677 | dunkaist | 245 | cmp [resized_by_hotkey], 1 |
246 | je .by_hotkey |
||
247 | |||
248 | test [proc_info.wnd_state], 0x01 |
||
249 | jnz .by_hotkey |
||
250 | |||
251 | mcall 9,proc_info,-1 |
||
2061 | dunkaist | 252 | test [proc_info.wnd_state], 0x04 ; is rolled up? |
253 | jz @f |
||
1677 | dunkaist | 254 | mov eax, [proc_info.box.width] |
2061 | dunkaist | 255 | mov [window_width], eax |
256 | mov eax, [proc_info.box.height] |
||
257 | mov [window_height], eax |
||
258 | jmp .quit |
||
259 | @@: |
||
260 | mov eax, [proc_info.box.width] |
||
1677 | dunkaist | 261 | cmp eax, [window_width] |
262 | jne @f |
||
263 | mov eax, [proc_info.box.height] |
||
264 | cmp eax, [window_height] |
||
265 | jne @f |
||
266 | jmp .quit |
||
267 | @@: |
||
268 | mov eax, [proc_info.box.width] |
||
269 | mov [window_width], eax |
||
270 | mov eax, [proc_info.box.height] |
||
271 | mov [window_height], eax |
||
272 | |||
273 | .by_mouse: ; or any other kind of resizing. for example, double click on window title |
||
274 | |||
275 | test [proc_info.wnd_state], 0x01 |
||
276 | jnz .by_hotkey |
||
277 | |||
278 | |||
279 | cmp [window_width], 250 |
||
280 | jnl @f |
||
281 | mov [window_width], 250 |
||
282 | @@: |
||
283 | cmp [window_height], 150 |
||
284 | jnl @f |
||
285 | mov [window_height], 150 |
||
286 | @@: |
||
287 | |||
288 | mcall 48,4 |
||
289 | mov ecx, [window_height] |
||
290 | sub ecx, eax |
||
291 | sub ecx, 5 |
||
292 | sub ecx, [g_e] |
||
293 | sub ecx, [g_e] |
||
294 | sub ecx, 25+30 |
||
295 | mov esi, ecx |
||
296 | |||
297 | mov eax, [window_width] |
||
298 | sub eax, 5+5 |
||
299 | sub eax, [g_e] |
||
300 | sub eax, [g_e] |
||
301 | sub eax, [g_s] |
||
302 | sub eax, [g_s] |
||
303 | mov edi, eax |
||
304 | |||
305 | mov dx, 0 |
||
306 | div cx |
||
307 | cmp ax, 2 |
||
308 | jl .fit_to_width |
||
309 | |||
310 | .fit_to_height: |
||
311 | mov eax, esi |
||
312 | mov ebx, GRID_HEIGHT |
||
313 | div bl |
||
314 | cmp al, MIN_SQUARE_SIDE_LENGTH |
||
315 | jnl @f |
||
316 | mov al, MIN_SQUARE_SIDE_LENGTH |
||
317 | @@: |
||
318 | dec al |
||
319 | mov byte[square_side_length], al |
||
320 | jmp .by_hotkey |
||
321 | |||
322 | .fit_to_width: |
||
323 | mov eax, edi |
||
324 | mov ebx, GRID_WIDTH |
||
325 | div bl |
||
326 | cmp al, MIN_SQUARE_SIDE_LENGTH |
||
327 | jnl @f |
||
328 | mov al, MIN_SQUARE_SIDE_LENGTH |
||
329 | @@: |
||
330 | dec al |
||
331 | mov byte[square_side_length], al |
||
332 | jmp .by_hotkey |
||
333 | |||
334 | ; jmp .done |
||
335 | |||
336 | .by_hotkey: |
||
337 | mcall 9,proc_info,-1 |
||
338 | mov [resized_by_hotkey], 0 |
||
2061 | dunkaist | 339 | test [proc_info.wnd_state], 0x04 ; is rolled up? |
340 | jz @f |
||
341 | mov eax, [proc_info.box.width] |
||
342 | mov [window_width], eax |
||
343 | mov eax, [proc_info.box.height] |
||
344 | mov [window_height], eax |
||
345 | jmp .quit |
||
346 | @@: |
||
1566 | dunkaist | 347 | mov eax, [square_side_length] |
348 | inc eax ; space between squares |
||
1522 | dunkaist | 349 | mov [g_s], eax |
350 | |||
351 | mov eax, [g_s] |
||
352 | shr eax, 1 |
||
353 | mov ebx, eax |
||
354 | shr ebx, 1 |
||
355 | add eax, ebx |
||
356 | mov [g_e], eax |
||
357 | |||
1566 | dunkaist | 358 | mov edx, GRID_WIDTH |
1522 | dunkaist | 359 | mov eax, [g_s] |
360 | mul dx |
||
361 | mov [gw_mul_gs], eax |
||
362 | |||
1566 | dunkaist | 363 | mov edx, GRID_HEIGHT |
1522 | dunkaist | 364 | mov eax, [g_s] |
365 | mul dx |
||
366 | mov [gh_mul_gs], eax |
||
367 | |||
1677 | dunkaist | 368 | mov eax, [gw_mul_gs] |
369 | add eax, [g_s] |
||
370 | add eax, [g_s] |
||
371 | add eax, [g_e] |
||
372 | add eax, [g_e] |
||
373 | add eax, 5*2 ; skin width |
||
374 | mov esi, eax |
||
375 | test [proc_info.wnd_state], 0x01 |
||
1861 | dunkaist | 376 | jz @f |
377 | mov eax, [proc_info.box.width] |
||
378 | @@: |
||
1677 | dunkaist | 379 | mov [window_width], eax |
1522 | dunkaist | 380 | |
1677 | dunkaist | 381 | sub eax, [gw_mul_gs] |
382 | sub eax, 5*2 |
||
383 | shr eax, 1 |
||
384 | mov [gbxm1], eax |
||
385 | |||
386 | mcall 48,4 ; get skin header height |
||
387 | mov ebx, eax |
||
1522 | dunkaist | 388 | add eax, [gh_mul_gs] |
1677 | dunkaist | 389 | add eax, [g_e] |
390 | add eax, 25 |
||
391 | add eax, [g_e] |
||
392 | add eax, 30 |
||
393 | add eax, 5 ; skin height (bottom part) |
||
394 | mov edi, eax |
||
395 | test [proc_info.wnd_state], 0x01 |
||
1861 | dunkaist | 396 | jz @f |
397 | mov eax, [proc_info.box.height] |
||
398 | @@: |
||
1677 | dunkaist | 399 | mov [window_height], eax |
1522 | dunkaist | 400 | |
1677 | dunkaist | 401 | sub eax, [gh_mul_gs] |
402 | sub eax, ebx |
||
403 | sub eax, 5 |
||
404 | sub eax, 5 |
||
405 | |||
406 | shr eax, 1 |
||
407 | mov [gbym1], eax |
||
408 | |||
1522 | dunkaist | 409 | mov eax, [g_s] |
410 | shl eax, 16 |
||
411 | add eax, [g_s] |
||
412 | mov [gs_shl16_gs], eax |
||
413 | |||
414 | mov eax, [gbxm1] |
||
415 | shl eax, 16 |
||
416 | add eax, [gbxm1] |
||
417 | mov [gbxm1_shl16_gbxm1], eax |
||
418 | |||
419 | mov eax, [gbym1] |
||
420 | shl eax, 16 |
||
421 | add eax, [gbym1] |
||
422 | mov [gbym1_shl16_gbym1], eax |
||
423 | |||
1677 | dunkaist | 424 | mov eax, [gbxm1] |
425 | add eax, [gw_mul_gs] |
||
426 | mov [gbxm1_plus_gw_mul_gs], eax |
||
1522 | dunkaist | 427 | |
1677 | dunkaist | 428 | mov eax, [gbym1] |
1566 | dunkaist | 429 | add eax, [gh_mul_gs] |
1677 | dunkaist | 430 | mov [gbym1_plus_gh_mul_gs], eax |
1522 | dunkaist | 431 | |
432 | mcall 48, 5 |
||
433 | mov dx, ax |
||
434 | shr eax, 16 |
||
435 | sub dx, ax |
||
1677 | dunkaist | 436 | cmp dx, si ; does window fit to work area width? |
1522 | dunkaist | 437 | jnl @f |
438 | dec [square_side_length] |
||
1677 | dunkaist | 439 | jmp Set_geometry.by_hotkey |
1522 | dunkaist | 440 | @@: |
441 | |||
442 | mov cx, bx |
||
443 | shr ebx, 16 |
||
444 | sub cx, bx |
||
1677 | dunkaist | 445 | cmp cx, di ; does window fit to work area height? |
1522 | dunkaist | 446 | jnl @f |
447 | dec [square_side_length] |
||
1677 | dunkaist | 448 | jmp Set_geometry.by_hotkey |
1522 | dunkaist | 449 | @@: |
450 | |||
1677 | dunkaist | 451 | sub dx, si |
1522 | dunkaist | 452 | shr dx, 1 |
453 | mov word[wp_x], dx |
||
454 | sub cx, word[window_height] |
||
455 | shr cx, 1 |
||
456 | mov dx, cx |
||
457 | shr cx, 1 |
||
458 | add cx, dx |
||
459 | mov word[wp_y], cx |
||
460 | |||
461 | mov [top_strings], 8 |
||
462 | mov eax, [window_height] |
||
463 | sub eax, 50 |
||
464 | mov [bottom_top_strings], eax |
||
465 | add eax, 6 |
||
466 | mov [bottom_middle_strings], eax |
||
467 | add eax, 6 |
||
468 | mov [bottom_bottom_strings], eax |
||
469 | |||
470 | sub eax, 4 |
||
1566 | dunkaist | 471 | mov [edit1.top], eax |
1522 | dunkaist | 472 | |
1566 | dunkaist | 473 | |
474 | mov eax, [g_s] |
||
475 | shl eax, 2 |
||
476 | sub eax, 2 |
||
477 | mov [button_width_short], eax |
||
478 | mov eax, [g_s] |
||
479 | shl eax, 3 |
||
480 | add eax, [g_s] |
||
481 | sub eax, 2 |
||
482 | mov [button_width_long], eax |
||
483 | mov eax, [g_s] |
||
484 | sub eax, 2 |
||
485 | mov [button_height], eax |
||
486 | |||
487 | mov bl, 0x10 |
||
488 | mov cl, 0x08 |
||
489 | |||
490 | mov al, byte[g_s] |
||
491 | mul bl |
||
492 | mov bx, ax |
||
493 | add bx, word[gbxm1] |
||
494 | inc bx |
||
495 | |||
496 | mov al, byte[g_s] |
||
497 | mul cl |
||
498 | mov cx, ax |
||
499 | add cx, word[gbym1] |
||
500 | inc cx |
||
501 | |||
502 | mov [button_x_left], ebx |
||
503 | mov [button_y_top], ecx |
||
504 | |||
505 | add ebx, [g_s] |
||
506 | add ebx, [g_s] |
||
507 | add ebx, [g_s] |
||
508 | add ebx, [g_s] |
||
509 | add ebx, [g_s] |
||
510 | |||
511 | mov [button_x_right], ebx |
||
512 | |||
513 | add ecx, [g_s] |
||
514 | add ecx, [g_s] |
||
515 | |||
516 | mov [button_y_middle], ecx |
||
517 | |||
518 | add ecx, [g_s] |
||
519 | add ecx, [g_s] |
||
520 | |||
521 | mov [button_y_bottom], ecx |
||
522 | |||
1677 | dunkaist | 523 | .done: |
524 | mcall 67,[wp_x],[wp_y],[window_width],[window_height] |
||
1566 | dunkaist | 525 | |
1677 | dunkaist | 526 | .quit: |
1522 | dunkaist | 527 | ret |
528 | |||
529 | ;;---Set_geometry------------------------------------------------------------------------------------------------------ |
||
530 | |||
531 | |||
1566 | dunkaist | 532 | Increase_geometry: |
533 | ;;===Increase_geometry================================================================================================= |
||
534 | |||
535 | inc [square_side_length] |
||
1677 | dunkaist | 536 | mov [resized_by_hotkey], 1 |
1566 | dunkaist | 537 | |
538 | ret |
||
539 | |||
540 | ;;---Increase_geometry------------------------------------------------------------------------------------------------- |
||
541 | |||
542 | |||
543 | Decrease_geometry: |
||
544 | ;;===Decrease_geometry================================================================================================= |
||
545 | |||
546 | cmp [square_side_length], MIN_SQUARE_SIDE_LENGTH |
||
547 | je @f |
||
548 | dec [square_side_length] |
||
1677 | dunkaist | 549 | mov [resized_by_hotkey], 1 |
1566 | dunkaist | 550 | |
551 | @@: |
||
552 | ret |
||
553 | |||
554 | ;;---Decrease_geometry------------------------------------------------------------------------------------------------- |
||
555 | |||
556 | |||
1518 | dunkaist | 557 | Draw_decorations: |
558 | ;;===Draw_decorations================================================================================================== |
||
559 | |||
1566 | dunkaist | 560 | mov al, byte[decorations] |
1522 | dunkaist | 561 | dec al |
562 | jz grid_lines |
||
563 | dec al |
||
564 | jz grid_lines_with_ends |
||
565 | dec al |
||
566 | jz grid_lines_with_corners |
||
567 | dec al |
||
568 | jz grid_dots |
||
569 | dec al |
||
570 | jz borders_lines |
||
571 | dec al |
||
572 | jz borders_lines_with_corners |
||
573 | dec al |
||
574 | jz borders_dots |
||
575 | dec al |
||
576 | jz corners_dots |
||
577 | dec al |
||
578 | jz corners_inner |
||
579 | dec al |
||
580 | jz corners_outer |
||
581 | dec al |
||
582 | jz corners_crosses |
||
1518 | dunkaist | 583 | ret |
584 | |||
585 | |||
586 | grid_lines: |
||
587 | |||
588 | mov eax, 38 |
||
1522 | dunkaist | 589 | ;mov ebx, (GRID_BEGIN_X-1)*65536+(GRID_BEGIN_X-1) |
590 | mov ebx, [gbxm1_shl16_gbxm1] |
||
591 | ;mov ecx, (GRID_BEGIN_Y-1)*65536+(GRID_BEGIN_Y-1+GRID_HEIGHT*GRID_STEP) |
||
592 | mov ecx, [gbym1_shl16_gbym1] |
||
593 | add ecx, [gh_mul_gs] |
||
1518 | dunkaist | 594 | mov edx, [decorations_color] |
1566 | dunkaist | 595 | mov esi, GRID_WIDTH |
1522 | dunkaist | 596 | add esi, 1 |
1518 | dunkaist | 597 | |
598 | @@: |
||
599 | mcall |
||
1522 | dunkaist | 600 | add ebx, [gs_shl16_gs] |
601 | dec esi |
||
602 | jnz @b |
||
1518 | dunkaist | 603 | |
1522 | dunkaist | 604 | ;mov ebx, (GRID_BEGIN_X-1)*65536+(GRID_BEGIN_X-1+GRID_WIDTH*GRID_STEP) |
605 | mov ebx, [gbxm1_shl16_gbxm1] |
||
606 | add ebx, [gw_mul_gs] |
||
607 | mov ecx, [gbym1_shl16_gbym1] |
||
1566 | dunkaist | 608 | mov esi, GRID_HEIGHT |
1522 | dunkaist | 609 | add esi, 1 |
1518 | dunkaist | 610 | |
611 | @@: |
||
612 | mcall |
||
1522 | dunkaist | 613 | add ecx, [gs_shl16_gs] |
614 | dec esi |
||
615 | jnz @b |
||
1518 | dunkaist | 616 | |
617 | ret |
||
618 | |||
619 | |||
620 | grid_lines_with_ends: |
||
621 | |||
622 | mov eax, 38 |
||
1522 | dunkaist | 623 | mov ebx, [gbxm1_shl16_gbxm1] |
624 | mov ecx, [gbym1] |
||
625 | sub ecx, [g_e] |
||
626 | shl ecx, 16 |
||
627 | add ecx, [gbym1_plus_gh_mul_gs] |
||
628 | add ecx, [g_e] |
||
1518 | dunkaist | 629 | mov edx, [decorations_color] |
1566 | dunkaist | 630 | mov esi, GRID_WIDTH |
1522 | dunkaist | 631 | add esi, 1 |
1518 | dunkaist | 632 | |
633 | @@: |
||
634 | mcall |
||
1522 | dunkaist | 635 | add ebx, [gs_shl16_gs] |
636 | dec esi |
||
637 | jnz @b |
||
1518 | dunkaist | 638 | |
1522 | dunkaist | 639 | mov ebx, [gbxm1] |
640 | sub ebx, [g_e] |
||
641 | shl ebx, 16 |
||
642 | add ebx, [gbxm1_plus_gw_mul_gs] |
||
643 | add ebx, [g_e] |
||
644 | mov ecx, [gbym1_shl16_gbym1] |
||
1566 | dunkaist | 645 | mov esi, GRID_HEIGHT |
1522 | dunkaist | 646 | add esi, 1 |
1518 | dunkaist | 647 | |
648 | @@: |
||
649 | mcall |
||
1522 | dunkaist | 650 | add ecx, [gs_shl16_gs] |
651 | dec esi |
||
652 | jnz @b |
||
1518 | dunkaist | 653 | |
654 | ret |
||
655 | |||
656 | |||
657 | grid_lines_with_corners: |
||
658 | |||
659 | call grid_lines |
||
660 | call corners_outer |
||
661 | |||
662 | ret |
||
663 | |||
664 | |||
665 | grid_dots: |
||
666 | |||
667 | mov eax, 1 |
||
1522 | dunkaist | 668 | mov ebx, [gbxm1] |
669 | mov ecx, [gbym1] |
||
1518 | dunkaist | 670 | mov edx, [decorations_color] |
671 | |||
672 | @@: |
||
673 | mcall |
||
1522 | dunkaist | 674 | add ebx, [g_s] |
675 | cmp ebx, [gbxm1_plus_gw_mul_gs] |
||
1518 | dunkaist | 676 | jng @b |
1522 | dunkaist | 677 | add ecx, [g_s] |
678 | cmp ecx, [gbym1_plus_gh_mul_gs] |
||
1518 | dunkaist | 679 | jg @f |
1522 | dunkaist | 680 | mov ebx, [gbxm1] |
1518 | dunkaist | 681 | jmp @b |
682 | |||
683 | @@: |
||
684 | ret |
||
685 | |||
686 | |||
687 | borders_lines: |
||
688 | |||
1522 | dunkaist | 689 | mov eax, 38 |
690 | mov ebx, [gbxm1_shl16_gbxm1] |
||
691 | mov ecx, [gbym1_shl16_gbym1] |
||
692 | add ecx, [gh_mul_gs] |
||
693 | mov edx, [decorations_color] |
||
694 | mcall |
||
1518 | dunkaist | 695 | |
1522 | dunkaist | 696 | mov ebx, [gbxm1_plus_gw_mul_gs] |
697 | shl ebx, 16 |
||
698 | add ebx, [gbxm1_plus_gw_mul_gs] |
||
699 | mcall |
||
700 | |||
701 | mov ebx, [gbxm1_shl16_gbxm1] |
||
702 | add ebx, [gw_mul_gs] |
||
703 | mov ecx, [gbym1_shl16_gbym1] |
||
704 | mcall |
||
705 | |||
706 | mov ecx, [gbym1_plus_gh_mul_gs] |
||
707 | shl ecx, 16 |
||
708 | add ecx, [gbym1_plus_gh_mul_gs] |
||
709 | mcall |
||
710 | |||
1518 | dunkaist | 711 | ret |
712 | |||
713 | |||
1522 | dunkaist | 714 | borders_lines_with_corners: |
1518 | dunkaist | 715 | |
716 | call borders_lines |
||
717 | call corners_outer |
||
718 | |||
719 | ret |
||
720 | |||
721 | |||
722 | borders_dots: |
||
723 | |||
724 | mov eax, 1 |
||
1522 | dunkaist | 725 | mov ebx, [gbxm1] |
726 | mov ecx, [gbym1] |
||
1518 | dunkaist | 727 | mov edx, [decorations_color] |
728 | @@: |
||
729 | mcall |
||
1522 | dunkaist | 730 | add ebx, [g_s] |
731 | cmp ebx, [gbxm1_plus_gw_mul_gs] |
||
1518 | dunkaist | 732 | jng @b |
733 | |||
1522 | dunkaist | 734 | mov ebx, [gbxm1] |
735 | mov ecx, [gbym1_plus_gh_mul_gs] |
||
1518 | dunkaist | 736 | @@: |
737 | mcall |
||
1522 | dunkaist | 738 | add ebx, [g_s] |
739 | cmp ebx, [gbxm1_plus_gw_mul_gs] |
||
1518 | dunkaist | 740 | jng @b |
741 | |||
1522 | dunkaist | 742 | mov ebx, [gbxm1] |
743 | mov ecx, [gbym1] |
||
1518 | dunkaist | 744 | @@: |
745 | mcall |
||
1522 | dunkaist | 746 | add ecx, [g_s] |
747 | cmp ecx, [gbym1_plus_gh_mul_gs] |
||
1518 | dunkaist | 748 | jng @b |
749 | |||
1522 | dunkaist | 750 | mov ebx, [gbxm1_plus_gw_mul_gs] |
751 | mov ecx, [gbym1] |
||
1518 | dunkaist | 752 | @@: |
753 | mcall |
||
1522 | dunkaist | 754 | add ecx, [g_s] |
755 | cmp ecx, [gbym1_plus_gh_mul_gs] |
||
1518 | dunkaist | 756 | jng @b |
757 | |||
758 | ret |
||
759 | |||
760 | |||
761 | corners_dots: |
||
762 | |||
1522 | dunkaist | 763 | mov eax, 13 |
764 | mov ebx, [gbxm1] |
||
765 | dec ebx |
||
766 | shl ebx, 16 |
||
767 | add ebx, 2 |
||
768 | mov ecx, [gbym1] |
||
769 | dec ecx |
||
770 | shl ecx, 16 |
||
771 | add ecx, 2 |
||
772 | mov edx, [decorations_color] |
||
773 | mcall |
||
1518 | dunkaist | 774 | |
1522 | dunkaist | 775 | mov ebx, [gbxm1_plus_gw_mul_gs] |
776 | shl ebx, 16 |
||
777 | add ebx, 2 |
||
778 | mcall |
||
779 | |||
780 | mov ebx, [gbxm1] |
||
781 | dec ebx |
||
782 | shl ebx, 16 |
||
783 | add ebx, 2 |
||
784 | mov ecx, [gbym1_plus_gh_mul_gs] |
||
785 | shl ecx, 16 |
||
786 | add ecx, 2 |
||
787 | mcall |
||
788 | |||
789 | mov ebx, [gbxm1_plus_gw_mul_gs] |
||
790 | shl ebx, 16 |
||
791 | add ebx, 2 |
||
792 | mcall |
||
793 | |||
1518 | dunkaist | 794 | ret |
795 | |||
796 | |||
797 | corners_inner: |
||
798 | |||
1522 | dunkaist | 799 | mov eax, 38 |
800 | mov ebx, [gbxm1_shl16_gbxm1] |
||
801 | add ebx, [g_e] |
||
802 | mov ecx, [gbym1_shl16_gbym1] |
||
803 | mov edx, [decorations_color] |
||
804 | mcall |
||
1518 | dunkaist | 805 | |
1522 | dunkaist | 806 | mov ecx, [gbym1_plus_gh_mul_gs] |
807 | shl ecx, 16 |
||
808 | add ecx, [gbym1_plus_gh_mul_gs] |
||
809 | mcall |
||
810 | |||
811 | mov ebx, [gbxm1_plus_gw_mul_gs] |
||
812 | sub ebx, [g_e] |
||
813 | shl ebx, 16 |
||
814 | add ebx, [gbxm1_plus_gw_mul_gs] |
||
815 | mcall |
||
816 | |||
817 | mov ecx, [gbym1_shl16_gbym1] |
||
818 | mcall |
||
819 | |||
820 | mov ebx, [gbxm1_shl16_gbxm1] |
||
821 | mov ecx, [gbym1_shl16_gbym1] |
||
822 | add ecx, [g_e] |
||
823 | mcall |
||
824 | |||
825 | mov ebx, [gbxm1_plus_gw_mul_gs] |
||
826 | shl ebx, 16 |
||
827 | add ebx, [gbxm1_plus_gw_mul_gs] |
||
828 | mcall |
||
829 | |||
830 | mov ecx, [gbym1_plus_gh_mul_gs] |
||
831 | sub ecx, [g_e] |
||
832 | shl ecx, 16 |
||
833 | add ecx, [gbym1_plus_gh_mul_gs] |
||
834 | mcall |
||
835 | |||
836 | mov ebx, [gbxm1_shl16_gbxm1] |
||
837 | mcall |
||
838 | |||
1518 | dunkaist | 839 | ret |
840 | |||
841 | |||
842 | corners_outer: |
||
843 | |||
1522 | dunkaist | 844 | mov eax, 38 |
845 | mov ebx, [gbxm1_shl16_gbxm1] |
||
846 | sub ebx, [g_e] |
||
847 | mov ecx, [gbym1_shl16_gbym1] |
||
848 | mov edx, [decorations_color] |
||
849 | mcall |
||
1518 | dunkaist | 850 | |
1522 | dunkaist | 851 | mov ecx, [gbym1_plus_gh_mul_gs] |
852 | shl ecx, 16 |
||
853 | add ecx, [gbym1_plus_gh_mul_gs] |
||
854 | mcall |
||
855 | |||
856 | mov ebx, [gbxm1_plus_gw_mul_gs] |
||
857 | shl ebx, 16 |
||
858 | add ebx, [gbxm1_plus_gw_mul_gs] |
||
859 | add ebx, [g_e] |
||
860 | mcall |
||
861 | |||
862 | mov ecx, [gbym1_shl16_gbym1] |
||
863 | mcall |
||
864 | |||
865 | mov ebx, [gbxm1_shl16_gbxm1] |
||
866 | mov ecx, [gbym1_shl16_gbym1] |
||
867 | sub ecx, [g_e] |
||
868 | mcall |
||
869 | |||
870 | mov ebx, [gbxm1_plus_gw_mul_gs] |
||
871 | shl ebx, 16 |
||
872 | add ebx, [gbxm1_plus_gw_mul_gs] |
||
873 | mcall |
||
874 | |||
875 | mov ecx, [gbym1_plus_gh_mul_gs] |
||
876 | shl ecx, 16 |
||
877 | add ecx, [gbym1_plus_gh_mul_gs] |
||
878 | add ecx, [g_e] |
||
879 | mcall |
||
880 | |||
881 | mov ebx, [gbxm1_shl16_gbxm1] |
||
882 | mcall |
||
883 | |||
1518 | dunkaist | 884 | ret |
885 | |||
886 | |||
887 | corners_crosses: |
||
888 | |||
889 | call corners_inner |
||
890 | call corners_outer |
||
891 | |||
892 | ret |
||
893 | |||
894 | |||
895 | ;;---Draw_decorations-------------------------------------------------------------------------------------------------- |
||
896 | |||
897 | |||
898 | Draw_square: |
||
899 | ;;===Draw_square======================================================================================================= |
||
900 | ;; bl - x_coord |
||
901 | ;; bh - y_coord |
||
902 | ;; edx - color |
||
903 | |||
1566 | dunkaist | 904 | push eax ebx ecx edx |
905 | |||
1518 | dunkaist | 906 | mov cl, bh |
907 | |||
1522 | dunkaist | 908 | mov al, byte[g_s] |
1518 | dunkaist | 909 | mul bl |
910 | mov bx, ax |
||
1522 | dunkaist | 911 | add bx, word[gbxm1] |
912 | inc bx |
||
1518 | dunkaist | 913 | shl ebx, 16 |
1522 | dunkaist | 914 | add ebx, [g_s] |
915 | dec ebx |
||
1518 | dunkaist | 916 | |
1522 | dunkaist | 917 | mov al, byte[g_s] |
1518 | dunkaist | 918 | mul cl |
919 | mov cx, ax |
||
1522 | dunkaist | 920 | add cx, word[gbym1] |
921 | inc cx |
||
1518 | dunkaist | 922 | shl ecx, 16 |
1522 | dunkaist | 923 | add ecx, [g_s] |
924 | dec ecx |
||
1566 | dunkaist | 925 | |
1518 | dunkaist | 926 | mcall 13 |
927 | |||
1566 | dunkaist | 928 | pop edx ecx ebx eax |
929 | |||
1518 | dunkaist | 930 | ret |
931 | |||
932 | ;;---Draw_square------------------------------------------------------------------------------------------------------- |
||
933 | |||
934 | |||
935 | Draw_menu_esc: |
||
936 | ;;===Draw_menu_esc===================================================================================================== |
||
937 | |||
1522 | dunkaist | 938 | mov ebx, [window_width] |
939 | shr ebx, 1 |
||
1566 | dunkaist | 940 | sub ebx, string_menu_esc.size*3+6 |
1522 | dunkaist | 941 | shl ebx, 16 |
942 | add ebx, dword[top_strings] |
||
943 | mcall 4, ,[navigation_strings_color],string_menu_esc |
||
1518 | dunkaist | 944 | |
945 | ret |
||
946 | |||
947 | ;;---Draw_menu_esc----------------------------------------------------------------------------------------------------- |
||
948 | |||
949 | |||
950 | Draw_score_string: |
||
951 | ;;===Draw_score_string================================================================================================= |
||
1522 | dunkaist | 952 | |
953 | mov ebx, [window_width] |
||
954 | shr ebx, 3 |
||
955 | sub ebx, 5 |
||
956 | shl ebx, 16 |
||
957 | add ebx, dword[bottom_top_strings] |
||
958 | mcall 4, ,[score_string_color],string_score |
||
1566 | dunkaist | 959 | |
1518 | dunkaist | 960 | ret |
1566 | dunkaist | 961 | |
1518 | dunkaist | 962 | ;;---Draw_score_string------------------------------------------------------------------------------------------------- |
963 | |||
964 | |||
965 | Draw_score_number: |
||
966 | ;;===Draw_score_number================================================================================================= |
||
1522 | dunkaist | 967 | |
968 | mov edx, [window_width] |
||
969 | shr edx, 3 |
||
1566 | dunkaist | 970 | sub edx, 5+1 |
971 | add edx, string_score.size*6 |
||
1522 | dunkaist | 972 | shl edx, 16 |
973 | add edx, dword[bottom_top_strings] |
||
974 | mcall 47,0x00070000,[score], ,[score_number_color],[background_color] |
||
1566 | dunkaist | 975 | |
1518 | dunkaist | 976 | ret |
1566 | dunkaist | 977 | |
1518 | dunkaist | 978 | ;;---Draw_score_number------------------------------------------------------------------------------------------------- |
979 | |||
980 | |||
981 | Draw_hiscore_string: |
||
982 | ;;===Draw_hiscore_string=============================================================================================== |
||
983 | |||
1522 | dunkaist | 984 | mov ebx, [window_width] |
985 | shr ebx, 3 |
||
986 | neg ebx |
||
987 | add ebx, [window_width] |
||
1566 | dunkaist | 988 | sub ebx, string_hi_score.size*6+7*6+5 |
1522 | dunkaist | 989 | shl ebx, 16 |
990 | add ebx, dword[bottom_top_strings] |
||
991 | mcall 4, ,[hiscore_string_color],string_hi_score |
||
1518 | dunkaist | 992 | |
993 | ret |
||
994 | |||
995 | ;;---Draw_hiscore_string----------------------------------------------------------------------------------------------- |
||
996 | |||
1566 | dunkaist | 997 | |
1518 | dunkaist | 998 | Draw_hiscore_number: |
1566 | dunkaist | 999 | ;;===Draw_hiscore_number=================================================================================================== |
1518 | dunkaist | 1000 | |
1522 | dunkaist | 1001 | mov edx, [window_width] |
1002 | shr edx, 3 |
||
1003 | neg edx |
||
1004 | add edx, [window_width] |
||
1005 | sub edx, 7*6+6 |
||
1006 | shl edx, 16 |
||
1007 | add edx, dword[bottom_top_strings] |
||
1518 | dunkaist | 1008 | |
1566 | dunkaist | 1009 | cmp [play_mode], CLASSIC_MODE |
1010 | jne @f |
||
1011 | mov ecx, [hi_score_classic] |
||
1012 | jmp .done |
||
1013 | @@: |
||
1014 | mov ecx, [hi_score_levels] |
||
1015 | |||
1016 | .done: |
||
1017 | mcall 47,0x00070000, , ,[hiscore_number_color] |
||
1018 | |||
1518 | dunkaist | 1019 | ret |
1020 | |||
1566 | dunkaist | 1021 | ;;---Draw_hiscore_number--------------------------------------------------------------------------------------------------- |
1022 | |||
1023 | |||
1518 | dunkaist | 1024 | Draw_champion_string: |
1566 | dunkaist | 1025 | ;;===Draw_champion_string================================================================================================== |
1518 | dunkaist | 1026 | |
1522 | dunkaist | 1027 | mov ebx, [window_width] |
1028 | shr ebx, 3 |
||
1029 | neg ebx |
||
1030 | add ebx, [window_width] |
||
1566 | dunkaist | 1031 | sub ebx, string_champion.size*6+7*6+5 |
1522 | dunkaist | 1032 | shl ebx, 16 |
1033 | add ebx, dword[bottom_bottom_strings] |
||
1034 | mcall 4, ,[champion_string_color],string_champion |
||
1518 | dunkaist | 1035 | |
1036 | ret |
||
1037 | |||
1038 | ;;---Draw_champion_string---------------------------------------------------------------------------------------------- |
||
1039 | |||
1040 | |||
1041 | Draw_champion_name: |
||
1042 | ;;===Draw_champion_name================================================================================================ |
||
1043 | |||
1522 | dunkaist | 1044 | mov ebx, [window_width] |
1045 | shr ebx, 3 |
||
1046 | neg ebx |
||
1047 | add ebx, [window_width] |
||
1566 | dunkaist | 1048 | sub ebx, CHAMPION_NAME_LENGTH/2*6+7*6+6 ; there is no difference between length of champion names for other play_modes |
1049 | add ebx, CHAMPION_NAME_LENGTH/2*6 |
||
1522 | dunkaist | 1050 | shl ebx, 16 |
1051 | add ebx, dword[bottom_bottom_strings] |
||
1518 | dunkaist | 1052 | |
1566 | dunkaist | 1053 | cmp [play_mode], CLASSIC_MODE |
1054 | jne @f |
||
1055 | mov edx, champion_name_classic |
||
1056 | jmp .done |
||
1057 | @@: |
||
1058 | mov edx, champion_name_levels |
||
1059 | |||
1060 | .done: |
||
1061 | mcall 4, ,[champion_name_color], |
||
1062 | |||
1518 | dunkaist | 1063 | ret |
1064 | |||
1065 | ;;---Draw_champion_name------------------------------------------------------------------------------------------------ |
||
1066 | |||
1067 | |||
1068 | Draw_picture: |
||
1069 | ;;===Draw_picture====================================================================================================== |
||
1070 | ;; in : |
||
1522 | dunkaist | 1071 | ;; ax = number of left square *0x100+ picture width (in squares) |
1072 | ;; cx = number of top square *0x100+ picture height (in squares) |
||
1518 | dunkaist | 1073 | ;; edx = picture color |
1522 | dunkaist | 1074 | ;; esi = pointer to picture data |
1518 | dunkaist | 1075 | ;; |
1076 | |||
1522 | dunkaist | 1077 | add al, ah |
1078 | add cl, ch |
||
1079 | mov bh, ch |
||
1080 | |||
1518 | dunkaist | 1081 | .draw: |
1522 | dunkaist | 1082 | mov bl, ah |
1677 | dunkaist | 1083 | mov di, 7 |
1518 | dunkaist | 1084 | |
1085 | .loop: |
||
1677 | dunkaist | 1086 | bt word[esi], di |
1087 | jnc @f |
||
1088 | push eax ebx ecx esi edi |
||
1518 | dunkaist | 1089 | call Draw_square |
1677 | dunkaist | 1090 | pop edi esi ecx ebx eax |
1518 | dunkaist | 1091 | |
1092 | @@: |
||
1677 | dunkaist | 1093 | dec di |
1094 | jns @f |
||
1095 | mov di, 7 |
||
1522 | dunkaist | 1096 | inc esi |
1677 | dunkaist | 1097 | @@: |
1518 | dunkaist | 1098 | inc bl |
1522 | dunkaist | 1099 | cmp bl, al |
1518 | dunkaist | 1100 | jne .loop |
1101 | |||
1522 | dunkaist | 1102 | inc bh |
1677 | dunkaist | 1103 | cmp di, 7 |
1104 | jz @f |
||
1105 | inc esi |
||
1106 | @@: |
||
1522 | dunkaist | 1107 | cmp bh, cl |
1108 | jne .draw |
||
1677 | dunkaist | 1109 | |
1518 | dunkaist | 1110 | ret |
1111 | |||
1112 | ;;---Draw_picture------------------------------------------------------------------------------------------------------ |
||
1113 | |||
1114 | |||
1115 | Draw_on_map: |
||
1116 | ;;===Draw_on_map======================================================================================================= |
||
1117 | ;; in : |
||
1118 | ;; al = x coord |
||
1119 | ;; ah = y coord |
||
1120 | ;; cl = value to draw |
||
1121 | ;; |
||
1122 | |||
1123 | and eax, 0x0000ffff |
||
1124 | xor bx, bx |
||
1125 | mov bl, al |
||
1126 | shr ax, 8 |
||
1566 | dunkaist | 1127 | mov dx, GRID_WIDTH |
1518 | dunkaist | 1128 | mul dx |
1129 | add ax, bx |
||
1677 | dunkaist | 1130 | mov edi, field_map |
1131 | add edi, eax |
||
1132 | mov [edi], cl |
||
1518 | dunkaist | 1133 | |
1134 | ret |
||
1135 | |||
1677 | dunkaist | 1136 | ;;---Draw_on_map------------------------------------------------------------------------------------------------------- |
1518 | dunkaist | 1137 | |
1138 | |||
1139 | Get_from_map: |
||
1677 | dunkaist | 1140 | ;;===Get_from_map====================================================================================================== |
1518 | dunkaist | 1141 | ;; in : |
1142 | ;; al = x coord |
||
1143 | ;; ah = y coord |
||
1144 | ;; out : |
||
1522 | dunkaist | 1145 | ;; bl = value on map |
1518 | dunkaist | 1146 | ;; |
1147 | |||
1148 | push eax |
||
1149 | |||
1150 | and eax, 0x0000ffff |
||
1151 | xor bx, bx |
||
1152 | mov bl, al |
||
1153 | shr ax, 8 |
||
1566 | dunkaist | 1154 | mov dx, GRID_WIDTH |
1518 | dunkaist | 1155 | mul dx |
1156 | add ax, bx |
||
1157 | mov edi, field_map |
||
1158 | add edi, eax |
||
1159 | mov bl, [edi] |
||
1160 | |||
1161 | pop eax |
||
1162 | |||
1163 | ret |
||
1164 | |||
1566 | dunkaist | 1165 | ;;---Get_from_map----------------------------------------------------------------------------------------------------------- |
1518 | dunkaist | 1166 | |
1167 | |||
1566 | dunkaist | 1168 | Load_level: |
1169 | ;;===Load_level============================================================================================================= |
||
1170 | ;; in : |
||
1171 | ;; cur_level_number = level number to load |
||
1172 | ;; |
||
1518 | dunkaist | 1173 | |
1566 | dunkaist | 1174 | mov eax, [cur_level_number] |
1175 | mov edx, stage_00 |
||
1176 | @@: |
||
1177 | test al, al |
||
1178 | jz @f |
||
1677 | dunkaist | 1179 | add edx, stage_01-stage_00 |
1566 | dunkaist | 1180 | dec al |
1181 | jmp @b |
||
1182 | @@: |
||
1677 | dunkaist | 1183 | |
1184 | mov esi, window_title_with_lives |
||
1185 | mov edi, window_title+5 |
||
1186 | |||
1187 | .lives_in_title: |
||
1188 | cmp [play_mode], LEVELS_MODE |
||
1189 | jne .level_name_in_title |
||
1190 | test [show_lives_style], 1 |
||
1191 | jz .level_name_in_title |
||
1192 | mov [edi], byte ' ' |
||
1193 | mov al, byte[separating_symbol] |
||
1194 | mov [edi+1], byte al |
||
1195 | mov [edi+2], byte ' ' |
||
1196 | add edi, 3 |
||
1197 | mov eax, [lives] |
||
1198 | add al, 0x30 |
||
1199 | mov [window_title_with_lives], al |
||
1200 | mov ecx, 10 |
||
1201 | rep movsb |
||
1202 | dec edi |
||
1203 | |||
1204 | .level_name_in_title: |
||
1205 | cmp [draw_level_name_in_window_title], 1 |
||
1206 | jne @f |
||
1207 | mov [edi], byte ' ' |
||
1208 | mov al, byte[separating_symbol] |
||
1209 | mov [edi+1], byte al |
||
1210 | mov [edi+2], byte ' ' |
||
1211 | add edi, 3 |
||
1212 | mov esi, edx |
||
1213 | add esi, LEVEL.name |
||
1214 | mov esi, [esi] |
||
1215 | mov ecx, 16 |
||
1216 | rep movsd |
||
1217 | |||
1218 | @@: |
||
1219 | mcall 71,1,window_title |
||
1220 | |||
1566 | dunkaist | 1221 | mov [cur_level], edx |
1518 | dunkaist | 1222 | |
1566 | dunkaist | 1223 | mov esi, edx |
1224 | add esi, LEVEL.field |
||
1225 | mov edi, field_map |
||
1677 | dunkaist | 1226 | mov ecx, 2 |
1227 | mov ah, GRID_HEIGHT |
||
1228 | .begin: |
||
1229 | mov ebx, 7 |
||
1230 | mov al, GRID_WIDTH |
||
1231 | .loop: |
||
1232 | bt [esi], ebx |
||
1233 | jnc @f |
||
1234 | mov byte[edi], cl |
||
1235 | jmp .skip |
||
1236 | @@: |
||
1237 | mov byte[edi], 0 |
||
1238 | .skip: |
||
1239 | dec ebx |
||
1240 | jns @f |
||
1241 | mov ebx, 7 |
||
1242 | inc esi |
||
1243 | @@: |
||
1244 | inc edi |
||
1245 | dec al |
||
1246 | jnz .loop |
||
1247 | inc esi |
||
1248 | dec ah |
||
1249 | jnz .begin |
||
1518 | dunkaist | 1250 | |
1677 | dunkaist | 1251 | |
1566 | dunkaist | 1252 | mov esi, edx |
1253 | add esi, LEVEL.snake_dots |
||
1254 | mov edi, snake_dots |
||
1255 | mov ecx, 3 |
||
1256 | rep movsw |
||
1257 | |||
1258 | mov esi, edx |
||
1259 | add esi, LEVEL.snake_direction |
||
1260 | mov eax, [esi] |
||
1261 | mov [snake_direction], eax |
||
1262 | |||
1263 | mov esi, edx |
||
1264 | add esi, LEVEL.snake_direction_next |
||
1265 | mov eax, [esi] |
||
1266 | mov [snake_direction_next], eax |
||
1267 | |||
1268 | mov esi, edx |
||
1269 | add esi, LEVEL.number_of_stones |
||
1270 | mov eax, [esi] |
||
1271 | mov [number_of_free_dots], GRID_WIDTH*GRID_HEIGHT-3 |
||
1272 | sub [number_of_free_dots], eax |
||
1273 | |||
1274 | mov ax, word[snake_dots] |
||
1275 | mov cl, 1 |
||
1276 | call Draw_on_map |
||
1277 | mov ax, word[snake_dots+2] |
||
1278 | mov cl, 1 |
||
1279 | call Draw_on_map |
||
1280 | mov ax, word[snake_dots+4] |
||
1281 | mov cl, 1 |
||
1282 | call Draw_on_map |
||
1283 | |||
1284 | mov [action], 0 |
||
1285 | mov [snake_length_x2], 6 |
||
1286 | |||
1287 | ret |
||
1288 | |||
1289 | ;;---Load_level------------------------------------------------------------------------------------------------------------- |
||
1290 | |||
1291 | |||
1292 | Draw_stones: |
||
1293 | ;;===Draw_stones============================================================================================================ |
||
1294 | |||
1295 | mov ax, 0*0x100+GRID_WIDTH |
||
1296 | mov cx, 0*0x100+GRID_HEIGHT |
||
1297 | mov edx, [stone_color] |
||
1298 | mov esi, [cur_level] |
||
1299 | add esi, LEVEL.field |
||
1300 | call Draw_picture |
||
1301 | |||
1302 | ret |
||
1303 | |||
1304 | ;;---Draw_stones------------------------------------------------------------------------------------------------------------ |
||
1305 | |||
1306 | |||
1307 | Hide_cursor: |
||
1308 | ;;===Hide_cursor=========================================================================================================== |
||
1309 | |||
1310 | mcall 37,5,[cursor_handle] |
||
1311 | |||
1312 | ret |
||
1313 | |||
1314 | ;;---Show_cursor----------------------------------------------------------------------------------------------------------- |
||
1315 | |||
1316 | |||
1317 | Show_cursor: |
||
1318 | ;;===Hide_cursor=========================================================================================================== |
||
1319 | |||
1320 | mcall 37,5,0 |
||
1321 | |||
1322 | ret |
||
1323 | |||
1324 | ;;---Show_cursor----------------------------------------------------------------------------------------------------------- |
||
1325 | |||
1326 | |||
1677 | dunkaist | 1327 | Set_window_mode: |
1328 | ;;===Set_window_mode======================================================================================================= |
||
1566 | dunkaist | 1329 | |
1677 | dunkaist | 1330 | test al, al |
1331 | jnz .fullscreen |
||
1332 | mov eax, [window_style_windowed] |
||
1333 | jmp .quit |
||
1566 | dunkaist | 1334 | |
1677 | dunkaist | 1335 | .fullscreen: |
1336 | mov eax, [window_style_fullscreen] |
||
1337 | |||
1338 | .quit: |
||
1339 | mov [window_style], eax |
||
1340 | ret |
||
1341 | |||
1342 | ;;---Some_functions------------------------------------------------------------------------------------------------------------ |
||
1343 | |||
1344 | |||
1345 | Reverse_snake: |
||
1346 | ;;===Reverse_snake========================================================================================================= |
||
1347 | |||
1348 | cmp [snake_direction], LEFT |
||
1349 | jne @f |
||
1350 | mov [snake_direction_next], RIGHT |
||
1351 | jmp .quit |
||
1352 | @@: |
||
1353 | cmp [snake_direction], RIGHT |
||
1354 | jne @f |
||
1355 | mov [snake_direction_next], LEFT |
||
1356 | jmp .quit |
||
1357 | @@: |
||
1358 | cmp [snake_direction], UP |
||
1359 | jne @f |
||
1360 | mov [snake_direction_next], DOWN |
||
1361 | jmp .quit |
||
1362 | @@: |
||
1363 | cmp [snake_direction], DOWN |
||
1364 | jne @f |
||
1365 | mov [snake_direction_next], UP |
||
1366 | ; jmp .quit |
||
1367 | @@: |
||
1368 | |||
1369 | .quit: |
||
1370 | ret |
||
1371 | |||
1372 | ;;---Reverse_snake--------------------------------------------------------------------------------------------------------- |
||
1373 | |||
1374 | |||
1566 | dunkaist | 1375 | ;;===Variables================================================================================================================== |
1376 | |||
1677 | dunkaist | 1377 | window_title db 'Snake',64+15 dup (0) |
1378 | window_title_with_lives db '_ live(s)',0 |
||
1379 | default_separating_symbol db '|',0 |
||
1380 | window_style_windowed dd 0x33000000 ; scalable skinned window |
||
1381 | window_style_fullscreen dd 0x00000000 |
||
1518 | dunkaist | 1382 | time_before_waiting dd 0x0 |
1383 | time_to_wait dd 0x0 |
||
1384 | time_wait_limit dd 101 |
||
1677 | dunkaist | 1385 | time_wait_limit_const dd 0x0 |
1518 | dunkaist | 1386 | |
1566 | dunkaist | 1387 | play_mode dd 0x0 |
1677 | dunkaist | 1388 | lives dd START_LIVES |
1389 | acceleration_mask dd 0x0 |
||
1518 | dunkaist | 1390 | |
1677 | dunkaist | 1391 | resized_by_hotkey dd 0x0 |
1392 | fullscreen dd 0x0 |
||
1566 | dunkaist | 1393 | |
1394 | szZ string_score ,'SCORE : ' |
||
1395 | szZ string_hi_score ,'HI-SCORE : ' |
||
1396 | szZ string_champion ,'CHAMPION : ' |
||
1397 | szZ string_level ,'LEVEL : ' |
||
1398 | szZ string_pause_space ,'PAUSE - ',0x27,'SPACE',0x27 |
||
1399 | szZ string_resume_space ,'RESUME - ',0x27,'SPACE',0x27 |
||
1400 | szZ string_menu_esc ,'MENU - ',0x27,'ESC',0x27 |
||
1401 | szZ string_apply_name_enter ,'APPLY NAME - ',0x27,'ENTER',0x27 |
||
1402 | szZ press_to_start ,'PRESS ',0x27,'ENTER',0x27,' TO START' |
||
1403 | szZ press_esc_to_exit ,'PRESS ',0x27,'ESC',0x27,' TO EXIT' |
||
1518 | dunkaist | 1404 | ;press_F2_to_options db 'PRESS ',0x27,'F2',0x27,' TO OPTIONS',0 |
1405 | |||
1566 | dunkaist | 1406 | szZ string_congratulations ,' Congratulations!!! New hi-score is : ' |
1407 | szZ string_enter_your_name ,'You are the champion! Enter your name : ' |
||
1522 | dunkaist | 1408 | |
1566 | dunkaist | 1409 | szZ string_button_play ,'PLAY' |
1410 | szZ string_button_exit ,'EXIT' |
||
1411 | szZ string_button_inc ,'+INC+' |
||
1412 | szZ string_button_dec ,'-dec-' |
||
1413 | szZ string_button_pm_classic,'CLASSIC mode' |
||
1414 | szZ string_button_pm_levels ,'LEVELS mode' |
||
1518 | dunkaist | 1415 | |
1566 | dunkaist | 1416 | is_new_record dd 0 |
1518 | dunkaist | 1417 | |
1566 | dunkaist | 1418 | action dd 0 |
1518 | dunkaist | 1419 | |
1677 | dunkaist | 1420 | picture_first_menu_snake db 0xf4,0x99,0x2f,\ |
1421 | 0x86,0xa5,0x49,\ |
||
1422 | 0xf5,0xa5,0x8f,\ |
||
1423 | 0x15,0xbd,0x48,\ |
||
1424 | 0xf4,0xa5,0x2f |
||
1518 | dunkaist | 1425 | |
1677 | dunkaist | 1426 | picture_first_menu_version db 0xf1,0xe0,\ |
1427 | 0x90,0x20,\ |
||
1428 | 0x90,0x20,\ |
||
1429 | 0x90,0x20,\ |
||
1430 | 0xf4,0x20 |
||
1518 | dunkaist | 1431 | |
1677 | dunkaist | 1432 | picture_pause db 11100011b,00100101b,11101111b,\ |
1433 | 10010100b,10100101b,00001000b,\ |
||
1434 | 10010100b,10100101b,00001000b,\ |
||
1435 | 11100111b,10100101b,11101111b,\ |
||
1436 | 10000100b,10100100b,00101000b,\ |
||
1437 | 10000100b,10011001b,11101111b |
||
1518 | dunkaist | 1438 | |
1677 | dunkaist | 1439 | picture_game_over db 00110000b,00000000b,00000000b,00000000b,\ |
1440 | 01001001b,11001000b,10111100b,00000000b,\ |
||
1441 | 10000010b,00101101b,10100000b,00000000b,\ |
||
1442 | 10011010b,00101010b,10111000b,00000000b,\ |
||
1443 | 10001011b,11101000b,10100000b,00000000b,\ |
||
1444 | 01110010b,00101000b,10111100b,00000000b,\ |
||
1445 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1446 | 00000111b,00000000b,00000000b,00000000b,\ |
||
1447 | 00001000b,10100010b,11110111b,10000000b,\ |
||
1448 | 00001000b,10100010b,10000100b,01000000b,\ |
||
1449 | 00001000b,10100010b,11100100b,01000000b,\ |
||
1450 | 00001000b,10010100b,10000111b,10000000b,\ |
||
1451 | 00000111b,00001000b,11110100b,01000000b |
||
1518 | dunkaist | 1452 | |
1760 | dunkaist | 1453 | ;picture_you_win db 10001001b,11001000b,10000000b,\ |
1454 | ; 10001010b,00101000b,10000000b,\ |
||
1455 | ; 01010010b,00101000b,10000000b,\ |
||
1456 | ; 00100010b,00101000b,10000000b,\ |
||
1457 | ; 00100001b,11000111b,00000000b,\ |
||
1458 | ; 00000000b,00000000b,00000000b,\ |
||
1459 | ; 00000000b,00000000b,00000000b,\ |
||
1460 | ; 01000100b,10010001b,00000000b,\ |
||
1461 | ; 01010100b,10011001b,00000000b,\ |
||
1462 | ; 01010100b,10010101b,00000000b,\ |
||
1463 | ; 01010100b,10010011b,00000000b,\ |
||
1464 | ; 00101000b,10010001b,00000000b |
||
1518 | dunkaist | 1465 | |
1760 | dunkaist | 1466 | picture_you_win db 01000100b,01000011b,10001000b,10000000b,\ |
1467 | 01000100b,01000100b,01001000b,10000000b,\ |
||
1468 | 01000100b,01000100b,00001000b,10000000b,\ |
||
1469 | 01111100b,01000100b,11001111b,10000000b,\ |
||
1470 | 01000100b,01000100b,01001000b,10000000b,\ |
||
1471 | 01000100b,01000011b,10001000b,10000000b,\ |
||
1472 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1473 | 11110011b,10011100b,11110011b,11000000b,\ |
||
1474 | 10000100b,00100010b,10001010b,00000000b,\ |
||
1475 | 11110100b,00100010b,10001011b,10000000b,\ |
||
1476 | 00010100b,00100010b,11110010b,00000000b,\ |
||
1477 | 11110011b,10011100b,10001011b,11000000b |
||
1478 | |||
1677 | dunkaist | 1479 | picture_level db 10000111b,10100101b,11101000b,\ |
1480 | 10000100b,00100101b,00001000b,\ |
||
1481 | 10000111b,00100101b,11001000b,\ |
||
1482 | 10000100b,00101001b,00001000b,\ |
||
1483 | 11110111b,10110001b,11101111b |
||
1566 | dunkaist | 1484 | |
1677 | dunkaist | 1485 | digits_font db 0xf0,0x90,0x90,0x90,0xf0,\ |
1486 | 0x20,0x60,0x20,0x20,0x20,\ |
||
1487 | 0xf0,0x10,0xf0,0x80,0xf0,\ |
||
1488 | 0xf0,0x10,0x70,0x10,0xf0,\ |
||
1489 | 0x90,0x90,0xf0,0x10,0x10,\ |
||
1490 | 0xf0,0x80,0xf0,0x10,0xf0,\ |
||
1491 | 0xf0,0x80,0xf0,0x90,0xf0,\ |
||
1492 | 0xf0,0x10,0x10,0x10,0x10,\ |
||
1493 | 0xf0,0x90,0xf0,0x90,0xf0,\ |
||
1494 | 0xf0,0x90,0xf0,0x10,0xf0 |
||
1566 | dunkaist | 1495 | |
1496 | stage_00: |
||
1677 | dunkaist | 1497 | .field db 00000000b,00000000b,00000000b,00000000b,\ |
1498 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1499 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1500 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1501 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1502 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1503 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1504 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1505 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1506 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1507 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1508 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1509 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1510 | 00000000b,00000000b,00000000b,00000000b |
||
1566 | dunkaist | 1511 | |
1512 | .snake_dots db 3,3, 4,3, 5,3 |
||
1513 | .snake_direction dd RIGHT |
||
1514 | .snake_direction_next dd RIGHT |
||
1515 | .number_of_stones dd 0 |
||
1677 | dunkaist | 1516 | .name dd stage_00_name |
1566 | dunkaist | 1517 | |
1518 | stage_01: |
||
1677 | dunkaist | 1519 | .field db 11111000b,00000000b,00000001b,11110000b,\ |
1520 | 10000000b,00000000b,00000000b,00010000b,\ |
||
1521 | 10000000b,00000000b,00000000b,00010000b,\ |
||
1522 | 10000000b,00000000b,00000000b,00010000b,\ |
||
1523 | 10000000b,00000000b,00000000b,00010000b,\ |
||
1524 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1525 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1526 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1527 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1528 | 10000000b,00000000b,00000000b,00010000b,\ |
||
1529 | 10000000b,00000000b,00000000b,00010000b,\ |
||
1530 | 10000000b,00000000b,00000000b,00010000b,\ |
||
1531 | 10000000b,00000000b,00000000b,00010000b,\ |
||
1532 | 11111000b,00000000b,00000001b,11110000b |
||
1566 | dunkaist | 1533 | |
1534 | .snake_dots db 3,3, 4,3, 5,3 |
||
1535 | .snake_direction dd RIGHT |
||
1536 | .snake_direction_next dd RIGHT |
||
1537 | .number_of_stones dd 36 |
||
1677 | dunkaist | 1538 | .name dd stage_01_name |
1566 | dunkaist | 1539 | |
1540 | stage_02: |
||
1677 | dunkaist | 1541 | .field db 00000000b,00000000b,00000000b,00000000b,\ |
1542 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1543 | 00011111b,11000000b,00111111b,10000000b,\ |
||
1544 | 00010000b,00000000b,00000000b,10000000b,\ |
||
1545 | 00010000b,00000000b,00000000b,10000000b,\ |
||
1546 | 00010000b,00000000b,00000000b,10000000b,\ |
||
1547 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1548 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1549 | 00010000b,00000000b,00000000b,10000000b,\ |
||
1550 | 00010000b,00000000b,00000000b,10000000b,\ |
||
1551 | 00010000b,00000000b,00000000b,10000000b,\ |
||
1552 | 00011111b,11000000b,00111111b,10000000b,\ |
||
1553 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1554 | 00000000b,00000000b,00000000b,00000000b |
||
1566 | dunkaist | 1555 | |
1556 | .snake_dots db 7,5, 8,5, 9,5 |
||
1557 | .snake_direction dd RIGHT |
||
1558 | .snake_direction_next dd RIGHT |
||
1559 | .number_of_stones dd 40 |
||
1677 | dunkaist | 1560 | .name dd stage_02_name |
1566 | dunkaist | 1561 | |
1562 | stage_03: |
||
1677 | dunkaist | 1563 | .field db 00000000b,00000000b,00000000b,00000000b,\ |
1564 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1565 | 00000000b,00001001b,00000000b,00000000b,\ |
||
1566 | 00000000b,00001001b,00000000b,00000000b,\ |
||
1567 | 00000000b,00001001b,00000000b,00000000b,\ |
||
1568 | 00001111b,11111001b,11111111b,00000000b,\ |
||
1569 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1570 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1571 | 00001111b,11111001b,11111111b,00000000b,\ |
||
1572 | 00000000b,00001001b,00000000b,00000000b,\ |
||
1573 | 00000000b,00001001b,00000000b,00000000b,\ |
||
1574 | 00000000b,00001001b,00000000b,00000000b,\ |
||
1575 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1576 | 00000000b,00000000b,00000000b,00000000b |
||
1566 | dunkaist | 1577 | |
1578 | .snake_dots db 23,0, 22,0, 21,0 |
||
1579 | .snake_direction dd LEFT |
||
1580 | .snake_direction_next dd LEFT |
||
1677 | dunkaist | 1581 | .number_of_stones dd 48 |
1582 | .name dd stage_03_name |
||
1566 | dunkaist | 1583 | |
1584 | stage_04: |
||
1677 | dunkaist | 1585 | .field db 00000000b,00000000b,00000000b,00000000b,\ |
1586 | 00000000b,00100000b,01000000b,00000000b,\ |
||
1587 | 00000010b,00100000b,01000100b,00000000b,\ |
||
1588 | 00000010b,00000000b,00000100b,00000000b,\ |
||
1589 | 00010000b,00100000b,01000000b,10000000b,\ |
||
1590 | 00000010b,00100000b,01000100b,00000000b,\ |
||
1591 | 00010010b,00000000b,00000100b,10000000b,\ |
||
1592 | 00010010b,00000000b,00000100b,10000000b,\ |
||
1593 | 00000010b,00100000b,01000000b,00000000b,\ |
||
1594 | 00010000b,00100000b,01000000b,10000000b,\ |
||
1595 | 00000010b,00000000b,00000100b,00000000b,\ |
||
1596 | 00000010b,00100000b,01000100b,00000000b,\ |
||
1597 | 00000000b,00100000b,01000000b,00000000b,\ |
||
1598 | 00000000b,00000000b,00000000b,00000000b |
||
1566 | dunkaist | 1599 | |
1600 | .snake_dots db 19,6, 19,7, 19,8 |
||
1601 | .snake_napravlenie dd DOWN |
||
1602 | .snake_napravlenie_next dd DOWN |
||
1677 | dunkaist | 1603 | .number_of_stones dd 39 |
1604 | .name dd stage_04_name |
||
1566 | dunkaist | 1605 | |
1606 | stage_05: |
||
1677 | dunkaist | 1607 | .field db 00000000b,00000000b,00000000b,00000000b,\ |
1608 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1609 | 00000001b,11111111b,11111000b,00000000b,\ |
||
1610 | 00000001b,11111111b,11111000b,00000000b,\ |
||
1611 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1612 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1613 | 00000111b,11111111b,11111110b,00000000b,\ |
||
1614 | 00000111b,11111111b,11111110b,00000000b,\ |
||
1615 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1616 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1617 | 00111111b,11111111b,11111111b,11000000b,\ |
||
1618 | 00111111b,11111111b,11111111b,11000000b,\ |
||
1619 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1620 | 00000000b,00000000b,00000000b,00000000b |
||
1566 | dunkaist | 1621 | |
1622 | .snake_dots db 0,0, 0,1, 1,1 |
||
1623 | .snake_direction dd RIGHT |
||
1624 | .snake_direction_next dd RIGHT |
||
1625 | .number_of_stones dd 112 |
||
1677 | dunkaist | 1626 | .name dd stage_05_name |
1566 | dunkaist | 1627 | |
1628 | stage_06: |
||
1677 | dunkaist | 1629 | .field db 00000001b,10000000b,00000000b,00000000b,\ |
1630 | 00000001b,11111111b,11111000b,00000000b,\ |
||
1631 | 00000001b,11111111b,11111000b,00000000b,\ |
||
1632 | 00000000b,00000000b,00011000b,00000000b,\ |
||
1633 | 00000000b,00000000b,00011000b,00000000b,\ |
||
1634 | 00011111b,11111111b,11111000b,00000000b,\ |
||
1635 | 00011111b,11111111b,11111000b,00000000b,\ |
||
1636 | 00011000b,00000000b,00000000b,00000000b,\ |
||
1637 | 00011000b,00000000b,00000000b,00000000b,\ |
||
1638 | 00011111b,11111111b,11111111b,11100000b,\ |
||
1639 | 00011111b,11111111b,11111111b,11100000b,\ |
||
1640 | 00000000b,00000000b,00000000b,01100000b,\ |
||
1641 | 00000000b,00000000b,00000000b,01100000b,\ |
||
1642 | 00000000b,00000000b,00000000b,01100000b |
||
1566 | dunkaist | 1643 | |
1644 | .snake_dots db 0,0, 0,1, 1,1 |
||
1645 | .snake_direction dd RIGHT |
||
1646 | .snake_direction_next dd RIGHT |
||
1647 | .number_of_stones dd 128 |
||
1677 | dunkaist | 1648 | .name dd stage_06_name |
1566 | dunkaist | 1649 | |
1650 | stage_07: |
||
1677 | dunkaist | 1651 | .field db 00000000b,00000000b,00000000b,00000000b,\ |
1652 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1653 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1654 | 00000011b,11111111b,11111100b,00000000b,\ |
||
1655 | 00000000b,00000000b,00000100b,00000000b,\ |
||
1656 | 00000011b,11111111b,11110100b,00000000b,\ |
||
1657 | 00000010b,00000000b,00010100b,00000000b,\ |
||
1658 | 00000010b,11111111b,11010100b,00000000b,\ |
||
1659 | 00000010b,00000000b,00010100b,00000000b,\ |
||
1660 | 00000010b,11111111b,11110100b,00000000b,\ |
||
1661 | 00000010b,00000000b,00000100b,00000000b,\ |
||
1662 | 00000011b,11111111b,11111100b,00000000b,\ |
||
1663 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1664 | 00000000b,00000000b,00000000b,00000000b |
||
1566 | dunkaist | 1665 | |
1666 | .snake_dots db 8,1, 9,1, 10,1 |
||
1667 | .snake_direction dd RIGHT |
||
1668 | .snake_direction_next dd RIGHT |
||
1669 | .number_of_stones dd 83 |
||
1677 | dunkaist | 1670 | .name dd stage_07_name |
1566 | dunkaist | 1671 | |
1672 | stage_08: |
||
1677 | dunkaist | 1673 | .field db 00000000b,00000000b,00000000b,00000000b,\ |
1674 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1675 | 00000000b,00000000b,00010000b,00000000b,\ |
||
1676 | 00001001b,00000001b,00000000b,00000000b,\ |
||
1677 | 00000001b,01001001b,00000101b,00000000b,\ |
||
1678 | 00000000b,01000000b,00000100b,00000000b,\ |
||
1679 | 00001111b,00000000b,11100000b,00000000b,\ |
||
1680 | 00000000b,00000000b,00001000b,10000000b,\ |
||
1681 | 00000111b,00100000b,10000010b,10000000b,\ |
||
1682 | 00010000b,00000000b,00000010b,00000000b,\ |
||
1683 | 00010000b,11000000b,01110010b,00000000b,\ |
||
1684 | 00010010b,00000000b,00000010b,00000000b,\ |
||
1685 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1686 | 00000000b,00000000b,00000000b,00000000b |
||
1566 | dunkaist | 1687 | |
1688 | .snake_dots db 0,0, 1,0, 2,0 |
||
1689 | .snake_direction dd RIGHT |
||
1690 | .snake_direction_next dd RIGHT |
||
1691 | .number_of_stones dd 40 |
||
1677 | dunkaist | 1692 | .name dd stage_08_name |
1566 | dunkaist | 1693 | |
1694 | stage_09: |
||
1677 | dunkaist | 1695 | .field db 00000000b,00000000b,00000000b,00000000b,\ |
1696 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1697 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1698 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1699 | 00111101b,00100110b,01001011b,11000000b,\ |
||
1700 | 00100001b,10101001b,01010010b,00000000b,\ |
||
1701 | 00111101b,01100001b,01100011b,10000000b,\ |
||
1702 | 00000101b,01100111b,01010010b,00000000b,\ |
||
1703 | 00111101b,00100001b,01001011b,11000000b,\ |
||
1704 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1705 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1706 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1707 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1708 | 00000000b,00000000b,00000000b,00000000b |
||
1566 | dunkaist | 1709 | |
1710 | .snake_dots db 12,6, 12,7, 12,8 |
||
1711 | .snake_direction dd DOWN |
||
1712 | .snake_direction_next dd DOWN |
||
1713 | .number_of_stones dd 59 |
||
1677 | dunkaist | 1714 | .name dd stage_09_name |
1566 | dunkaist | 1715 | |
1716 | stage_10: |
||
1677 | dunkaist | 1717 | .field db 11101110b,11101110b,11101110b,11100000b,\ |
1718 | 11101110b,11101110b,11101110b,11100000b,\ |
||
1719 | 11101110b,11101110b,11101110b,11100000b,\ |
||
1720 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1721 | 11101110b,11101110b,11101110b,11100000b,\ |
||
1722 | 11101110b,11101110b,11101110b,11100000b,\ |
||
1723 | 11101110b,11101110b,11101110b,11100000b,\ |
||
1724 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1725 | 11101110b,11101110b,11101110b,11100000b,\ |
||
1726 | 11101110b,11101110b,11101110b,11100000b,\ |
||
1727 | 11101110b,11101110b,11101110b,11100000b,\ |
||
1728 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1729 | 11101110b,11101110b,11101110b,11100000b,\ |
||
1730 | 11101110b,11101110b,11101110b,11100000b |
||
1566 | dunkaist | 1731 | |
1732 | .snake_dots db 3,2, 3,3, 4,3 |
||
1733 | .snake_direction dd RIGHT |
||
1734 | .snake_direction_next dd RIGHT |
||
1735 | .number_of_stones dd 231 |
||
1677 | dunkaist | 1736 | .name dd stage_10_name |
1566 | dunkaist | 1737 | |
1738 | stage_11: |
||
1677 | dunkaist | 1739 | .field db 00000000b,00000000b,00000000b,00000000b,\ |
1740 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1741 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1742 | 00000111b,00000111b,00000111b,00000000b,\ |
||
1743 | 00001101b,10001101b,10001101b,10000000b,\ |
||
1744 | 00011000b,11011000b,11011000b,11000000b,\ |
||
1745 | 00000000b,01000000b,01000000b,01000000b,\ |
||
1746 | 00011000b,11011000b,11011000b,11000000b,\ |
||
1747 | 00001101b,10001101b,10001101b,10000000b,\ |
||
1748 | 00000111b,00000111b,00000111b,00000000b,\ |
||
1749 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1750 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1751 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1752 | 00000000b,00000000b,00000000b,00000000b |
||
1566 | dunkaist | 1753 | |
1754 | .snake_dots db 3,12, 4,12, 5,12 |
||
1755 | .snake_direction dd RIGHT |
||
1756 | .snake_direction_next dd RIGHT |
||
1757 | .number_of_stones dd 69 |
||
1677 | dunkaist | 1758 | .name dd stage_11_name |
1566 | dunkaist | 1759 | |
1760 | stage_12: |
||
1677 | dunkaist | 1761 | .field db 00000000b,00011000b,00001110b,00000000b,\ |
1762 | 01101110b,00010000b,00001010b,01010000b,\ |
||
1763 | 01001011b,11011001b,11000000b,01110000b,\ |
||
1764 | 01100001b,01000001b,01000000b,00000000b,\ |
||
1765 | 00000000b,00000000b,00000011b,10000000b,\ |
||
1766 | 00000000b,00000000b,00000010b,10000000b,\ |
||
1767 | 01010011b,00001100b,10100110b,00110000b,\ |
||
1768 | 01110010b,00001000b,11100100b,00010000b,\ |
||
1769 | 00000011b,00001100b,00000110b,00110000b,\ |
||
1770 | 00000000b,11100000b,00000000b,00000000b,\ |
||
1771 | 00010100b,10100000b,00000110b,00000000b,\ |
||
1772 | 11011100b,00000110b,10100100b,00000000b,\ |
||
1773 | 01000011b,10000010b,11100110b,10100000b,\ |
||
1774 | 11000010b,10000110b,00000000b,11100000b |
||
1566 | dunkaist | 1775 | |
1776 | .snake_dots db 27,0, 26,0, 25,0 |
||
1777 | .snake_direction dd LEFT |
||
1778 | .snake_direction_next dd LEFT |
||
1779 | .number_of_stones dd 110 |
||
1677 | dunkaist | 1780 | .name dd stage_12_name |
1566 | dunkaist | 1781 | |
1677 | dunkaist | 1782 | stage_13: |
1783 | .field db 00111000b,00100000b,00000000b,00000000b,\ |
||
1784 | 01111100b,11110011b,11000011b,10000000b,\ |
||
1785 | 11111100b,01110011b,10000001b,11000000b,\ |
||
1786 | 11110000b,00000011b,11000000b,00000000b,\ |
||
1787 | 00000000b,00000010b,00000000b,00000000b,\ |
||
1788 | 00000000b,00000010b,00000001b,00000000b,\ |
||
1789 | 00011110b,00000111b,00000111b,00000000b,\ |
||
1790 | 00000111b,10001111b,11111110b,00000000b,\ |
||
1791 | 00000011b,11111111b,11111100b,00000000b,\ |
||
1792 | 00110001b,11111111b,11111001b,01100000b,\ |
||
1793 | 00001110b,11101011b,00100111b,10000000b,\ |
||
1794 | 01111000b,10000011b,10000010b,00000000b,\ |
||
1795 | 00000011b,11100110b,00011010b,11000000b,\ |
||
1796 | 00000000b,00000000b,00000000b,00000000b |
||
1797 | |||
1798 | .snake_dots db 0,5, 0,6, 0,7 |
||
1799 | .snake_direction dd DOWN |
||
1800 | .snake_direction_next dd DOWN |
||
1801 | .number_of_stones dd 141 |
||
1802 | .name dd stage_13_name |
||
1803 | |||
1804 | stage_14: |
||
1805 | .field db 00000110b,00000000b,00000000b,00000000b,\ |
||
1806 | 00001000b,00000000b,00011000b,00000000b,\ |
||
1807 | 00010000b,00000000b,00000100b,00000000b,\ |
||
1808 | 00100001b,10000000b,11000010b,00000000b,\ |
||
1809 | 01000010b,01000001b,00100001b,00000000b,\ |
||
1810 | 10000100b,00000010b,00010000b,10000000b,\ |
||
1811 | 10001000b,00000100b,00001000b,01000000b,\ |
||
1812 | 10010000b,00001000b,00000100b,01000000b,\ |
||
1813 | 01001000b,00010000b,00001000b,10000000b,\ |
||
1814 | 00100100b,00100000b,00010001b,00000000b,\ |
||
1815 | 00010010b,01000001b,00100010b,00000000b,\ |
||
1816 | 00001001b,10000000b,11000100b,00000000b,\ |
||
1817 | 00000100b,00000000b,00001000b,00000000b,\ |
||
1818 | 00000000b,00000000b,00110000b,00000000b |
||
1819 | |||
1820 | .snake_dots db 8,0, 9,0, 10,0 |
||
1821 | .snake_direction dd RIGHT |
||
1822 | .snake_direction_next dd RIGHT |
||
1823 | .number_of_stones dd 60 |
||
1824 | .name dd stage_14_name |
||
1825 | |||
1826 | stage_15: |
||
1827 | .field db 00000000b,00000000b,00000000b,00000000b,\ |
||
1828 | 00000000b,01110000b,00110000b,00000000b,\ |
||
1829 | 00000000b,10000000b,00001010b,00000000b,\ |
||
1830 | 00100001b,00000000b,00110010b,00000000b,\ |
||
1831 | 00010001b,00111111b,10011100b,00000000b,\ |
||
1832 | 00001001b,00100000b,11000000b,00000000b,\ |
||
1833 | 00010000b,00000010b,01000000b,00000000b,\ |
||
1834 | 00100000b,00000010b,00100001b,10000000b,\ |
||
1835 | 00010000b,00000010b,00110010b,01000000b,\ |
||
1836 | 00001000b,01000100b,00011100b,01000000b,\ |
||
1837 | 00010000b,00111000b,00010000b,01000000b,\ |
||
1838 | 00100000b,00000000b,00010000b,01000000b,\ |
||
1839 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1840 | 00000000b,00000000b,00000000b,00000000b |
||
1841 | |||
1842 | .snake_dots db 13,3, 13,2, 14,2 |
||
1843 | .snake_direction dd RIGHT |
||
1844 | .snake_direction_next dd RIGHT |
||
1845 | .number_of_stones dd 60 |
||
1846 | .name dd stage_15_name |
||
1847 | |||
1848 | stage_16: |
||
1849 | .field db 00000000b,10000010b,00000000b,00000000b,\ |
||
1850 | 00000000b,01001010b,10000010b,10100000b,\ |
||
1851 | 01111111b,11100111b,00000001b,11000000b,\ |
||
1852 | 00000000b,01000010b,00000000b,10000000b,\ |
||
1853 | 00000100b,10000000b,01000000b,00000001b,\ |
||
1854 | 00000100b,00100000b,10000000b,00000010b,\ |
||
1855 | 11000100b,00010001b,11111000b,00000111b,\ |
||
1856 | 00010101b,00001000b,10000000b,00000010b,\ |
||
1857 | 00001110b,00010000b,01000000b,00000001b,\ |
||
1858 | 00000100b,00100010b,00000000b,10000000b,\ |
||
1859 | 00000000b,00000010b,00000000b,01000000b,\ |
||
1860 | 00111111b,11111111b,11111111b,11100000b,\ |
||
1861 | 00000000b,00000010b,00000000b,01000000b,\ |
||
1862 | 00000000b,00000010b,00000000b,10000000b |
||
1863 | |||
1864 | .snake_dots db 11,7, 10,7, 9,7 |
||
1865 | .snake_direction dd LEFT |
||
1866 | .snake_direction_next dd LEFT |
||
1867 | .number_of_stones dd 96 |
||
1868 | .name dd stage_16_name |
||
1869 | |||
1870 | stage_17: |
||
1871 | .field db 00000000b,00000000b,00000000b,00000000b,\ |
||
1872 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1873 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1874 | 00000111b,10000001b,11100000b,00000000b,\ |
||
1875 | 00001000b,01000010b,00010000b,00000000b,\ |
||
1876 | 00010001b,00100100b,01001000b,00000000b,\ |
||
1877 | 00010001b,00000000b,01001000b,00000000b,\ |
||
1878 | 00001000b,01000010b,00010000b,00000000b,\ |
||
1879 | 00000111b,10000001b,11100000b,00000000b,\ |
||
1880 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1881 | 00000000b,01000000b,00000000b,00000000b,\ |
||
1882 | 00000000b,00111110b,00000000b,00000000b,\ |
||
1883 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1884 | 00000000b,00000000b,00000000b,00000000b |
||
1885 | |||
1886 | .snake_dots db 11,7, 11,8, 12,8 |
||
1887 | .snake_direction dd RIGHT |
||
1888 | .snake_direction_next dd RIGHT |
||
1889 | .number_of_stones dd 40 |
||
1890 | .name dd stage_17_name |
||
1891 | |||
1892 | stage_18: |
||
1893 | .field db 00000000b,00000000b,00000000b,00000000b,\ |
||
1894 | 01000100b,01000100b,01000100b,01000000b,\ |
||
1895 | 00101010b,10101010b,10101010b,10100000b,\ |
||
1896 | 00010001b,00010001b,00010001b,00000000b,\ |
||
1897 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1898 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1899 | 01000100b,01000100b,01000100b,01000000b,\ |
||
1900 | 00101010b,10101010b,10101010b,10100000b,\ |
||
1901 | 00010001b,00010001b,00010001b,00000000b,\ |
||
1902 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1903 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1904 | 01000100b,01000100b,01000100b,01000000b,\ |
||
1905 | 00101010b,10101010b,10101010b,10100000b,\ |
||
1906 | 00010001b,00010001b,00010001b,00000000b |
||
1907 | |||
1908 | .snake_dots db 2,5, 3,5, 4,5 |
||
1909 | .snake_direction dd RIGHT |
||
1910 | .snake_direction_next dd RIGHT |
||
1911 | .number_of_stones dd 78 |
||
1912 | .name dd stage_18_name |
||
1913 | |||
1914 | stage_19: |
||
1915 | .field db 01000010b,00100100b,10000101b,00000000b,\ |
||
1916 | 00010000b,00010000b,00100000b,10000000b,\ |
||
1917 | 00111001b,00000010b,00010000b,00100000b,\ |
||
1918 | 01000100b,00001000b,00000010b,00000000b,\ |
||
1919 | 01010101b,01000000b,01000000b,01000000b,\ |
||
1920 | 01010100b,00010000b,00001000b,11100000b,\ |
||
1921 | 00000100b,10001001b,00100001b,00000000b,\ |
||
1922 | 01111100b,00100000b,00000001b,01010000b,\ |
||
1923 | 00111001b,00000100b,00010001b,01010000b,\ |
||
1924 | 00010000b,00000000b,10000001b,00010000b,\ |
||
1925 | 11010111b,11100000b,00011101b,11110000b,\ |
||
1926 | 00010000b,01000000b,00100000b,11100000b,\ |
||
1927 | 00010000b,10000000b,00100000b,01000000b,\ |
||
1928 | 00000001b,00000000b,00010000b,01000000b |
||
1929 | |||
1930 | .snake_dots db 27,6, 0,6, 1,6 |
||
1931 | .snake_direction dd RIGHT |
||
1932 | .snake_direction_next dd RIGHT |
||
1933 | .number_of_stones dd 95 |
||
1934 | .name dd stage_19_name |
||
1935 | |||
1936 | stage_20: |
||
1937 | .field db 00000000b,00000000b,00000000b,00000000b,\ |
||
1938 | 00000000b,00000000b,10001000b,00000000b,\ |
||
1939 | 00000000b,00011100b,10000100b,00000000b,\ |
||
1940 | 00000000b,01100100b,10000010b,00000000b,\ |
||
1941 | 00000011b,10000100b,10000100b,00000000b,\ |
||
1942 | 00000010b,00000100b,10001000b,00000000b,\ |
||
1943 | 00000010b,00000100b,10000100b,00000000b,\ |
||
1944 | 00000010b,00000100b,10000010b,00000000b,\ |
||
1945 | 00000010b,00111100b,10010010b,00000000b,\ |
||
1946 | 00011110b,00111100b,10010100b,00000000b,\ |
||
1947 | 00011110b,00111100b,10001000b,00000000b,\ |
||
1948 | 00011110b,00000000b,10000000b,00000000b,\ |
||
1949 | 00000000b,00000000b,10000000b,00000000b,\ |
||
1950 | 00000000b,00000000b,00000000b,00000000b |
||
1951 | |||
1952 | .snake_dots db 17,2, 17,3, 17,4 |
||
1953 | .snake_direction dd DOWN |
||
1954 | .snake_direction_next dd DOWN |
||
1955 | .number_of_stones dd 65 |
||
1956 | .name dd stage_20_name |
||
1957 | |||
1958 | stage_21: |
||
1959 | .field db 00000000b,00000000b,00000000b,00000000b,\ |
||
1960 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1961 | 00000011b,11111111b,11111110b,00000000b,\ |
||
1962 | 00000001b,01000100b,01000100b,00000000b,\ |
||
1963 | 00000010b,01000100b,01000100b,00000000b,\ |
||
1964 | 00001100b,01000100b,01000100b,00000000b,\ |
||
1965 | 01110000b,01000100b,01000100b,00000000b,\ |
||
1966 | 01110000b,01000100b,01000100b,00000000b,\ |
||
1967 | 01110000b,11101110b,11101110b,00000000b,\ |
||
1968 | 00000000b,11101110b,11101110b,00000000b,\ |
||
1969 | 00000000b,11101110b,11101110b,00000000b,\ |
||
1970 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1971 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1972 | 00000000b,00000000b,00000000b,00000000b |
||
1973 | |||
1974 | .snake_dots db 10,1, 11,1, 12,1 |
||
1975 | .snake_direction dd RIGHT |
||
1976 | .snake_direction_next dd RIGHT |
||
1977 | .number_of_stones dd 86 |
||
1978 | .name dd stage_21_name |
||
1979 | |||
1980 | stage_22: |
||
1981 | .field db 00000000b,00000000b,00000000b,00000000b,\ |
||
1982 | 00000011b,10000000b,00000000b,00000000b,\ |
||
1983 | 00000111b,11100000b,00000000b,00000000b,\ |
||
1984 | 00001111b,11110000b,00000000b,00000000b,\ |
||
1985 | 00011111b,11100000b,00000000b,00000000b,\ |
||
1986 | 00011111b,11000011b,00001100b,00110000b,\ |
||
1987 | 00011111b,10000111b,10011110b,01110000b,\ |
||
1988 | 00011111b,11000111b,10011110b,01110000b,\ |
||
1989 | 00011111b,11100011b,00001100b,00110000b,\ |
||
1990 | 00001111b,11110000b,00000000b,00000000b,\ |
||
1991 | 00000111b,11100000b,00000000b,00000000b,\ |
||
1992 | 00000011b,10000000b,00000000b,00000000b,\ |
||
1993 | 00000000b,00000000b,00000000b,00000000b,\ |
||
1994 | 00000000b,00000000b,00000000b,00000000b |
||
1995 | |||
1996 | .snake_dots db 1,7, 1,6, 1,5 |
||
1997 | .snake_direction dd UP |
||
1998 | .snake_direction_next dd UP |
||
1999 | .number_of_stones dd 104 |
||
2000 | .name dd stage_22_name |
||
2001 | |||
2002 | stage_23: |
||
2003 | .field db 00000000b,00000000b,00000000b,00000000b,\ |
||
2004 | 00100000b,01000101b,00010000b,00100000b,\ |
||
2005 | 00011010b,00100101b,00100010b,11000000b,\ |
||
2006 | 00000100b,10101000b,10101001b,00000000b,\ |
||
2007 | 00000100b,10010010b,01001001b,00000000b,\ |
||
2008 | 00001011b,00110000b,01100110b,10000000b,\ |
||
2009 | 00000000b,11001010b,10011000b,00000000b,\ |
||
2010 | 00000001b,00000111b,00000100b,00000000b,\ |
||
2011 | 00001110b,01001010b,10010011b,10000000b,\ |
||
2012 | 00000010b,00110000b,01100010b,00000000b,\ |
||
2013 | 00000101b,00010010b,01000101b,00000000b,\ |
||
2014 | 00001001b,00001000b,10000100b,10000000b,\ |
||
2015 | 00000000b,00001000b,10000000b,00000000b,\ |
||
2016 | 00000000b,00000000b,00000000b,00000000b |
||
2017 | |||
2018 | .snake_dots db 15,0, 14,0, 13,0 |
||
2019 | .snake_direction dd LEFT |
||
2020 | .snake_direction_next dd LEFT |
||
2021 | .number_of_stones dd 85 |
||
2022 | .name dd stage_23_name |
||
2023 | |||
2024 | stage_24: |
||
2025 | .field db 00000000b,00000000b,00000000b,00000000b,\ |
||
2026 | 00111111b,11111111b,11111111b,10000000b,\ |
||
2027 | 00100000b,00000000b,00000000b,10000000b,\ |
||
2028 | 00100011b,11111111b,11111000b,10000000b,\ |
||
2029 | 00100010b,00000000b,00001000b,10000000b,\ |
||
2030 | 00100010b,00111111b,10001000b,10000000b,\ |
||
2031 | 00100010b,00100000b,10001000b,10000000b,\ |
||
2032 | 00101010b,10101010b,10101010b,10000000b,\ |
||
2033 | 00001000b,10001110b,00100010b,00000000b,\ |
||
2034 | 00001000b,10000000b,00100010b,00000000b,\ |
||
2035 | 00001000b,11111111b,11100010b,00000000b,\ |
||
2036 | 00001000b,00000000b,00000010b,00000000b,\ |
||
2037 | 00001111b,11111111b,11111110b,00000000b,\ |
||
2038 | 00000000b,00000000b,00000000b,00000000b |
||
2039 | |||
2040 | .snake_dots db 1,0, 0,0, 0,1 |
||
2041 | .snake_direction dd DOWN |
||
2042 | .snake_direction_next dd DOWN |
||
2043 | .number_of_stones dd 120 |
||
2044 | .name dd stage_24_name |
||
2045 | |||
2046 | stage_25: |
||
2047 | .field db 00000100b,11000000b,00000000b,00000000b,\ |
||
2048 | 00000011b,10000000b,00110010b,00000000b,\ |
||
2049 | 10011010b,10000000b,00011100b,00000000b,\ |
||
2050 | 01110000b,00000000b,00010101b,10010000b,\ |
||
2051 | 01010000b,00000111b,00000000b,11100000b,\ |
||
2052 | 00000100b,00000101b,00000000b,10100000b,\ |
||
2053 | 00000100b,00000100b,00000000b,00000000b,\ |
||
2054 | 00000011b,11111100b,00011001b,00000000b,\ |
||
2055 | 00000010b,10010100b,00001110b,00000000b,\ |
||
2056 | 00000010b,10010100b,00001010b,00000000b,\ |
||
2057 | 00000000b,00000000b,00000000b,00000000b,\ |
||
2058 | 00000011b,00100001b,10010011b,00100000b,\ |
||
2059 | 00000001b,11000000b,11100001b,11000000b,\ |
||
2060 | 00000001b,01000000b,10100001b,01000000b |
||
2061 | |||
2062 | .snake_dots db 11,2, 12,2, 13,2 |
||
2063 | .snake_direction dd RIGHT |
||
2064 | .snake_direction_next dd RIGHT |
||
2065 | .number_of_stones dd 88 |
||
2066 | .name dd stage_25_name |
||
2067 | |||
2068 | stage_26: |
||
2069 | .field db 00000000b,00000000b,00000000b,00000000b,\ |
||
2070 | 00111100b,01001111b,01111010b,01000000b,\ |
||
2071 | 00100000b,01000001b,00001010b,01000000b,\ |
||
2072 | 00100100b,01001111b,01111011b,11000000b,\ |
||
2073 | 00000100b,01001000b,00001000b,01000000b,\ |
||
2074 | 00111100b,01001111b,01111000b,01000000b,\ |
||
2075 | 00000000b,00000000b,00000000b,00000000b,\ |
||
2076 | 00000000b,00000000b,00000000b,00000000b,\ |
||
2077 | 00111101b,11101111b,01111011b,11000000b,\ |
||
2078 | 00100001b,00000001b,00000000b,00000000b,\ |
||
2079 | 00111101b,11100001b,01111011b,11000000b,\ |
||
2080 | 00000100b,00000001b,00000000b,01000000b,\ |
||
2081 | 00111101b,11100001b,01111011b,11000000b,\ |
||
2082 | 00000000b,00000000b,00000000b,00000000b |
||
2083 | |||
2084 | .snake_dots db 1,5, 0,5, 0,6 |
||
2085 | .snake_direction dd DOWN |
||
2086 | .snake_direction_next dd DOWN |
||
2087 | .number_of_stones dd 115 |
||
2088 | .name dd stage_26_name |
||
2089 | |||
2090 | stage_27: |
||
2091 | .field db 00000000b,10000000b,00000000b,01000000b,\ |
||
2092 | 00000000b,10000000b,01000000b,11100000b,\ |
||
2093 | 00100011b,11100000b,01000000b,01000000b,\ |
||
2094 | 01110000b,10000001b,11110000b,00000000b,\ |
||
2095 | 00100000b,10000000b,01000000b,00000000b,\ |
||
2096 | 00000000b,00000000b,01000010b,00000000b,\ |
||
2097 | 00000000b,00000000b,00000000b,00000000b,\ |
||
2098 | 00000010b,00000000b,00000000b,00000000b,\ |
||
2099 | 00000111b,00000000b,00000000b,10000000b,\ |
||
2100 | 00000010b,00001000b,00000001b,11000000b,\ |
||
2101 | 00000000b,00000000b,10000000b,10000000b,\ |
||
2102 | 00000000b,01000001b,11000000b,00000000b,\ |
||
2103 | 01000000b,11100000b,10000000b,00000000b,\ |
||
2104 | 00000000b,01000000b,00000000b,00000000b |
||
2105 | |||
2106 | .snake_dots db 12,8, 12,7, 12,6 |
||
2107 | .snake_direction dd UP |
||
2108 | .snake_direction_next dd UP |
||
2109 | .number_of_stones dd 51 |
||
2110 | .name dd stage_27_name |
||
2111 | |||
2112 | stage_28: |
||
2113 | .field db 00000000b,00000000b,00000000b,00000000b,\ |
||
2114 | 00000000b,00000000b,00000000b,00000000b,\ |
||
2115 | 00000000b,00000000b,00000000b,00000000b,\ |
||
2116 | 00000000b,00000000b,00000000b,00000000b,\ |
||
2117 | 00000100b,00000000b,00000010b,00000000b,\ |
||
2118 | 00010100b,00000000b,00000010b,10000000b,\ |
||
2119 | 01010100b,00000000b,00000010b,10100000b,\ |
||
2120 | 01010101b,11111111b,11111010b,10100000b,\ |
||
2121 | 01010100b,00000000b,00000010b,10100000b,\ |
||
2122 | 00010100b,00000000b,00000010b,10000000b,\ |
||
2123 | 00000100b,00000000b,00000010b,00000000b,\ |
||
2124 | 00000000b,00000000b,00000000b,00000000b,\ |
||
2125 | 00000000b,00000000b,00000000b,00000000b,\ |
||
2126 | 00000000b,00000000b,00000000b,00000000b |
||
2127 | |||
2128 | .snake_dots db 13,8, 12,8, 11,8 |
||
2129 | .snake_direction dd LEFT |
||
2130 | .snake_direction_next dd LEFT |
||
2131 | .number_of_stones dd 44 |
||
2132 | .name dd stage_28_name |
||
2133 | |||
2134 | stage_29: |
||
2135 | .field db 00000000b,01110000b,00000000b,00000000b,\ |
||
2136 | 00000100b,01000110b,00000001b,10000000b,\ |
||
2137 | 01001110b,00001100b,01100000b,11000000b,\ |
||
2138 | 01000000b,00000000b,01100000b,00000000b,\ |
||
2139 | 01100000b,01111000b,00000001b,10010000b,\ |
||
2140 | 00000000b,00000010b,10000101b,10110000b,\ |
||
2141 | 00110000b,00110010b,10001100b,00100000b,\ |
||
2142 | 00011011b,00110110b,10000100b,00000000b,\ |
||
2143 | 00000001b,00000000b,10010000b,10000000b,\ |
||
2144 | 00100001b,00000000b,00111000b,10000000b,\ |
||
2145 | 00111001b,00110011b,00000011b,10000000b,\ |
||
2146 | 01111111b,11111111b,00011011b,11010000b,\ |
||
2147 | 11111111b,11111111b,00011111b,11110000b,\ |
||
2148 | 11111111b,11111111b,00111111b,11110000b |
||
2149 | |||
2150 | .snake_dots db 0,0, 1,0, 2,0 |
||
2151 | .snake_direction dd RIGHT |
||
2152 | .snake_direction_next dd RIGHT |
||
2153 | .number_of_stones dd 151 |
||
2154 | .name dd stage_29_name |
||
2155 | |||
2156 | stage_30: |
||
2157 | .field db 00000000b,00000000b,00000000b,00000000b,\ |
||
2158 | 00000000b,00000001b,01011100b,00000000b,\ |
||
2159 | 00000000b,00000001b,11001000b,00000000b,\ |
||
2160 | 00000100b,00000001b,01001000b,00000000b,\ |
||
2161 | 00000100b,00000100b,00000000b,00000000b,\ |
||
2162 | 00000100b,00000100b,00000100b,00000000b,\ |
||
2163 | 00000100b,00000100b,00000100b,00000000b,\ |
||
2164 | 00000100b,00000100b,00000100b,00000000b,\ |
||
2165 | 01111111b,11000100b,11111111b,11100000b,\ |
||
2166 | 00000100b,00000100b,00000100b,00000000b,\ |
||
2167 | 00011111b,00111111b,10001110b,00000000b,\ |
||
2168 | 00000100b,00000100b,00000100b,00000000b,\ |
||
2169 | 00011111b,00011111b,00011111b,00000000b,\ |
||
2170 | 11111111b,11111111b,11111111b,11110000b |
||
2171 | |||
2172 | .snake_dots db 8,2, 9,2, 10,2 |
||
2173 | .snake_direction dd RIGHT |
||
2174 | .snake_direction_next dd RIGHT |
||
2175 | .number_of_stones dd 109 |
||
2176 | .name dd stage_30_name |
||
2177 | |||
2178 | stage_31: |
||
2179 | .field db 00000101b,00010000b,00000100b,01000000b,\ |
||
2180 | 01000100b,01010101b,00010100b,01000000b,\ |
||
2181 | 01000101b,01010101b,01000101b,00010000b,\ |
||
2182 | 01010000b,00010100b,01000000b,01010000b,\ |
||
2183 | 00010101b,01000101b,01010100b,01000000b,\ |
||
2184 | 01000001b,00010000b,01010101b,01000000b,\ |
||
2185 | 01010101b,00010100b,00000101b,00010000b,\ |
||
2186 | 00000101b,01010000b,01000101b,01010000b,\ |
||
2187 | 01010000b,01000100b,00000000b,01010000b,\ |
||
2188 | 00010101b,00000101b,00010100b,00010000b,\ |
||
2189 | 01010001b,00010001b,01000001b,01000000b,\ |
||
2190 | 01000100b,00000101b,01010100b,01010000b,\ |
||
2191 | 00010001b,01010100b,00010001b,00010000b,\ |
||
2192 | 00000100b,01000001b,00010001b,00000000b |
||
2193 | |||
2194 | .snake_dots db 18,8, 17,8, 16,8 |
||
2195 | .snake_direction dd LEFT |
||
2196 | .snake_direction_next dd LEFT |
||
2197 | .number_of_stones dd 112 |
||
2198 | .name dd stage_31_name |
||
2199 | |||
2200 | stage_32: |
||
2201 | .field db 11111111b,11111111b,11111111b,11110000b,\ |
||
2202 | 10010010b,01001001b,00100100b,10010000b,\ |
||
2203 | 10010000b,01000001b,00000100b,00010000b,\ |
||
2204 | 10010010b,01001001b,00100100b,10010000b,\ |
||
2205 | 10010010b,01001001b,00100100b,10010000b,\ |
||
2206 | 10010010b,01001001b,00100100b,10010000b,\ |
||
2207 | 10010010b,01001001b,00100100b,10010000b,\ |
||
2208 | 10010010b,01001001b,00100100b,10010000b,\ |
||
2209 | 10010010b,01001001b,00100100b,10010000b,\ |
||
2210 | 10010010b,01001001b,00100100b,10010000b,\ |
||
2211 | 10010010b,01001001b,00100100b,10010000b,\ |
||
2212 | 10000010b,00001000b,00100000b,10010000b,\ |
||
2213 | 10010010b,01001001b,00100100b,10010000b,\ |
||
2214 | 11111111b,11111111b,11111111b,11110000b |
||
2215 | |||
2216 | .snake_dots db 1,1, 1,2, 1,3 |
||
2217 | .snake_direction dd DOWN |
||
2218 | .snake_direction_next dd DOWN |
||
2219 | .number_of_stones dd 168 |
||
2220 | .name dd stage_32_name |
||
2221 | |||
2222 | stage_33: |
||
2223 | .field db 00000000b,00000000b,00000000b,00000000b,\ |
||
2224 | 00000000b,00000000b,00000000b,00000000b,\ |
||
2225 | 01111111b,11001111b,11111111b,11100000b,\ |
||
2226 | 01000100b,01001000b,01000000b,00100000b,\ |
||
2227 | 01000100b,01001000b,01000001b,10100000b,\ |
||
2228 | 01000100b,01001000b,01001101b,10100000b,\ |
||
2229 | 00000000b,00000000b,00000110b,00000000b,\ |
||
2230 | 01000100b,01001000b,01000010b,00100000b,\ |
||
2231 | 01000100b,01001000b,01001111b,00100000b,\ |
||
2232 | 01000100b,01001000b,01001111b,00100000b,\ |
||
2233 | 01000100b,01001000b,01000110b,00100000b,\ |
||
2234 | 01111111b,11001111b,11111111b,11100000b,\ |
||
2235 | 00000000b,00000000b,00000000b,00000000b,\ |
||
2236 | 00000000b,00000000b,00000000b,00000000b |
||
2237 | |||
2238 | .snake_dots db 6,6, 7,6, 8,6 |
||
2239 | .snake_direction dd RIGHT |
||
2240 | .snake_direction_next dd RIGHT |
||
2241 | .number_of_stones dd 109 |
||
2242 | .name dd stage_33_name |
||
2243 | |||
2244 | stage_34: |
||
2245 | .field db 01110000b,00000000b,00000011b,10000000b,\ |
||
2246 | 00010010b,00010000b,01111100b,00000000b,\ |
||
2247 | 00011110b,00010000b,00100100b,00000000b,\ |
||
2248 | 00000100b,00011001b,00100111b,00000000b,\ |
||
2249 | 00001111b,10001001b,00100000b,00110000b,\ |
||
2250 | 00000001b,00001011b,00101000b,00100000b,\ |
||
2251 | 00000001b,00011110b,01111000b,00100000b,\ |
||
2252 | 00111000b,00000010b,00001100b,10100000b,\ |
||
2253 | 00001110b,00100010b,00000000b,10100000b,\ |
||
2254 | 01100011b,11111110b,01000011b,11100000b,\ |
||
2255 | 00111110b,00100010b,01000000b,10000000b,\ |
||
2256 | 00000000b,01100011b,11000010b,10000000b,\ |
||
2257 | 00000000b,01000000b,01100111b,10000000b,\ |
||
2258 | 00000000b,00000000b,00000010b,00000000b |
||
2259 | |||
2260 | .snake_dots db 7,0, 8,0, 9,0 |
||
2261 | .snake_direction dd RIGHT |
||
2262 | .snake_direction_next dd RIGHT |
||
2263 | .number_of_stones dd 113 |
||
2264 | .name dd stage_34_name |
||
2265 | |||
2266 | stage_35: |
||
2267 | .field db 00000100b,00000000b,00001010b,00000000b,\ |
||
2268 | 00010100b,01000000b,00101010b,00000000b,\ |
||
2269 | 00010100b,10000010b,00010010b,10000000b,\ |
||
2270 | 00010001b,00000000b,00010010b,10000000b,\ |
||
2271 | 00010001b,00000010b,00001010b,10000000b,\ |
||
2272 | 01010010b,00000010b,00001000b,10100000b,\ |
||
2273 | 01000100b,00000000b,00001000b,10100000b,\ |
||
2274 | 01000100b,00000010b,00000100b,10100000b,\ |
||
2275 | 01001000b,00000010b,00000100b,00100000b,\ |
||
2276 | 01001000b,00000000b,00000010b,00100000b,\ |
||
2277 | 00010000b,00000010b,00000010b,00100000b,\ |
||
2278 | 00110000b,00000010b,00000010b,00100000b,\ |
||
2279 | 00100000b,00000010b,00000001b,00000000b,\ |
||
2280 | 00000000b,00000000b,00000000b,00000000b |
||
2281 | |||
2282 | .snake_dots db 13,11, 13,10, 13,9 |
||
2283 | .snake_direction dd UP |
||
2284 | .snake_direction_next dd UP |
||
2285 | .number_of_stones dd 66 |
||
2286 | .name dd stage_35_name |
||
2287 | |||
2288 | stage_36: |
||
2289 | .field db 10101110b,10001110b,00110100b,11100000b,\ |
||
2290 | 11101000b,10001110b,00101010b,10000000b,\ |
||
2291 | 10101110b,11101000b,00101010b,11100000b,\ |
||
2292 | 00000000b,00000000b,00000000b,00000000b,\ |
||
2293 | 00000000b,00000000b,00000000b,00000000b,\ |
||
2294 | 00000000b,10110010b,01000100b,00000000b,\ |
||
2295 | 00000001b,10100101b,01010100b,00000000b,\ |
||
2296 | 00000001b,10100101b,00101000b,00000000b,\ |
||
2297 | 00000000b,00000000b,00000000b,00000000b,\ |
||
2298 | 00010001b,11010101b,11010001b,11000000b,\ |
||
2299 | 00010001b,11010101b,11010001b,00000000b,\ |
||
2300 | 00010001b,00010101b,00010000b,10000000b,\ |
||
2301 | 00011101b,11001001b,11011100b,01000000b,\ |
||
2302 | 00000000b,00000000b,00000001b,11010000b |
||
2303 | |||
2304 | .snake_dots db 27,11, 27,10, 27,9 |
||
2305 | .snake_direction dd UP |
||
2306 | .snake_direction_next dd UP |
||
2307 | .number_of_stones dd 112 |
||
2308 | .name dd stage_36_name |
||
2309 | |||
2310 | |||
2311 | stage_00_name db 'Classic mode',0 |
||
2312 | stage_01_name db 'Begin',0 |
||
2313 | stage_02_name db 'Frame',0 |
||
2314 | stage_03_name db 'Sight',0 |
||
2315 | stage_04_name db 'Dashed',0 |
||
2316 | stage_05_name db 'Beams',0 |
||
2317 | stage_06_name db 'Pipe',0 |
||
2318 | stage_07_name db 'Labyrinth',0 |
||
2319 | stage_08_name db 'Sea battle',0 |
||
2320 | stage_09_name db 'Recursion',0 |
||
2321 | stage_10_name db 'Narrow corridors',0 |
||
2322 | stage_11_name db 'CCC',0 |
||
2323 | stage_12_name db 'Deadlocks',0 |
||
2324 | stage_13_name db 'Boat',0 |
||
2325 | stage_14_name db 'Pattern',0 |
||
2326 | stage_15_name db 'Guernica',0 |
||
2327 | stage_16_name db 'Goto',0 |
||
2328 | stage_17_name db 'Smiling face',0 |
||
2329 | stage_18_name db 'Waves',0 |
||
2330 | stage_19_name db 'First snow',0 |
||
2331 | stage_20_name db 'Music and silence',0 |
||
2332 | stage_21_name db 'Experiment',0 |
||
2333 | stage_22_name db 'Pacman',0 |
||
2334 | stage_23_name db 'Intricate pattern',0 |
||
2335 | stage_24_name db 'Square arcs',0 |
||
2336 | stage_25_name db 'In the animal world',0 |
||
2337 | stage_26_name db 'Digits',0 |
||
2338 | stage_27_name db 'Pluses',0 |
||
2339 | stage_28_name db 'Rod',0 |
||
2340 | stage_29_name db 'Tetris',0 |
||
2341 | stage_30_name db 'Towers of Hanoi',0 |
||
2342 | stage_31_name db 'Ruins',0 |
||
2343 | stage_32_name db 'Walls of Akendora',0 |
||
2344 | stage_33_name db 'Geranium in the window',0 |
||
2345 | stage_34_name db 'Algae',0 |
||
2346 | stage_35_name db 'The road ahead',0 |
||
2347 | stage_36_name db 'Help me draw levels!',0 |
||
2348 | |||
2349 | |||
1518 | dunkaist | 2350 | background_color dd 0x000000 |
2351 | decorations_color dd 0x00000000 |
||
2352 | snake_color dd 0x000000 |
||
2353 | snake_head_color dd 0x000000 |
||
1677 | dunkaist | 2354 | lives_in_head_number_color dd 0x000000 |
1518 | dunkaist | 2355 | snake_picture_color dd 0x000000 |
2356 | version_picture_color dd 0x000000 |
||
2357 | pause_picture_color dd 0x000000 |
||
2358 | game_over_picture_color dd 0x000000 |
||
1566 | dunkaist | 2359 | you_win_picture_color dd 0x000000 |
1518 | dunkaist | 2360 | eat_color dd 0x000000 |
2361 | navigation_strings_color dd 0x80000000 |
||
2362 | game_over_strings_color dd 0x80000000 |
||
2363 | score_string_color dd 0x80000000 |
||
2364 | hiscore_string_color dd 0x80000000 |
||
2365 | champion_string_color dd 0x80000000 |
||
2366 | game_over_hiscore_color dd 0x80000000 |
||
2367 | score_number_color dd 0x40000000 |
||
2368 | hiscore_number_color dd 0x00000000 |
||
2369 | champion_name_color dd 0x80000000 |
||
1566 | dunkaist | 2370 | button_color dd 0x000000 |
2371 | button_text_color dd 0x80000000 |
||
2372 | stone_color dd 0x000000 |
||
2373 | splash_background_color dd 0x000000 |
||
2374 | splash_level_string_color dd 0x000000 |
||
2375 | splash_level_number_color dd 0x000000 |
||
2376 | level_string_color dd 0x80000000 |
||
2377 | level_number_color dd 0x00000000 |
||
1518 | dunkaist | 2378 | |
1566 | dunkaist | 2379 | |
1518 | dunkaist | 2380 | align 4 |
2381 | @IMPORT: |
||
2382 | |||
2383 | library \ |
||
2384 | libini , 'libini.obj' ,\ |
||
2385 | box_lib , 'box_lib.obj' |
||
2386 | |||
2387 | import libini,\ |
||
2388 | ini.get_str , 'ini_get_str' ,\ |
||
2389 | ini.get_int , 'ini_get_int' ,\ |
||
2390 | ini.set_str , 'ini_set_str' ,\ |
||
2391 | ini.set_int , 'ini_set_int' ,\ |
||
1677 | dunkaist | 2392 | ini.get_color , 'ini_get_color' ,\ |
2393 | ini.get_shortcut, 'ini_get_shortcut' |
||
1518 | dunkaist | 2394 | |
2395 | import box_lib,\ |
||
2396 | edit_box.draw , 'edit_box' ,\ |
||
2397 | edit_box.key , 'edit_box_key' ,\ |
||
2398 | edit_box.mouse , 'edit_box_mouse' |
||
2399 | |||
2400 | bFirstDraw db 0 |
||
2401 | |||
2402 | aPreferences db 'Preferences',0 |
||
2403 | aSpeed db 'Speed',0 |
||
1522 | dunkaist | 2404 | aTheme db 'Theme',0 |
1677 | dunkaist | 2405 | aSmart_reverse db 'Smart_reverse',0 |
2406 | aShow_lives_style db 'Show_lives_style',0 |
||
2407 | aDraw_level_name_in_window_title db 'Draw_level_name_in_window_title',0 |
||
2408 | aSeparating_symbol db 'Separating_symbol',0 |
||
1522 | dunkaist | 2409 | |
1677 | dunkaist | 2410 | aShortcuts db 'Shortcuts',0 |
2411 | aMove_left db 'Move_left',0 |
||
2412 | aMove_down db 'Move_down',0 |
||
2413 | aMove_up db 'Move_up',0 |
||
2414 | aMove_right db 'Move_right',0 |
||
2415 | aReverse db 'Reverse',0 |
||
2416 | aIncrease db 'Increase',0 |
||
2417 | aDecrease db 'Decrease',0 |
||
2418 | |||
1522 | dunkaist | 2419 | aTheme_name db 32 dup (0) |
1518 | dunkaist | 2420 | aDecorations db 'Decorations',0 |
2421 | aBackground_color db 'Background_color',0 |
||
2422 | aDecorations_color db 'Decorations_color',0 |
||
2423 | aSnake_color db 'Snake_color',0 |
||
2424 | aSnake_head_color db 'Snake_head_color',0 |
||
1677 | dunkaist | 2425 | aLives_in_head_number_color db 'Lives_in_head_number_color',0 |
1518 | dunkaist | 2426 | aSnake_picture_color db 'Snake_picture_color',0 |
2427 | aVersion_picture_color db 'Version_picture_color',0 |
||
2428 | aPause_picture_color db 'Pause_picture_color',0 |
||
2429 | aGame_over_picture_color db 'Game_over_picture_color',0 |
||
1566 | dunkaist | 2430 | aYou_win_picture_color db 'You_win_picture_color',0 |
1518 | dunkaist | 2431 | aEat_color db 'Eat_color',0 |
2432 | aNavigation_strings_color db 'Navigation_string_color',0 |
||
2433 | aGame_over_strings_color db 'Game_over_string_color',0 |
||
2434 | aScore_string_color db 'Score_string_color',0 |
||
2435 | aHiscore_string_color db 'Hiscore_string_color',0 |
||
2436 | aChampion_string_color db 'Champion_string_color',0 |
||
2437 | aGame_over_hiscore_color db 'Game_over_hiscore_color',0 |
||
2438 | aScore_number_color db 'Score_number_color',0 |
||
2439 | aHiscore_number_color db 'Hiscore_number_color',0 |
||
2440 | aChampion_name_color db 'Champion_name_color',0 |
||
1520 | dunkaist | 2441 | aEdit_box_selection_color db 'Edit_box_selection_color',0 |
1566 | dunkaist | 2442 | aButton_color db 'Button_color',0 |
2443 | aButton_text_color db 'Button_text_color',0 |
||
2444 | aStone_color db 'Stone_color',0 |
||
2445 | aSplash_background_color db 'Splash_background_color',0 |
||
2446 | aSplash_level_string_color db 'Splash_level_string_color',0 |
||
2447 | aSplash_level_number_color db 'Splash_level_number_color',0 |
||
2448 | aLevel_string_color db 'Level_string_color',0 |
||
2449 | aLevel_number_color db 'Level_number_color',0 |
||
1518 | dunkaist | 2450 | |
1566 | dunkaist | 2451 | aReserved db 'Reserved',0 |
2452 | aSquare_side_length db 'Square_side_length',0 |
||
2453 | aHiscore_classic db 'Hiscore_classic',0 |
||
2454 | aChampion_name_classic db 'Champion_name_classic',0 |
||
2455 | aHiscore_levels db 'Hiscore_levels',0 |
||
2456 | aChampion_name_levels db 'Champion_name_levels',0 |
||
1518 | dunkaist | 2457 | |
1522 | dunkaist | 2458 | edit1 edit_box 65,397,0x0,0x000000,0x000000,0x000000,0x000000,0x80000000,15,hed,mouse_dd,ed_focus,hed_end-hed-1,hed_end-hed-1 |
2459 | |||
1518 | dunkaist | 2460 | hed db '',0 |
1522 | dunkaist | 2461 | ;;---Variables------------------------------------------------------------------------------------------------------------- |
2462 | i_end: |
||
1518 | dunkaist | 2463 | hed_end: |
2464 | rb 256 |
||
2465 | mouse_dd rd 1 |
||
2466 | |||
1677 | dunkaist | 2467 | window_style rd 1 |
2468 | |||
1566 | dunkaist | 2469 | cur_level rd 1 |
2470 | cur_level_number rd 1 |
||
2471 | hi_level rd 1 |
||
1522 | dunkaist | 2472 | |
1566 | dunkaist | 2473 | score rd 1 |
2474 | hi_score_classic rd 1 |
||
2475 | hi_score_levels rd 1 |
||
1522 | dunkaist | 2476 | |
1566 | dunkaist | 2477 | champion_name_classic rb CHAMPION_NAME_LENGTH |
2478 | champion_name_levels rb CHAMPION_NAME_LENGTH |
||
2479 | |||
2480 | snake_dots rb GRID_WIDTH*GRID_HEIGHT*2+3 ; +3 bytes for faster dword copying |
||
2481 | snake_direction rd 1 |
||
2482 | snake_direction_next rd 1 |
||
2483 | snake_length_x2 rd 1 |
||
2484 | |||
2485 | decorations rd 1 |
||
2486 | number_of_free_dots rd 1 |
||
2487 | |||
2488 | eat rw 1 |
||
2489 | |||
1522 | dunkaist | 2490 | g_s rd 1 |
1566 | dunkaist | 2491 | g_e rd 1 |
1522 | dunkaist | 2492 | |
2493 | window_width rd 1 |
||
2494 | window_height rd 1 |
||
2495 | wp_x rd 1 |
||
2496 | wp_y rd 1 |
||
2497 | |||
2498 | gw_mul_gs rd 1 |
||
2499 | gh_mul_gs rd 1 |
||
2500 | gbxm1_plus_gw_mul_gs rd 1 |
||
2501 | gbym1_plus_gh_mul_gs rd 1 |
||
2502 | gs_shl16_gs rd 1 |
||
2503 | gbxm1_shl16_gbxm1 rd 1 |
||
2504 | gbym1_shl16_gbym1 rd 1 |
||
2505 | |||
2506 | bottom_top_strings rd 1 |
||
2507 | bottom_middle_strings rd 1 |
||
2508 | bottom_bottom_strings rd 1 |
||
2509 | top_strings rd 1 |
||
2510 | |||
1566 | dunkaist | 2511 | button_x_left rd 1 |
2512 | button_x_right rd 1 |
||
2513 | button_y_top rd 1 |
||
2514 | button_y_middle rd 1 |
||
2515 | button_y_bottom rd 1 |
||
2516 | button_width_short rd 1 |
||
2517 | button_width_long rd 1 |
||
2518 | button_height rd 1 |
||
1522 | dunkaist | 2519 | |
1566 | dunkaist | 2520 | cursor_data rb 32*32*4 |
2521 | cursor_handle rd 1 |
||
2522 | |||
1518 | dunkaist | 2523 | cur_dir_path rb 4096 |
2524 | @PARAMS rb 4096 |
||
2525 | |||
1566 | dunkaist | 2526 | field_map rb GRID_WIDTH*GRID_HEIGHT*2 |
2527 | |||
1677 | dunkaist | 2528 | proc_info process_information |
2529 | |||
2530 | smart_reverse rd 1 |
||
2531 | show_lives_style rd 1 |
||
2532 | draw_level_name_in_window_title rd 1 |
||
2533 | separating_symbol rd 1 |
||
2534 | |||
2535 | shortcut_move_left rb 1 |
||
2536 | shortcut_move_down rb 1 |
||
2537 | shortcut_move_up rb 1 |
||
2538 | shortcut_move_right rb 1 |
||
2539 | shortcut_reverse rb 1 |
||
2540 | shortcut_increase rb 1 |
||
2541 | shortcut_decrease rb 1 |
||
2542 | |||
2543 | square_side_length rd 1 |
||
2544 | |||
2545 | gbxm1 rd 1 |
||
2546 | gbym1 rd 1 |
||
2547 | speed_up_counter rw 1 |
||
2548 | |||
1518 | dunkaist | 2549 | rb 4096 |
2550 | stacktop: |
||
1677 | dunkaist | 2551 | d_end: |