kolibrios/programs/games/snake/trunk/game_over.asm

137 lines
4.4 KiB
NASM
Raw Normal View History

;;===Game_over_mode============================================================================================================
Game_over:
mov ebx, [score]
cmp ebx, [hi_score]
jng Game_over_Redraw
mov [is_new_record], 1
mcall 40,100111b ; set events: standart + mouse
Game_over_Redraw:
mcall 12,1
mcall 0,200*65536+WINDOW_WIDTH,326*65536+WINDOW_HEIGHT,[window_style], ,window_title
cmp [is_new_record], 1
jnz @f
push dword edit1
call [edit_box.draw]
@@:
call Draw_decorations
call Draw_game_over_picture
call Draw_game_over_strings
mcall 12,2
Game_over_Wait_for_event:
mcall 10 ; wait for event
; ok, what an event?
dec al ; has the window been moved or resized?
jz Game_over_Redraw
dec al ; was a key pressed?
jz Game_over_key
dec al ; was a button pressed?
jz Game_over_button
Game_over_mouse: ; mouse event received
push dword edit1
call [edit_box.mouse]
jmp Game_over_Wait_for_event
Game_over_key: ; a key was pressed
mcall 2 ; get keycode
cmp [is_new_record], 1
jnz .skip
cmp ah, 0x0D ; Enter
jnz @f
call Score_and_name_store
mov [is_new_record], 0
mcall 40,111b ; set events: standart
jmp First_menu
@@:
push dword edit1
call [edit_box.key]
jmp Game_over_Wait_for_event
.skip:
cmp ah, 0x1B ; Escape - go to menu
jne Game_over_Wait_for_event
mcall 40,111b ; set events: standart
jmp First_menu
Game_over_button: ; a button was pressed
mcall 17 ; get button number
shr eax, 8 ; we should do it to get the real button code
cmp eax, 1
je Exit
jmp Game_over_Wait_for_event
;;---Game_over_mode------------------------------------------------------------------------------------------------------------
;;===Some_functions============================================================================================================
Draw_game_over_picture:
;;===Draw_game_over_picture================================================================================================
mov al, 11
mov bh, 0
mov ecx, picture_game_over
mov edx, [game_over_picture_color]
call Draw_picture
ret
;;---Draw_game_over_picture------------------------------------------------------------------------------------------------
Draw_game_over_strings:
;;===Draw_game_over_strings================================================================================================
cmp [is_new_record], 1
jnz @f
mcall 4,40*65536+BOTTOM_TOP_STRINGS,[game_over_strings_color],string_congratulations
mcall ,244*65536+BOTTOM_BOTTOM_STRINGS, ,string_enter_your_name
mcall ,210*65536+TOP_STRINGS,[navigation_strings_color],string_apply_name_enter
mcall 47,0x00070000,[score],(399)*65536+BOTTOM_TOP_STRINGS,[game_over_hiscore_color]
ret
@@:
call Draw_menu_esc
ret
;;---Draw_game_over_strings------------------------------------------------------------------------------------------------
Score_and_name_store:
;;===Name_store============================================================================================================
invoke ini.set_str, cur_dir_path, aScore, aChampion_name, hed, 15
invoke ini.set_int, cur_dir_path, aScore, aHiscore, [score]
ret
;;---Name_store------------------------------------------------------------------------------------------------------------
;;---Some_functions------------------------------------------------------------------------------------------------------------