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 : ""));
game_mm.level_solved = FALSE;
game_mm.game_over = FALSE;
game_mm.game_over_cause = 0;
+ game_mm.game_over_message = NULL;
game_mm.laser_overload_value = 0;
game_mm.laser_enabled = FALSE;
static void GameOver_MM(int game_over_cause)
{
- // do not handle game over if request dialog is already active
- if (game.request_active)
- return;
-
game_mm.game_over = TRUE;
game_mm.game_over_cause = game_over_cause;
-
- // do not ask to play again if game was never actually played
- if (!game.GamePlayed)
- return;
-
- if (setup.ask_on_game_over)
- game.restart_game_message = (game_over_cause == GAME_OVER_BOMB ?
- "Bomb killed Mc Duffin! Play it again?" :
- game_over_cause == GAME_OVER_NO_ENERGY ?
- "Out of magic energy! Play it again?" :
- game_over_cause == GAME_OVER_OVERLOADED ?
- "Magic spell hit Mc Duffin! Play it again?" :
- NULL);
+ game_mm.game_over_message = (game_over_cause == GAME_OVER_BOMB ?
+ "Bomb killed Mc Duffin!" :
+ game_over_cause == GAME_OVER_NO_ENERGY ?
+ "Out of magic energy!" :
+ game_over_cause == GAME_OVER_OVERLOADED ?
+ "Magic spell hit Mc Duffin!" :
+ NULL);
SetTileCursorActive(FALSE);
}