added setup option to ask to play again after game is over but not solved
[rocksndiamonds.git] / src / screens.c
index 851e0a55277d93d1b744a55bd5cb284bbdd7b352..3c12d6b5df34b14d528fd4d61f8c7a828e64bfd7 100644 (file)
@@ -4662,6 +4662,7 @@ void HandleHallOfFame(int mx, int my, int dx, int dy, int button)
 
     if (game_status_last_screen == GAME_MODE_PLAYING &&
        setup.auto_play_next_level && setup.increment_levels &&
+       level_nr < leveldir_current->last_level &&
        !network_playing)
     {
       StartGameActions(network.enabled, setup.autorecord, level.random_seed);
@@ -6163,6 +6164,7 @@ static struct TokenInfo setup_info_game[] =
   { TYPE_SWITCH,       &setup.increment_levels,"Increment Solved Levels:" },
   { TYPE_SWITCH,       &setup.auto_play_next_level,"Auto-play Next Level:" },
   { TYPE_SWITCH,       &setup.skip_scores_after_game,"Skip Scores After Game:" },
+  { TYPE_YES_NO,       &setup.ask_on_game_over, "Ask on Game Over:"    },
   { TYPE_SWITCH,       &setup.autorecord,      "Auto-Record Tapes:"    },
   { TYPE_ENTER_LIST,   execSetupChooseGameSpeed, "Game Speed:"         },
   { TYPE_STRING,       &game_speed_text,       ""                      },
@@ -8210,9 +8212,16 @@ void HandleSetupScreen(int mx, int my, int dx, int dy, int button)
 
 void HandleGameActions(void)
 {
+  if (setup.ask_on_game_over)
+    CheckGameOver();
+
   if (game.restart_game_message != NULL)
+  {
     RequestRestartGame(game.restart_game_message);
 
+    return;
+  }
+
   if (game_status != GAME_MODE_PLAYING)
     return;