minor code cleanup
[rocksndiamonds.git] / src / screens.c
index 567ffa8b59a549c3ffd890dff04857e22aa3f5a8..c0af8083c7de452da8341a30487585ec67f5788e 100644 (file)
@@ -318,6 +318,8 @@ static struct GadgetInfo *screen_gadget[NUM_SCREEN_GADGETS];
 static int info_mode = INFO_MODE_MAIN;
 static int setup_mode = SETUP_MODE_MAIN;
 
+static boolean info_screens_from_main = FALSE;
+
 static TreeInfo *window_sizes = NULL;
 static TreeInfo *window_size_current = NULL;
 
@@ -2537,6 +2539,18 @@ static void DrawInfoScreen_Main(void)
   int fade_mask = REDRAW_FIELD;
   int i;
 
+  // (needed after displaying info sub-screens directly from main menu)
+  if (info_screens_from_main)
+  {
+    info_screens_from_main = FALSE;
+
+    SetGameStatus(GAME_MODE_MAIN);
+
+    DrawMainMenu();
+
+    return;
+  }
+
   if (redraw_mask & REDRAW_ALL)
     fade_mask = REDRAW_ALL;
 
@@ -3846,6 +3860,23 @@ static void DrawInfoScreen(void)
     PlayMenuSoundsAndMusic();
 }
 
+void DrawInfoScreen_FromMainMenu(int nr)
+{
+  if (nr < INFO_MODE_MAIN || nr >= MAX_INFO_MODES)
+    return;
+
+  CloseDoor(DOOR_CLOSE_2);
+
+  SetGameStatus(GAME_MODE_INFO);
+
+  info_mode = nr;
+  info_screens_from_main = TRUE;
+
+  FadeSetEnterScreen();
+
+  DrawInfoScreen();
+}
+
 void HandleInfoScreen(int mx, int my, int dx, int dy, int button)
 {
   if (info_mode == INFO_MODE_TITLE)
@@ -7206,7 +7237,8 @@ static struct TokenInfo setup_info_game[] =
   { TYPE_YES_NO,       &setup.ask_on_game_over, "Ask on Game Over:"    },
   { TYPE_YES_NO,       &setup.ask_on_quit_game, "Ask on Quit Game:"    },
   { TYPE_YES_NO,       &setup.ask_on_quit_program, "Ask on Quit Program:" },
-  { TYPE_SWITCH,       &setup.autorecord,      "Auto-Record Tapes:"    },
+  { TYPE_SWITCH,       &setup.autorecord,      "Auto-Record When Playing:" },
+  { TYPE_SWITCH,       &setup.autorecord_after_replay, "Auto-Record After Replay:" },
   { TYPE_SWITCH,       &setup.auto_pause_on_start, "Start Game in Pause Mode:" },
   { TYPE_ENTER_LIST,   execSetupChooseGameSpeed, "Game Speed:"         },
   { TYPE_STRING,       &game_speed_text,       ""                      },