X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fscreens.c;h=6f18bf310babc9be7551832c40abfde657ddb345;hb=84f1052a556ca679cd09b417a16fc136d455ebf2;hp=a5b808a1969462bac0a1bc7b1aefd001a1b49cb3;hpb=274876d86fc0cb9af7027df86bf4ac46020c1501;p=rocksndiamonds.git diff --git a/src/screens.c b/src/screens.c index a5b808a1..6f18bf31 100644 --- a/src/screens.c +++ b/src/screens.c @@ -4832,6 +4832,9 @@ static void DrawChooseTree(TreeInfo **ti_ptr) FreeScreenGadgets(); CreateScreenGadgets(); + if (game_status != game_status_last_screen) + FadeMenuSoundsAndMusic(); + FadeOut(fade_mask); // needed if different viewport properties defined for choosing level (set) @@ -4853,6 +4856,9 @@ static void DrawChooseTree(TreeInfo **ti_ptr) DrawMaskedBorder(fade_mask); + if (game_status != game_status_last_screen) + PlayMenuSoundsAndMusic(); + FadeIn(fade_mask); } @@ -4966,6 +4972,18 @@ static void drawChooseTreeCursorAndText(int y, boolean active, TreeInfo *ti) drawChooseTreeText(y, active, ti); } +static void drawChooseTreeScreen(TreeInfo *ti) +{ + int num_entries = numTreeInfoInGroup(ti); + int num_page_entries = MIN(num_entries, NUM_MENU_ENTRIES_ON_SCREEN); + + drawChooseTreeList(ti->cl_first, num_page_entries, ti); + drawChooseTreeInfo(ti->cl_first + ti->cl_cursor, ti); + drawChooseTreeCursorAndText(ti->cl_cursor, TRUE, ti); + + AdjustChooseTreeScrollbar(SCREEN_CTRL_ID_SCROLL_VERTICAL, ti->cl_first, ti); +} + static void HandleChooseTree(int mx, int my, int dx, int dy, int button, TreeInfo **ti_ptr) { @@ -5007,13 +5025,8 @@ static void HandleChooseTree(int mx, int my, int dx, int dy, int button, if (position_set_by_scrollbar) ti->cl_first = dy; - else - AdjustChooseTreeScrollbar(SCREEN_CTRL_ID_SCROLL_VERTICAL, - ti->cl_first, ti); - drawChooseTreeList(ti->cl_first, num_page_entries, ti); - drawChooseTreeInfo(ti->cl_first + ti->cl_cursor, ti); - drawChooseTreeCursorAndText(ti->cl_cursor, TRUE, ti); + drawChooseTreeScreen(ti); return; } @@ -5121,14 +5134,7 @@ static void HandleChooseTree(int mx, int my, int dx, int dy, int button, } if (redraw) - { - drawChooseTreeList(ti->cl_first, num_page_entries, ti); - drawChooseTreeInfo(ti->cl_first + ti->cl_cursor, ti); - drawChooseTreeCursorAndText(ti->cl_cursor, TRUE, ti); - - AdjustChooseTreeScrollbar(SCREEN_CTRL_ID_SCROLL_VERTICAL, - ti->cl_first, ti); - } + drawChooseTreeScreen(ti); return; } @@ -5360,8 +5366,6 @@ void DrawChoosePlayerName(void) { int i; - FadeMenuSoundsAndMusic(); - if (player_name != NULL) { freeTreeInfo(player_name); @@ -5401,8 +5405,6 @@ void DrawChoosePlayerName(void) player_name_current = player_name; DrawChooseTree(&player_name_current); - - PlayMenuSoundsAndMusic(); } void HandleChoosePlayerName(int mx, int my, int dx, int dy, int button) @@ -5412,11 +5414,7 @@ void HandleChoosePlayerName(int mx, int my, int dx, int dy, int button) void DrawChooseLevelSet(void) { - FadeMenuSoundsAndMusic(); - DrawChooseTree(&leveldir_current); - - PlayMenuSoundsAndMusic(); } void HandleChooseLevelSet(int mx, int my, int dx, int dy, int button) @@ -5428,8 +5426,6 @@ void DrawChooseLevelNr(void) { int i; - FadeMenuSoundsAndMusic(); - if (level_number != NULL) { freeTreeInfo(level_number); @@ -5475,8 +5471,6 @@ void DrawChooseLevelNr(void) level_number_current = level_number; DrawChooseTree(&level_number_current); - - PlayMenuSoundsAndMusic(); } void HandleChooseLevelNr(int mx, int my, int dx, int dy, int button) @@ -7311,6 +7305,7 @@ static struct TokenInfo setup_info_game[] = { 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.auto_pause_on_start, "Start Game in Pause Mode:" }, { TYPE_ENTER_LIST, execSetupChooseGameSpeed, "Game Speed:" }, { TYPE_STRING, &game_speed_text, "" }, { TYPE_SWITCH, &setup.game_speed_extended, "Game Speed Extended List:" }, @@ -7558,6 +7553,10 @@ static struct TokenInfo setup_info_shortcuts_1[] = { TYPE_KEY, &setup.shortcut.save_game, "" }, { TYPE_KEYTEXT, NULL, "Quick Load Game from Tape:", }, { TYPE_KEY, &setup.shortcut.load_game, "" }, + { TYPE_KEYTEXT, NULL, "Restart Game:", }, + { TYPE_KEY, &setup.shortcut.restart_game, "" }, + { TYPE_KEYTEXT, NULL, "Replay & Pause Before End:", }, + { TYPE_KEY, &setup.shortcut.pause_before_end, "" }, { TYPE_KEYTEXT, NULL, "Start Game & Toggle Pause:", }, { TYPE_KEY, &setup.shortcut.toggle_pause, "" }, { TYPE_EMPTY, NULL, "" },