#define MENU_CHOOSE_TREE_FONT(x) (FONT_TEXT_1 + (x))
#define MENU_CHOOSE_TREE_COLOR(ti, a) TREE_COLOR(ti, a)
-#define TEXT_NEXT_PAGE "Press any key or button for next page"
+#define TEXT_MAIN_MENU "Press any key or button for main menu"
#define TEXT_INFO_MENU "Press any key or button for info menu"
+#define TEXT_NEXT_PAGE "Press any key or button for next page"
+#define TEXT_NEXT_MENU (info_screens_from_main ? \
+ TEXT_MAIN_MENU : TEXT_INFO_MENU)
// for input setup functions
#define SETUPINPUT_SCREEN_POS_START 0
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;
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;
DrawTextSCentered(ystart1, font_title, text_title);
DrawTextSCentered(ystart2, font_error, text_error);
- DrawTextSCentered(ybottom, font_foot, TEXT_INFO_MENU);
+ DrawTextSCentered(ybottom, font_foot, TEXT_NEXT_MENU);
FadeIn(REDRAW_FIELD);
}
DrawHeadline();
DrawTextSCentered(ystart, font_title, "No music info for this level set.");
- DrawTextSCentered(ybottom, font_foot, TEXT_INFO_MENU);
+ DrawTextSCentered(ybottom, font_foot, TEXT_NEXT_MENU);
return;
}
DrawTextF(xstart2, ystart, font_text, "%s", setup.system.sdl_audiodriver);
DrawTextF(xstart3, ystart, font_text, "%s", driver_name);
- DrawTextSCentered(ybottom, font_foot, TEXT_INFO_MENU);
+ DrawTextSCentered(ybottom, font_foot, TEXT_NEXT_MENU);
FadeIn(REDRAW_FIELD);
}
}
boolean last_screen = (screen_nr == num_screens - 1);
- char *text_foot = (last_screen ? TEXT_INFO_MENU : TEXT_NEXT_PAGE);
+ char *text_foot = (last_screen ? TEXT_NEXT_MENU : TEXT_NEXT_PAGE);
DrawTextSCentered(ybottom, font_foot, text_foot);
}
DrawHeadline();
DrawTextSCentered(ystart, font_title, text_no_info);
- DrawTextSCentered(ybottom, font_foot, TEXT_INFO_MENU);
+ DrawTextSCentered(ybottom, font_foot, TEXT_NEXT_MENU);
return;
}
PlayMenuSoundsAndMusic();
}
+void DrawInfoScreen_FromMainMenu(int nr)
+{
+ int fade_mask = REDRAW_FIELD;
+
+ 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;
+
+ if (redraw_mask & REDRAW_ALL)
+ fade_mask = REDRAW_ALL;
+
+ if (CheckFadeAll())
+ fade_mask = REDRAW_ALL;
+
+ UnmapAllGadgets();
+ FadeMenuSoundsAndMusic();
+
+ FadeSetEnterScreen();
+
+ FadeOut(fade_mask);
+
+ FadeSkipNextFadeOut();
+
+ // needed if different viewport properties defined for info screen
+ ChangeViewportPropertiesIfNeeded();
+
+ SetMainBackgroundImage(IMG_BACKGROUND_INFO);
+
+ DrawInfoScreen();
+}
+
void HandleInfoScreen(int mx, int my, int dx, int dy, int button)
{
if (info_mode == INFO_MODE_TITLE)
char *text_info = "HighScores of Level %d";
char *text_title = "Score information:";
char *text_error = "No scores for this level.";
- char *text_foot = "Press any key or button for main menu";
+ char *text_foot = TEXT_MAIN_MENU;
int font_info = FONT_TITLE_2;
int font_title = FONT_INITIAL_3;
int font_error = FONT_INITIAL_4;
{ 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, "" },