X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fscreens.c;h=3ad1096be0decb5fb111dbe7e467f48d19dc1da4;hb=3e57e03f559affcfaee4f975afab011cfd598d5c;hp=567ffa8b59a549c3ffd890dff04857e22aa3f5a8;hpb=9d8d0a1e62cde9c560a65d7235e7285a1df04d53;p=rocksndiamonds.git diff --git a/src/screens.c b/src/screens.c index 567ffa8b..3ad1096b 100644 --- a/src/screens.c +++ b/src/screens.c @@ -133,6 +133,7 @@ #define TEXT_NEXT_PAGE "Press any key or button for next page" #define TEXT_INFO_MENU "Press any key or button for info menu" +#define TEXT_MAIN_MENU "Press any key or button for main menu" // for input setup functions #define SETUPINPUT_SCREEN_POS_START 0 @@ -318,6 +319,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 +2540,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 +3861,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) @@ -4486,7 +4518,7 @@ static void drawChooseTreeScreen_Scores_NotAvailable(void) 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; @@ -7206,7 +7238,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, "" },