X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame.c;h=d1bf2d7d0f2a334760196aab48140344b55d1ba2;hb=7b969bbc735e5a6754610952d1f815c5d3886611;hp=dc1e2442737dd525a7ab93e52a29617d35163fa5;hpb=8517e5eb6d3a4d17920a6705546d14593d3158e2;p=rocksndiamonds.git diff --git a/src/game.c b/src/game.c index dc1e2442..d1bf2d7d 100644 --- a/src/game.c +++ b/src/game.c @@ -3870,6 +3870,8 @@ void InitGame(void) game.LevelSolved_CountingScore = 0; game.LevelSolved_CountingHealth = 0; + game.RestartGameRequested = FALSE; + game.panel.active = TRUE; game.no_level_time_limit = (level.time == 0); @@ -4549,9 +4551,7 @@ void InitGame(void) } game.restart_level = FALSE; - game.request_active = FALSE; - game.request_active_or_moving = FALSE; if (level.game_engine_type == GAME_ENGINE_TYPE_MM) InitGameActions_MM(); @@ -15804,10 +15804,14 @@ boolean CheckRestartGame(void) return FALSE; } - // do not handle game over if request dialog is already active + // do not ask to play again if request dialog is already active if (game.request_active) return FALSE; + // do not ask to play again if request dialog already handled + if (game.RestartGameRequested) + return FALSE; + // do not ask to play again if game was never actually played if (!game.GamePlayed) return FALSE; @@ -15816,6 +15820,8 @@ boolean CheckRestartGame(void) if (!setup.ask_on_game_over) return FALSE; + game.RestartGameRequested = TRUE; + RequestRestartGame(); return TRUE;