char *game_over_text = "Game over!";
char *play_again_text = " Play it again?";
+ if (level.game_engine_type == GAME_ENGINE_TYPE_MM &&
+ game_mm.game_over_message != NULL)
+ game_over_text = game_mm.game_over_message;
+
snprintf(message, MAX_OUTPUT_LINESIZE, "%s%s", game_over_text,
(play_again ? play_again_text : ""));
return message;
}
-void CheckGameOver(void)
+boolean CheckRestartGame(void)
{
static boolean last_game_over = FALSE;
static int game_over_delay = 0;
int game_over_delay_value = 50;
boolean game_over = checkGameFailed();
- // do not handle game over if request dialog is already active
- if (game.request_active)
- return;
-
- // do not ask to play again if game was never actually played
- if (!game.GamePlayed)
- return;
-
if (!game_over)
{
last_game_over = FALSE;
game_over_delay = game_over_delay_value;
- return;
+ return FALSE;
}
if (game_over_delay > 0)
game_over_delay--;
- return;
+ return FALSE;
}
+ // do not handle game over if request dialog is already active
+ if (game.request_active)
+ return FALSE;
+
+ // do not ask to play again if game was never actually played
+ if (!game.GamePlayed)
+ return FALSE;
+
+ // do not ask to play again if this was disabled in setup menu
+ if (!setup.ask_on_game_over)
+ return FALSE;
+
if (last_game_over != game_over)
game.restart_game_message = getRestartGameMessage();
last_game_over = game_over;
+
+ if (game.restart_game_message != NULL)
+ {
+ RequestRestartGame(game.restart_game_message);
+
+ return TRUE;
+ }
+
+ return FALSE;
}
boolean checkGameSolved(void)