moved getting restart message to request function
[rocksndiamonds.git] / src / game.c
index c5d941dd093b0882faf8d9b2dbd16c1e7ea23f86..ecc1cea08e9ee3467d35bba375297df454152a33 100644 (file)
@@ -4515,7 +4515,6 @@ void InitGame(void)
   }
 
   game.restart_level = FALSE;
-  game.restart_game_message = NULL;
 
   game.request_active = FALSE;
   game.request_active_or_moving = FALSE;
@@ -15633,10 +15632,26 @@ void RequestQuitGame(boolean escape_key_pressed)
                     "Do you really want to quit the game?");
 }
 
-void RequestRestartGame(char *message)
+static char *getRestartGameMessage(void)
 {
-  game.restart_game_message = NULL;
+  boolean play_again = hasStartedNetworkGame();
+  static char message[MAX_OUTPUT_LINESIZE];
+  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;
+}
+
+static void RequestRestartGame(void)
+{
+  char *message = getRestartGameMessage();
   boolean has_started_game = hasStartedNetworkGame();
   int request_mode = (has_started_game ? REQ_ASK : REQ_CONFIRM);
   int door_state = DOOR_CLOSE_1;
@@ -15661,33 +15676,14 @@ void RequestRestartGame(char *message)
   }
 }
 
-static char *getRestartGameMessage(void)
-{
-  boolean play_again = hasStartedNetworkGame();
-  static char message[MAX_OUTPUT_LINESIZE];
-  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;
-}
-
 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();
 
   if (!game_over)
   {
-    last_game_over = FALSE;
     game_over_delay = game_over_delay_value;
 
     return FALSE;
@@ -15715,19 +15711,9 @@ boolean CheckRestartGame(void)
   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;
-  }
+  RequestRestartGame();
 
-  return FALSE;
+  return TRUE;
 }
 
 boolean checkGameSolved(void)