X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame.c;h=1cbea93f65185b803d2d0c6087be03a9227e3c9b;hb=cc87512c58b885ea16697b0017201c900fce8428;hp=643d36e5840230e1389bb7c911d79151726d70e2;hpb=a5f00662e9ad7f9d093a417ca05c473939b99108;p=rocksndiamonds.git diff --git a/src/game.c b/src/game.c index 643d36e5..1cbea93f 100644 --- a/src/game.c +++ b/src/game.c @@ -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; }