FreeScreenGadgets();
CreateScreenGadgets();
+ if (game_status != game_status_last_screen)
+ FadeMenuSoundsAndMusic();
+
FadeOut(fade_mask);
// needed if different viewport properties defined for choosing level (set)
DrawMaskedBorder(fade_mask);
+ if (game_status != game_status_last_screen)
+ PlayMenuSoundsAndMusic();
+
FadeIn(fade_mask);
}
+static int getChooseTreeFont(TreeInfo *node, boolean active)
+{
+ int font_color = MENU_CHOOSE_TREE_COLOR(node, active);
+ int font_nr = MENU_CHOOSE_TREE_FONT(font_color);
+
+ return font_nr;
+}
+
static void drawChooseTreeText(int y, boolean active, TreeInfo *ti)
{
int num_entries = numTreeInfoInGroup(ti);
int entry_pos = first_entry + y;
TreeInfo *node_first = getTreeInfoFirstGroupEntry(ti);
TreeInfo *node = getTreeInfoFromPos(node_first, entry_pos);
- int font_color = MENU_CHOOSE_TREE_COLOR(node, active);
- int font_nr = MENU_CHOOSE_TREE_FONT(font_color);
+ int font_nr = getChooseTreeFont(node, active);
int font_xoffset = getFontBitmapInfo(font_nr)->draw_xoffset;
int xpos = MENU_SCREEN_START_XPOS;
int ypos = MENU_SCREEN_START_YPOS + y;
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)
{
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;
}
}
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;
}
{
int i;
- FadeMenuSoundsAndMusic();
-
if (player_name != NULL)
{
freeTreeInfo(player_name);
player_name_current = player_name;
DrawChooseTree(&player_name_current);
-
- PlayMenuSoundsAndMusic();
}
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)
{
int i;
- FadeMenuSoundsAndMusic();
-
if (level_number != NULL)
{
freeTreeInfo(level_number);
level_number_current = level_number;
DrawChooseTree(&level_number_current);
-
- PlayMenuSoundsAndMusic();
}
void HandleChooseLevelNr(int mx, int my, int dx, int dy, int button)
{ 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:" },
{ 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, "" },