16,20 → 16,6 |
|
;;===Define_chapter============================================================================================================ |
|
WINDOW_WIDTH equ 550 |
WINDOW_HEIGHT equ 320 |
GRID_STEP equ 20 |
GRID_BEGIN_X equ 31 |
GRID_BEGIN_Y equ 31 |
GRID_WIDTH equ 24 |
GRID_HEIGHT equ 11 |
GRID_ENDS_WIDTH equ 13 |
|
BOTTOM_TOP_STRINGS equ 270 |
BOTTOM_MIDDLE_STRINGS equ 276 |
BOTTOM_BOTTOM_STRINGS equ 282 |
TOP_STRINGS equ 5 |
|
SCORE_EAT equ 100 |
|
LEFT equ 0 |
59,47 → 45,52 |
invoke ini.get_int, cur_dir_path, aPreferences, aSpeed, 80 |
neg eax |
add [time_wait_limit], eax |
invoke ini.get_int, cur_dir_path, aPreferences, aDecorations, 2 |
invoke ini.get_int, cur_dir_path, aPreferences, aSquare_side_length, 19 |
mov [square_side_length], eax |
invoke ini.get_int, cur_dir_path, aPreferences, aSpace_between_squares, 1 |
mov [space_between_squares], eax |
invoke ini.get_str, cur_dir_path, aPreferences, aTheme, aTheme_name, 31, aTheme_name |
|
invoke ini.get_int, cur_dir_path, aTheme_name, aDecorations, 2 |
mov [decorations], al |
|
invoke ini.get_color, cur_dir_path, aColors, aBackground_color, 0x000000 |
invoke ini.get_color, cur_dir_path, aTheme_name, aBackground_color, 0x000000 |
or [background_color], eax |
or [window_style], eax |
invoke ini.get_color, cur_dir_path, aColors, aDecorations_color, 0x00aaaa00 |
invoke ini.get_color, cur_dir_path, aTheme_name, aDecorations_color, 0x00aaaa00 |
or [decorations_color], eax |
invoke ini.get_color, cur_dir_path, aColors, aSnake_color, 0x1111ff |
invoke ini.get_color, cur_dir_path, aTheme_name, aSnake_color, 0x1111ff |
or [snake_color], eax |
invoke ini.get_color, cur_dir_path, aColors, aSnake_head_color, 0x1111ff |
invoke ini.get_color, cur_dir_path, aTheme_name, aSnake_head_color, 0x1111ff |
or [snake_head_color], eax |
invoke ini.get_color, cur_dir_path, aColors, aSnake_picture_color, 0x4488ff |
invoke ini.get_color, cur_dir_path, aTheme_name, aSnake_picture_color, 0x4488ff |
or [snake_picture_color], eax |
invoke ini.get_color, cur_dir_path, aColors, aVersion_picture_color, 0x55ff55 |
invoke ini.get_color, cur_dir_path, aTheme_name, aVersion_picture_color, 0x55ff55 |
or [version_picture_color], eax |
invoke ini.get_color, cur_dir_path, aColors, aPause_picture_color, 0x11ff11 |
invoke ini.get_color, cur_dir_path, aTheme_name, aPause_picture_color, 0x11ff11 |
or [pause_picture_color], eax |
invoke ini.get_color, cur_dir_path, aColors, aGame_over_picture_color, 0xff1111 |
invoke ini.get_color, cur_dir_path, aTheme_name, aGame_over_picture_color, 0xff1111 |
or [game_over_picture_color], eax |
invoke ini.get_color, cur_dir_path, aColors, aEat_color, 0xffff11 |
invoke ini.get_color, cur_dir_path, aTheme_name, aEat_color, 0xffff11 |
or [eat_color], eax |
invoke ini.get_color, cur_dir_path, aColors, aNavigation_strings_color, 0x80ff7777 |
invoke ini.get_color, cur_dir_path, aTheme_name, aNavigation_strings_color, 0x80ff7777 |
or [navigation_strings_color], eax |
invoke ini.get_color, cur_dir_path, aColors, aGame_over_strings_color, 0x80ff9900 |
invoke ini.get_color, cur_dir_path, aTheme_name, aGame_over_strings_color, 0x80ff9900 |
or [game_over_strings_color], eax |
invoke ini.get_color, cur_dir_path, aColors, aScore_string_color, 0x80ffffff |
invoke ini.get_color, cur_dir_path, aTheme_name, aScore_string_color, 0x80ffffff |
or [score_string_color], eax |
invoke ini.get_color, cur_dir_path, aColors, aHiscore_string_color, 0x80ffffff |
invoke ini.get_color, cur_dir_path, aTheme_name, aHiscore_string_color, 0x80ffffff |
or [hiscore_string_color], eax |
invoke ini.get_color, cur_dir_path, aColors, aChampion_string_color, 0x80ffffff |
invoke ini.get_color, cur_dir_path, aTheme_name, aChampion_string_color, 0x80ffffff |
or [champion_string_color], eax |
invoke ini.get_color, cur_dir_path, aColors, aGame_over_hiscore_color, 0x80ffdd44 |
invoke ini.get_color, cur_dir_path, aTheme_name, aGame_over_hiscore_color, 0x80ffdd44 |
or [game_over_hiscore_color], eax |
invoke ini.get_color, cur_dir_path, aColors, aScore_number_color, 0xffffff |
invoke ini.get_color, cur_dir_path, aTheme_name, aScore_number_color, 0xffffff |
or [score_number_color], eax |
invoke ini.get_color, cur_dir_path, aColors, aHiscore_number_color, 0x00ffffff |
invoke ini.get_color, cur_dir_path, aTheme_name, aHiscore_number_color, 0x00ffffff |
or [hiscore_number_color], eax |
invoke ini.get_color, cur_dir_path, aColors, aChampion_name_color, 0x80ffffff |
invoke ini.get_color, cur_dir_path, aTheme_name, aChampion_name_color, 0x80ffffff |
or [champion_name_color], eax |
invoke ini.get_color, cur_dir_path, aColors, aEdit_box_selection_color, 0x00aa00 |
invoke ini.get_color, cur_dir_path, aTheme_name, aEdit_box_selection_color, 0x00aa00 |
or [edit1+0x10], eax |
|
mov eax, [background_color] |
109,6 → 100,8 |
mov eax, [game_over_hiscore_color] |
mov [edit1+0x1C], eax |
|
call Set_geometry |
|
include 'first_menu.asm' ; First menu body and functions |
include 'level.asm' ; Level body and functions (game process) |
include 'pause.asm' ; Pause body and functions |
117,39 → 110,171 |
;;===Some_functions============================================================================================================ |
|
Exit: |
;;===Exit============================================================================================================== |
;;===Exit================================================================================================================== |
|
or eax, -1 |
int 0x40 |
|
;;---Exit-------------------------------------------------------------------------------------------------------------- |
;;---Exit------------------------------------------------------------------------------------------------------------------ |
|
|
Set_geometry: |
;;===Set_geometry========================================================================================================== |
|
mov eax, [space_between_squares] |
add eax, [square_side_length] |
mov [g_s], eax |
|
mov eax, [g_s] |
shr eax, 1 |
mov ebx, eax |
shr ebx, 1 |
add eax, ebx |
mov [g_e], eax |
|
mov eax, [g_s] |
add eax, [g_e] |
mov [gbxm1], eax |
|
mov eax, [g_e] |
add eax, 25 |
mov [gbym1], eax |
|
mov eax, [g_w] |
mul word[g_h] |
mov [gw_mul_gh], eax |
|
mov edx, [g_w] |
mov eax, [g_s] |
mul dx |
mov [gw_mul_gs], eax |
|
mov edx, [g_h] |
mov eax, [g_s] |
mul dx |
mov [gh_mul_gs], eax |
|
mov eax, [gbxm1] |
add eax, [gw_mul_gs] |
mov [gbxm1_plus_gw_mul_gs], eax |
|
mov eax, [gbym1] |
add eax, [gh_mul_gs] |
mov [gbym1_plus_gh_mul_gs], eax |
|
mov eax, [g_s] |
shl eax, 16 |
add eax, [g_s] |
mov [gs_shl16_gs], eax |
|
mov eax, [gbxm1] |
shl eax, 16 |
add eax, [gbxm1] |
mov [gbxm1_shl16_gbxm1], eax |
|
mov eax, [gbym1] |
shl eax, 16 |
add eax, [gbym1] |
mov [gbym1_shl16_gbym1], eax |
|
|
mov eax, [gw_mul_gs] |
add eax, [gbxm1] |
add eax, [gbxm1] |
add eax, 5*2 ; skin width |
mov [window_width], eax |
|
mov eax, [gh_mul_gs] |
add eax, [gbym1] |
add eax, [g_e] |
add eax, 30 |
add eax, 22+5 ; skin height |
mov [window_height], eax |
|
mcall 48, 5 |
mov dx, ax |
shr eax, 16 |
sub dx, ax |
cmp dx, word[window_width] ; does window fit to work area width? |
jnl @f |
dec [square_side_length] |
; dps 'snake: Window does not fit to screen.' |
; newline |
; dps 'Square_side_length was decreased.' |
; newline |
; dps 'Check you config file! (snake.ini)' |
; newline |
jmp Set_geometry |
@@: |
|
mov cx, bx |
shr ebx, 16 |
sub cx, bx |
cmp cx, word[window_height] ; does window fit to work area height? |
jnl @f |
dec [square_side_length] |
; dps 'snake: Window does not fit to screen.' |
; newline |
; dps 'Square_side_length was decreased.' |
; newline |
; dps 'Check you config file! (snake.ini)' |
; newline |
jmp Set_geometry |
@@: |
|
sub dx, word[window_width] |
shr dx, 1 |
mov word[wp_x], dx |
sub cx, word[window_height] |
shr cx, 1 |
mov dx, cx |
shr cx, 1 |
add cx, dx |
mov word[wp_y], cx |
|
mov [top_strings], 8 |
mov eax, [window_height] |
sub eax, 50 |
mov [bottom_top_strings], eax |
add eax, 6 |
mov [bottom_middle_strings], eax |
add eax, 6 |
mov [bottom_bottom_strings], eax |
|
sub eax, 4 |
mov [edit1+0x08], eax |
|
ret |
|
;;---Set_geometry------------------------------------------------------------------------------------------------------ |
|
|
Draw_decorations: |
;;===Draw_decorations================================================================================================== |
|
cmp [decorations], 1 |
je grid_lines |
cmp [decorations], 2 |
je grid_lines_with_ends |
cmp [decorations], 3 |
je grid_lines_with_corners |
cmp [decorations], 4 |
je grid_dots |
cmp [decorations], 5 |
je borders_lines |
cmp [decorations], 6 |
je borders_lines_with_ends |
cmp [decorations], 7 |
je borders_dots |
cmp [decorations], 8 |
je corners_dots |
cmp [decorations], 9 |
je corners_inner |
cmp [decorations], 10 |
je corners_outer |
cmp [decorations], 11 |
je corners_crosses |
mov al, [decorations] |
dec al |
jz grid_lines |
dec al |
jz grid_lines_with_ends |
dec al |
jz grid_lines_with_corners |
dec al |
jz grid_dots |
dec al |
jz borders_lines |
dec al |
jz borders_lines_with_corners |
dec al |
jz borders_dots |
dec al |
jz corners_dots |
dec al |
jz corners_inner |
dec al |
jz corners_outer |
dec al |
jz corners_crosses |
ret |
|
|
156,24 → 281,33 |
grid_lines: |
|
mov eax, 38 |
mov ebx, (GRID_BEGIN_X-1)*65536+(GRID_BEGIN_X-1) |
mov ecx, (GRID_BEGIN_Y-1)*65536+(GRID_BEGIN_Y-1+GRID_HEIGHT*GRID_STEP) |
;mov ebx, (GRID_BEGIN_X-1)*65536+(GRID_BEGIN_X-1) |
mov ebx, [gbxm1_shl16_gbxm1] |
;mov ecx, (GRID_BEGIN_Y-1)*65536+(GRID_BEGIN_Y-1+GRID_HEIGHT*GRID_STEP) |
mov ecx, [gbym1_shl16_gbym1] |
add ecx, [gh_mul_gs] |
mov edx, [decorations_color] |
mov esi, [g_w] |
add esi, 1 |
|
@@: |
mcall |
add ebx, GRID_STEP*65536+GRID_STEP |
cmp ebx, (GRID_BEGIN_X-1+GRID_WIDTH*GRID_STEP)*65536+(GRID_BEGIN_X-1+GRID_WIDTH*GRID_STEP) |
jng @b |
add ebx, [gs_shl16_gs] |
dec esi |
jnz @b |
|
mov ebx, (GRID_BEGIN_X-1)*65536+(GRID_BEGIN_X-1+GRID_WIDTH*GRID_STEP) |
mov ecx, (GRID_BEGIN_Y-1)*65536+(GRID_BEGIN_Y-1) |
;mov ebx, (GRID_BEGIN_X-1)*65536+(GRID_BEGIN_X-1+GRID_WIDTH*GRID_STEP) |
mov ebx, [gbxm1_shl16_gbxm1] |
add ebx, [gw_mul_gs] |
mov ecx, [gbym1_shl16_gbym1] |
mov esi, [g_h] |
add esi, 1 |
|
@@: |
mcall |
add ecx, GRID_STEP*65536+GRID_STEP |
cmp ecx, (GRID_BEGIN_Y-1+GRID_HEIGHT*GRID_STEP)*65536+(GRID_BEGIN_Y-1+GRID_HEIGHT*GRID_STEP) |
jng @b |
add ecx, [gs_shl16_gs] |
dec esi |
jnz @b |
|
ret |
|
181,24 → 315,36 |
grid_lines_with_ends: |
|
mov eax, 38 |
mov ebx, (GRID_BEGIN_X-1)*65536+(GRID_BEGIN_X-1) |
mov ecx, (GRID_BEGIN_Y-1-GRID_ENDS_WIDTH)*65536+(GRID_BEGIN_Y-1+GRID_HEIGHT*GRID_STEP+GRID_ENDS_WIDTH) |
mov ebx, [gbxm1_shl16_gbxm1] |
mov ecx, [gbym1] |
sub ecx, [g_e] |
shl ecx, 16 |
add ecx, [gbym1_plus_gh_mul_gs] |
add ecx, [g_e] |
mov edx, [decorations_color] |
mov esi, [g_w] |
add esi, 1 |
|
@@: |
mcall |
add ebx, GRID_STEP*65536+GRID_STEP |
cmp ebx, (GRID_BEGIN_X-1+GRID_WIDTH*GRID_STEP)*65536+(GRID_BEGIN_X-1+GRID_WIDTH*GRID_STEP) |
jng @b |
add ebx, [gs_shl16_gs] |
dec esi |
jnz @b |
|
mov ebx, (GRID_BEGIN_X-1-GRID_ENDS_WIDTH)*65536+(GRID_BEGIN_X-1+GRID_WIDTH*GRID_STEP+GRID_ENDS_WIDTH) |
mov ecx, (GRID_BEGIN_Y-1)*65536+(GRID_BEGIN_Y-1) |
mov ebx, [gbxm1] |
sub ebx, [g_e] |
shl ebx, 16 |
add ebx, [gbxm1_plus_gw_mul_gs] |
add ebx, [g_e] |
mov ecx, [gbym1_shl16_gbym1] |
mov esi, [g_h] |
add esi, 1 |
|
@@: |
mcall |
add ecx, GRID_STEP*65536+GRID_STEP |
cmp ecx, (GRID_BEGIN_Y-1+GRID_HEIGHT*GRID_STEP)*65536+(GRID_BEGIN_Y-1+GRID_HEIGHT*GRID_STEP) |
jng @b |
add ecx, [gs_shl16_gs] |
dec esi |
jnz @b |
|
ret |
|
214,19 → 360,19 |
grid_dots: |
|
mov eax, 1 |
mov ebx, GRID_BEGIN_X-1 |
mov ecx, GRID_BEGIN_Y-1 |
mov ebx, [gbxm1] |
mov ecx, [gbym1] |
mov edx, [decorations_color] |
|
@@: |
mcall |
add ebx, GRID_STEP |
cmp ebx, GRID_BEGIN_X+GRID_WIDTH*GRID_STEP-1 |
add ebx, [g_s] |
cmp ebx, [gbxm1_plus_gw_mul_gs] |
jng @b |
add ecx, GRID_STEP |
cmp ecx, GRID_BEGIN_Y+GRID_HEIGHT*GRID_STEP-1 |
add ecx, [g_s] |
cmp ecx, [gbym1_plus_gh_mul_gs] |
jg @f |
mov ebx, GRID_BEGIN_X-1 |
mov ebx, [gbxm1] |
jmp @b |
|
@@: |
235,15 → 381,32 |
|
borders_lines: |
|
mcall 38,(GRID_BEGIN_X-1)*65536+(GRID_BEGIN_X-1),17*65536+263,[decorations_color] |
mcall ,(GRID_BEGIN_X+GRID_WIDTH*GRID_STEP-1)*65536+(GRID_BEGIN_X+GRID_WIDTH*GRID_STEP-1), , |
mcall ,17*65536+523,(GRID_BEGIN_Y-1)*65536+(GRID_BEGIN_Y-1) |
mcall ,17*65536+523,(GRID_BEGIN_Y+GRID_HEIGHT*GRID_STEP-1)*65536+(GRID_BEGIN_Y+GRID_HEIGHT*GRID_STEP-1) |
mov eax, 38 |
mov ebx, [gbxm1_shl16_gbxm1] |
mov ecx, [gbym1_shl16_gbym1] |
add ecx, [gh_mul_gs] |
mov edx, [decorations_color] |
mcall |
|
mov ebx, [gbxm1_plus_gw_mul_gs] |
shl ebx, 16 |
add ebx, [gbxm1_plus_gw_mul_gs] |
mcall |
|
mov ebx, [gbxm1_shl16_gbxm1] |
add ebx, [gw_mul_gs] |
mov ecx, [gbym1_shl16_gbym1] |
mcall |
|
mov ecx, [gbym1_plus_gh_mul_gs] |
shl ecx, 16 |
add ecx, [gbym1_plus_gh_mul_gs] |
mcall |
|
ret |
|
|
borders_lines_with_ends: |
borders_lines_with_corners: |
|
call borders_lines |
call corners_outer |
254,37 → 417,37 |
borders_dots: |
|
mov eax, 1 |
mov ebx, GRID_BEGIN_X-1 |
mov ecx, GRID_BEGIN_Y-1 |
mov ebx, [gbxm1] |
mov ecx, [gbym1] |
mov edx, [decorations_color] |
@@: |
mcall |
add ebx, GRID_STEP |
cmp ebx, GRID_BEGIN_X-1+GRID_WIDTH*GRID_STEP |
add ebx, [g_s] |
cmp ebx, [gbxm1_plus_gw_mul_gs] |
jng @b |
|
mov ebx, GRID_BEGIN_X-1 |
mov ecx, GRID_BEGIN_Y-1+GRID_HEIGHT*GRID_STEP |
mov ebx, [gbxm1] |
mov ecx, [gbym1_plus_gh_mul_gs] |
@@: |
mcall |
add ebx, GRID_STEP |
cmp ebx, GRID_BEGIN_X-1+GRID_WIDTH*GRID_STEP |
add ebx, [g_s] |
cmp ebx, [gbxm1_plus_gw_mul_gs] |
jng @b |
|
mov ebx, GRID_BEGIN_X-1 |
mov ecx, GRID_BEGIN_Y-1 |
mov ebx, [gbxm1] |
mov ecx, [gbym1] |
@@: |
mcall |
add ecx, GRID_STEP |
cmp ecx, GRID_BEGIN_Y-1+GRID_HEIGHT*GRID_STEP |
add ecx, [g_s] |
cmp ecx, [gbym1_plus_gh_mul_gs] |
jng @b |
|
mov ebx, GRID_BEGIN_X-1+GRID_WIDTH*GRID_STEP |
mov ecx, GRID_BEGIN_Y-1 |
mov ebx, [gbxm1_plus_gw_mul_gs] |
mov ecx, [gbym1] |
@@: |
mcall |
add ecx, GRID_STEP |
cmp ecx, GRID_BEGIN_Y-1+GRID_HEIGHT*GRID_STEP |
add ecx, [g_s] |
cmp ecx, [gbym1_plus_gh_mul_gs] |
jng @b |
|
ret |
292,39 → 455,127 |
|
corners_dots: |
|
mcall 13,(GRID_BEGIN_X-2)*65536+2,(GRID_BEGIN_Y-2)*65536+2,[decorations_color] |
mcall ,(GRID_BEGIN_X+GRID_WIDTH*GRID_STEP-1)*65536+2,(GRID_BEGIN_Y-2)*65536+2, |
mcall 13,(GRID_BEGIN_X-2)*65536+2,(GRID_BEGIN_Y+GRID_HEIGHT*GRID_STEP-1)*65536+2, |
mcall ,(GRID_BEGIN_X+GRID_WIDTH*GRID_STEP-1)*65536+2,(GRID_BEGIN_Y+GRID_HEIGHT*GRID_STEP-1)*65536+2, |
mov eax, 13 |
mov ebx, [gbxm1] |
dec ebx |
shl ebx, 16 |
add ebx, 2 |
mov ecx, [gbym1] |
dec ecx |
shl ecx, 16 |
add ecx, 2 |
mov edx, [decorations_color] |
mcall |
|
mov ebx, [gbxm1_plus_gw_mul_gs] |
shl ebx, 16 |
add ebx, 2 |
mcall |
|
mov ebx, [gbxm1] |
dec ebx |
shl ebx, 16 |
add ebx, 2 |
mov ecx, [gbym1_plus_gh_mul_gs] |
shl ecx, 16 |
add ecx, 2 |
mcall |
|
mov ebx, [gbxm1_plus_gw_mul_gs] |
shl ebx, 16 |
add ebx, 2 |
mcall |
|
ret |
|
|
corners_inner: |
|
mcall 38,(GRID_BEGIN_X-1)*65536+(GRID_BEGIN_X-1+GRID_ENDS_WIDTH),(GRID_BEGIN_Y-1)*65536+(GRID_BEGIN_Y-1),[decorations_color] |
mcall ,(GRID_BEGIN_X-1)*65536+(GRID_BEGIN_X-1+GRID_ENDS_WIDTH),(GRID_BEGIN_Y+GRID_HEIGHT*GRID_STEP-1)*65536+(GRID_BEGIN_Y+GRID_HEIGHT*GRID_STEP-1), |
mcall ,(GRID_BEGIN_X+GRID_WIDTH*GRID_STEP-GRID_ENDS_WIDTH-1)*65536+(GRID_BEGIN_X+GRID_WIDTH*GRID_STEP-1),(GRID_BEGIN_Y-1)*65536+(GRID_BEGIN_Y-1), |
mcall ,(GRID_BEGIN_X+GRID_WIDTH*GRID_STEP-GRID_ENDS_WIDTH-1)*65536+(GRID_BEGIN_X+GRID_WIDTH*GRID_STEP-1),(GRID_BEGIN_Y+GRID_HEIGHT*GRID_STEP-1)*65536+(GRID_BEGIN_Y+GRID_HEIGHT*GRID_STEP-1), |
mcall ,(GRID_BEGIN_X-1)*65536+(GRID_BEGIN_X-1),(GRID_BEGIN_Y-1)*65536+(GRID_BEGIN_Y-1+GRID_ENDS_WIDTH), |
mcall ,(GRID_BEGIN_X+GRID_WIDTH*GRID_STEP-1)*65536+(GRID_BEGIN_X+GRID_WIDTH*GRID_STEP-1),(GRID_BEGIN_Y-1)*65536+(GRID_BEGIN_Y-1+GRID_ENDS_WIDTH), |
mcall ,(GRID_BEGIN_X-1)*65536+(GRID_BEGIN_X-1),(GRID_BEGIN_Y+GRID_HEIGHT*GRID_STEP-GRID_ENDS_WIDTH-1)*65536+(GRID_BEGIN_Y+GRID_HEIGHT*GRID_STEP-1), |
mcall ,(GRID_BEGIN_X+GRID_WIDTH*GRID_STEP-1)*65536+(GRID_BEGIN_X+GRID_WIDTH*GRID_STEP-1),(GRID_BEGIN_Y+GRID_HEIGHT*GRID_STEP-GRID_ENDS_WIDTH-1)*65536+(GRID_BEGIN_Y+GRID_HEIGHT*GRID_STEP-1), |
mov eax, 38 |
mov ebx, [gbxm1_shl16_gbxm1] |
add ebx, [g_e] |
mov ecx, [gbym1_shl16_gbym1] |
mov edx, [decorations_color] |
mcall |
|
mov ecx, [gbym1_plus_gh_mul_gs] |
shl ecx, 16 |
add ecx, [gbym1_plus_gh_mul_gs] |
mcall |
|
mov ebx, [gbxm1_plus_gw_mul_gs] |
sub ebx, [g_e] |
shl ebx, 16 |
add ebx, [gbxm1_plus_gw_mul_gs] |
mcall |
|
mov ecx, [gbym1_shl16_gbym1] |
mcall |
|
mov ebx, [gbxm1_shl16_gbxm1] |
mov ecx, [gbym1_shl16_gbym1] |
add ecx, [g_e] |
mcall |
|
mov ebx, [gbxm1_plus_gw_mul_gs] |
shl ebx, 16 |
add ebx, [gbxm1_plus_gw_mul_gs] |
mcall |
|
mov ecx, [gbym1_plus_gh_mul_gs] |
sub ecx, [g_e] |
shl ecx, 16 |
add ecx, [gbym1_plus_gh_mul_gs] |
mcall |
|
mov ebx, [gbxm1_shl16_gbxm1] |
mcall |
|
ret |
|
|
corners_outer: |
|
mcall 38,(GRID_BEGIN_X-1-GRID_ENDS_WIDTH)*65536+(GRID_BEGIN_X-1),(GRID_BEGIN_Y-1)*65536+(GRID_BEGIN_Y-1),[decorations_color] |
mcall ,(GRID_BEGIN_X-1-GRID_ENDS_WIDTH)*65536+(GRID_BEGIN_X-1),(GRID_BEGIN_Y+GRID_HEIGHT*GRID_STEP-1)*65536+(GRID_BEGIN_Y+GRID_HEIGHT*GRID_STEP-1), |
mcall ,(GRID_BEGIN_X+GRID_WIDTH*GRID_STEP-1)*65536+(GRID_BEGIN_X+GRID_WIDTH*GRID_STEP-1+GRID_ENDS_WIDTH),(GRID_BEGIN_Y-1)*65536+(GRID_BEGIN_Y-1), |
mcall ,(GRID_BEGIN_X+GRID_WIDTH*GRID_STEP-1)*65536+(GRID_BEGIN_X+GRID_WIDTH*GRID_STEP-1+GRID_ENDS_WIDTH),(GRID_BEGIN_Y+GRID_HEIGHT*GRID_STEP-1)*65536+(GRID_BEGIN_Y+GRID_HEIGHT*GRID_STEP-1), |
mcall ,(GRID_BEGIN_X-1)*65536+(GRID_BEGIN_X-1),(GRID_BEGIN_Y-1-GRID_ENDS_WIDTH)*65536+(GRID_BEGIN_Y-1), |
mcall ,(GRID_BEGIN_X+GRID_WIDTH*GRID_STEP-1)*65536+(GRID_BEGIN_X+GRID_WIDTH*GRID_STEP-1),(GRID_BEGIN_Y-1-GRID_ENDS_WIDTH)*65536+(GRID_BEGIN_Y-1), |
mcall ,(GRID_BEGIN_X-1)*65536+(GRID_BEGIN_X-1),(GRID_BEGIN_Y+GRID_HEIGHT*GRID_STEP-1)*65536+(GRID_BEGIN_Y+GRID_HEIGHT*GRID_STEP-1+GRID_ENDS_WIDTH), |
mcall ,(GRID_BEGIN_X+GRID_WIDTH*GRID_STEP-1)*65536+(GRID_BEGIN_X+GRID_WIDTH*GRID_STEP-1),(GRID_BEGIN_Y+GRID_HEIGHT*GRID_STEP-1)*65536+(GRID_BEGIN_Y+GRID_HEIGHT*GRID_STEP-1+GRID_ENDS_WIDTH), |
mov eax, 38 |
mov ebx, [gbxm1_shl16_gbxm1] |
sub ebx, [g_e] |
mov ecx, [gbym1_shl16_gbym1] |
mov edx, [decorations_color] |
mcall |
|
mov ecx, [gbym1_plus_gh_mul_gs] |
shl ecx, 16 |
add ecx, [gbym1_plus_gh_mul_gs] |
mcall |
|
mov ebx, [gbxm1_plus_gw_mul_gs] |
shl ebx, 16 |
add ebx, [gbxm1_plus_gw_mul_gs] |
add ebx, [g_e] |
mcall |
|
mov ecx, [gbym1_shl16_gbym1] |
mcall |
|
mov ebx, [gbxm1_shl16_gbxm1] |
mov ecx, [gbym1_shl16_gbym1] |
sub ecx, [g_e] |
mcall |
|
mov ebx, [gbxm1_plus_gw_mul_gs] |
shl ebx, 16 |
add ebx, [gbxm1_plus_gw_mul_gs] |
mcall |
|
mov ecx, [gbym1_plus_gh_mul_gs] |
shl ecx, 16 |
add ecx, [gbym1_plus_gh_mul_gs] |
add ecx, [g_e] |
mcall |
|
mov ebx, [gbxm1_shl16_gbxm1] |
mcall |
|
ret |
|
|
347,19 → 598,23 |
|
mov cl, bh |
|
mov al, 20 |
mov al, byte[g_s] |
mul bl |
mov bx, ax |
add bx, 31 |
add bx, word[gbxm1] |
inc bx |
shl ebx, 16 |
add ebx, 19 |
add ebx, [g_s] |
dec ebx |
|
mov al, 20 |
mov al, byte[g_s] |
mul cl |
mov cx, ax |
add cx, 31 |
add cx, word[gbym1] |
inc cx |
shl ecx, 16 |
add ecx, 19 |
add ecx, [g_s] |
dec ecx |
|
mcall 13 |
|
371,7 → 626,12 |
Draw_menu_esc: |
;;===Draw_menu_esc===================================================================================================== |
|
mcall 4,234*65536+TOP_STRINGS,[navigation_strings_color],string_menu_esc |
mov ebx, [window_width] |
shr ebx, 1 |
sub ebx, (string_apply_name_enter-string_menu_esc-1)*3+6 |
shl ebx, 16 |
add ebx, dword[top_strings] |
mcall 4, ,[navigation_strings_color],string_menu_esc |
|
ret |
|
381,7 → 641,12 |
Draw_score_string: |
;;===Draw_score_string================================================================================================= |
|
mcall 4,56*65536+BOTTOM_TOP_STRINGS,[score_string_color],string_score |
mov ebx, [window_width] |
shr ebx, 3 |
sub ebx, 5 |
shl ebx, 16 |
add ebx, dword[bottom_top_strings] |
mcall 4, ,[score_string_color],string_score |
|
ret |
|
391,7 → 656,13 |
Draw_score_number: |
;;===Draw_score_number================================================================================================= |
|
mcall 47,0x00070000,[score],104*65536+BOTTOM_TOP_STRINGS,[score_number_color],[background_color] |
mov edx, [window_width] |
shr edx, 3 |
sub edx, 6 |
add edx, (string_hi_score-string_score)*6 |
shl edx, 16 |
add edx, dword[bottom_top_strings] |
mcall 47,0x00070000,[score], ,[score_number_color],[background_color] |
|
ret |
|
401,7 → 672,14 |
Draw_hiscore_string: |
;;===Draw_hiscore_string=============================================================================================== |
|
mcall 4,376*65536+BOTTOM_TOP_STRINGS,[hiscore_string_color],string_hi_score |
mov ebx, [window_width] |
shr ebx, 3 |
neg ebx |
add ebx, [window_width] |
sub ebx, (string_player-string_hi_score)*6+7*6+5 |
shl ebx, 16 |
add ebx, dword[bottom_top_strings] |
mcall 4, ,[hiscore_string_color],string_hi_score |
|
ret |
|
411,7 → 689,14 |
Draw_hiscore_number: |
;;===Draw_hiscore_number=============================================================================================== |
|
mcall 47,0x00070000,[hi_score],442*65536+BOTTOM_TOP_STRINGS,[hiscore_number_color] |
mov edx, [window_width] |
shr edx, 3 |
neg edx |
add edx, [window_width] |
sub edx, 7*6+6 |
shl edx, 16 |
add edx, dword[bottom_top_strings] |
mcall 47,0x00070000,[hi_score], ,[hiscore_number_color] |
|
ret |
|
421,7 → 706,14 |
Draw_champion_string: |
;;===Draw_champion_string============================================================================================== |
|
mcall 4,376*65536+BOTTOM_BOTTOM_STRINGS,[champion_string_color],string_champion |
mov ebx, [window_width] |
shr ebx, 3 |
neg ebx |
add ebx, [window_width] |
sub ebx, (string_level-string_champion)*6+7*6+5 |
shl ebx, 16 |
add ebx, dword[bottom_bottom_strings] |
mcall 4, ,[champion_string_color],string_champion |
|
ret |
|
431,7 → 723,15 |
Draw_champion_name: |
;;===Draw_champion_name================================================================================================ |
|
mcall 4,442*65536+BOTTOM_BOTTOM_STRINGS,[champion_name_color],champion_name |
mov ebx, [window_width] |
shr ebx, 3 |
neg ebx |
add ebx, [window_width] |
sub ebx, (press_to_start-champion_name)*6+7*6+6 |
add ebx, (press_to_start-champion_name)*6 |
shl ebx, 16 |
add ebx, dword[bottom_bottom_strings] |
mcall 4, ,[champion_name_color],champion_name |
|
ret |
|
441,37 → 741,37 |
Draw_picture: |
;;===Draw_picture====================================================================================================== |
;; in : |
;; al = picture height (in squares) |
;; bh = number of top square |
;; ecx = pointer to picture data |
;; ax = number of left square *0x100+ picture width (in squares) |
;; cx = number of top square *0x100+ picture height (in squares) |
;; edx = picture color |
;; esi = pointer to picture data |
;; |
|
add al, ah |
add cl, ch |
mov bh, ch |
|
.draw: |
xor bl, bl |
mov bl, ah |
|
.loop: |
cmp byte[ecx], 0 |
cmp byte[esi], 0 |
jz @f |
push eax ebx ecx |
push eax ebx ecx esi |
call Draw_square |
pop ecx ebx eax |
pop esi ecx ebx eax |
|
@@: |
inc ecx |
inc esi |
inc bl |
cmp bl, GRID_WIDTH |
cmp bl, al |
jne .loop |
|
dec al |
test al, al |
jnz @f |
inc bh |
cmp bh, cl |
jne .draw |
ret |
@@: |
inc bh |
jmp .draw |
|
|
;;---Draw_picture------------------------------------------------------------------------------------------------------ |
|
|
487,7 → 787,7 |
xor bx, bx |
mov bl, al |
shr ax, 8 |
mov dx, 24 |
mov dx, word[g_w] |
mul dx |
add ax, bx |
mov edi, field_map |
505,7 → 805,7 |
;; al = x coord |
;; ah = y coord |
;; out : |
;; al = value on map |
;; bl = value on map |
;; |
|
push eax |
514,7 → 814,7 |
xor bx, bx |
mov bl, al |
shr ax, 8 |
mov dx, 24 |
mov dx, word[g_w] |
mul dx |
add ax, bx |
mov edi, field_map |
538,21 → 838,30 |
time_before_waiting dd 0x0 |
time_to_wait dd 0x0 |
time_wait_limit dd 101 |
decorations db 0x0 |
number_of_free_dots dw 0x0 |
|
field_map db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
|
gbxm1 dd 30 |
gbym1 dd 30 |
g_w dd 29 |
g_h dd 15 |
g_e dd 13 |
|
field_map db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
|
string_score db 'SCORE :',0 |
string_hi_score db 'HI-SCORE :',0 |
string_player db 'PLAYER :',0 |
562,20 → 871,19 |
string_resume_space db 'RESUME - ',0x27,'SPACE',0x27,0 |
string_menu_esc db 'MENU - ',0x27,'ESC',0x27,0 |
string_apply_name_enter db 'APPLY NAME - ',0x27,'ENTER',0x27,0 |
|
champion_name db 'dunkaist',0x20,0x20,0x20,0x20,0x20,0x20,0x20,0 |
|
press_to_start db '...PRESS ',0x27,'SPACE',0x27,' OR ',0x27,'ENTER',0x27,' TO START...',0 |
press_to_start db 'PRESS ',0x27,'SPACE',0x27,' OR ',0x27,'ENTER',0x27,' TO START',0 |
press_esc_to_exit db 'PRESS ',0x27,'ESC',0x27,' TO EXIT',0 |
;press_F2_to_options db 'PRESS ',0x27,'F2',0x27,' TO OPTIONS',0 |
|
snake_dots db 3,3, 4,3, 5,3, 522 dup (0) ; 264 dots |
string_congratulations db ' Congratulations!!! New hi-score is :',0 |
string_enter_your_name db 'You are the champion! Enter your name :',0 |
strings_end: |
|
snake_dots db 3,3, 4,3, 5,3, 865 dup (0) |
snake_napravlenie db 3 |
snake_napravlenie_next db 3 |
snake_length_x2 dd 6 |
|
eat db 0,0 |
|
score dd 0 |
hi_score dd 777 |
is_new_record db 0 |
582,51 → 890,56 |
|
action db 0 |
|
string_congratulations db 'Congratulations!!! You are the champion!! New hi-score is :',0 |
string_enter_your_name db 'Enter your name, please :',0 |
picture_first_menu_snake db 1,1,1,1,1,0,1,0,0,0,1,0,0,1,1,1,0,0,1,0,0,1,0,0,1,1,1,1,1,\ |
1,0,0,0,0,0,1,1,0,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,\ |
1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,\ |
1,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,0,0,0,0,1,1,1,1,0,\ |
0,0,0,0,1,0,1,0,0,1,1,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,\ |
1,1,1,1,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,1,1,0,1,1,1,1,1 |
|
picture_first_menu_snake db 1,1,1,1,0,1,0,0,1,0,0,1,1,0,0,1,0,0,1,0,1,1,1,1,\ |
1,0,0,0,0,1,1,0,1,0,1,0,0,1,0,1,0,1,0,0,1,0,0,1,\ |
1,1,1,1,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,0,1,1,1,1,\ |
0,0,0,1,0,1,0,1,1,0,1,1,1,1,0,1,0,1,0,0,1,0,0,0,\ |
1,1,1,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,1,1,1 |
picture_first_menu_version db 1,1,1,1,0,0,0,1,1,1,1,\ |
1,0,0,1,0,0,0,0,0,0,1,\ |
1,0,0,1,0,0,0,0,1,1,1,\ |
1,0,0,1,0,0,0,0,0,0,1,\ |
1,1,1,1,0,1,0,1,1,1,1 |
|
picture_first_menu_version db 0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,1,0,0,0,0,0,0,0,0 |
picture_pause db 0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,1,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,1,1,1,1,0,1,1,1,1,0,0,\ |
0,0,1,0,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,\ |
0,0,1,1,1,1,0,0,1,0,0,1,0,1,0,0,1,0,1,1,1,1,0,1,1,1,0,0,0,\ |
0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,\ |
0,0,1,0,0,0,0,0,1,0,0,1,0,0,1,1,0,0,1,1,1,1,0,1,1,1,1,0,0 |
|
picture_pause db 1,1,1,0,0,0,1,1,0,0,1,0,0,1,0,1,1,1,1,0,1,1,1,1,\ |
1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,0,0,1,0,0,0,\ |
1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,0,0,1,0,0,0,\ |
1,1,1,0,0,1,1,1,1,0,1,0,0,1,0,1,1,1,1,0,1,1,1,0,\ |
1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,0,1,0,1,0,0,0,\ |
1,0,0,0,0,1,0,0,1,0,0,1,1,0,0,1,1,1,1,0,1,1,1,1 |
picture_game_over db 0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,1,0,0,1,0,0,1,1,1,0,0,1,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,\ |
1,0,0,0,0,0,1,0,0,0,1,0,1,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,\ |
1,0,0,1,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,1,1,0,0,0,0,0,0,0,0,\ |
1,0,0,0,1,0,1,1,1,1,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,\ |
0,1,1,1,0,0,1,0,0,0,1,0,1,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,1,1,1,1,0,1,1,1,1,0,0,\ |
0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,1,0,0,0,1,0,\ |
0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,1,1,1,0,0,1,0,0,0,1,0,\ |
0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,0,1,1,1,1,0,0,\ |
0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,0,0,1,1,1,1,0,1,0,0,0,1,0 |
|
picture_game_over db 0,0,1,1,1,0,0,0,1,0,0,0,1,0,0,0,1,0,1,1,1,1,1,0,\ |
0,1,0,0,1,0,0,1,0,1,0,0,1,1,0,1,1,0,1,0,0,0,0,0,\ |
1,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,1,1,1,1,0,0,\ |
1,0,0,1,0,0,1,1,1,1,1,0,1,0,0,0,1,0,1,0,0,0,0,0,\ |
0,1,1,1,0,0,1,0,0,0,1,0,1,0,0,0,1,0,1,1,1,1,1,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,1,1,1,0,0,1,0,0,0,1,0,1,1,1,1,1,0,1,1,1,1,0,\ |
0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,\ |
0,1,0,0,0,1,0,1,0,0,0,1,0,1,1,1,1,0,0,1,0,0,0,1,\ |
0,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,1,0,\ |
0,0,1,1,1,0,0,0,0,1,0,0,0,1,1,1,1,1,0,1,0,0,0,1 |
start_map db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
|
start_map db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
|
background_color dd 0x000000 |
decorations_color dd 0x00000000 |
snake_color dd 0x000000 |
667,15 → 980,14 |
|
bFirstDraw db 0 |
|
aScore db 'Score',0 |
aHiscore db 'Hiscore',0 |
aChampion_name db 'Champion_name',0 |
|
aPreferences db 'Preferences',0 |
aSpeed db 'Speed',0 |
aSquare_side_length db 'Square_side_length',0 |
aSpace_between_squares db 'Space_between_squares',0 |
aTheme db 'Theme',0 |
|
aTheme_name db 32 dup (0) |
aDecorations db 'Decorations',0 |
|
aColors db 'Colors',0 |
aBackground_color db 'Background_color',0 |
aDecorations_color db 'Decorations_color',0 |
aSnake_color db 'Snake_color',0 |
696,18 → 1008,51 |
aChampion_name_color db 'Champion_name_color',0 |
aEdit_box_selection_color db 'Edit_box_selection_color',0 |
|
edit1 edit_box 100,397,278,0x000000,0x000000,0x000000,0x000000,0x80000000,15,hed,mouse_dd,ed_focus,hed_end-hed-1,hed_end-hed-1 |
aScore db 'Score',0 |
aHiscore db 'Hiscore',0 |
aChampion_name db 'Champion_name',0 |
|
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 |
|
hed db '',0 |
;;---Variables------------------------------------------------------------------------------------------------------------- |
i_end: |
hed_end: |
rb 256 |
|
mouse_dd rd 1 |
|
i_end: |
decorations rb 1 |
number_of_free_dots rw 1 |
|
eat rb 1 |
|
square_side_length rd 1 |
space_between_squares rd 1 |
g_s rd 1 |
|
window_width rd 1 |
window_height rd 1 |
wp_x rd 1 |
wp_y rd 1 |
|
gw_mul_gh rd 1 |
gw_mul_gs rd 1 |
gh_mul_gs rd 1 |
gbxm1_plus_gw_mul_gs rd 1 |
gbym1_plus_gh_mul_gs rd 1 |
gs_shl16_gs rd 1 |
gbxm1_shl16_gbxm1 rd 1 |
gbym1_shl16_gbym1 rd 1 |
|
bottom_top_strings rd 1 |
bottom_middle_strings rd 1 |
bottom_bottom_strings rd 1 |
top_strings rd 1 |
|
champion_name rb 16 |
|
cur_dir_path rb 4096 |
@PARAMS rb 4096 |
;;---Variables------------------------------------------------------------------------------------------------------------- |
|
rb 4096 |
stacktop: |