fixed playing "game.losing" sound also if not asking to play again
[rocksndiamonds.git] / src / game.c
index 643d36e5840230e1389bb7c911d79151726d70e2..1cbea93f65185b803d2d0c6087be03a9227e3c9b 100644 (file)
@@ -15661,6 +15661,23 @@ 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;
+}
+
 void CheckGameOver(void)
 {
   static boolean last_game_over = FALSE;
@@ -15694,10 +15711,12 @@ void CheckGameOver(void)
     return;
   }
 
+  // do not ask to play again if this was disabled in setup menu
+  if (!setup.ask_on_game_over)
+    return;
+
   if (last_game_over != game_over)
-    game.restart_game_message = (hasStartedNetworkGame() ?
-                                "Game over! Play it again?" :
-                                "Game over!");
+    game.restart_game_message = getRestartGameMessage();
 
   last_game_over = game_over;
 }