Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 1517 → Rev 1518

/programs/games/snake/trunk/game_over.asm
0,0 → 1,137
;;===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------------------------------------------------------------------------------------------------------------