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)