// other screen text constants
#define STR_CHOOSE_TREE_EDIT "Edit"
#define MENU_CHOOSE_TREE_FONT(x) (FONT_TEXT_1 + (x))
+#define MENU_CHOOSE_TREE_COLOR(ti, a) TREE_COLOR(ti, a)
// for input setup functions
#define SETUPINPUT_SCREEN_POS_START 0
int entry_pos = first_entry + y;
TreeInfo *node_first = getTreeInfoFirstGroupEntry(ti);
TreeInfo *node = getTreeInfoFromPos(node_first, entry_pos);
- int node_color = (node->color == FC_YELLOW ? FC_GREEN : node->color);
- int color = (active ? FC_YELLOW : node_color);
- int font_nr = MENU_CHOOSE_TREE_FONT(color);
+ int font_color = MENU_CHOOSE_TREE_COLOR(node, active);
+ int font_nr = MENU_CHOOSE_TREE_FONT(font_color);
int font_xoffset = getFontBitmapInfo(font_nr)->draw_xoffset;
int xpos = MENU_SCREEN_START_XPOS;
int ypos = MENU_SCREEN_START_YPOS + y;
MarkTileDirty(x, 1);
}
+static void drawChooseTreeCursorAndText(int y, boolean active, TreeInfo *ti)
+{
+ drawChooseTreeCursor(y, active);
+ drawChooseTreeText(y, active, ti);
+}
+
static void HandleChooseTree(int mx, int my, int dx, int dy, int button,
TreeInfo **ti_ptr)
{
drawChooseTreeList(ti->cl_first, num_page_entries, ti);
drawChooseTreeInfo(ti->cl_first + ti->cl_cursor, ti);
- drawChooseTreeCursor(ti->cl_cursor, TRUE);
+ drawChooseTreeCursorAndText(ti->cl_cursor, TRUE, ti);
return;
}
{
drawChooseTreeList(ti->cl_first, num_page_entries, ti);
drawChooseTreeInfo(ti->cl_first + ti->cl_cursor, ti);
- drawChooseTreeCursor(ti->cl_cursor, TRUE);
+ drawChooseTreeCursorAndText(ti->cl_cursor, TRUE, ti);
AdjustChooseTreeScrollbar(SCREEN_CTRL_ID_SCROLL_VERTICAL,
ti->cl_first, ti);
{
PlaySound(SND_MENU_ITEM_ACTIVATING);
- drawChooseTreeCursor(ti->cl_cursor, FALSE);
- drawChooseTreeCursor(y, TRUE);
+ drawChooseTreeCursorAndText(ti->cl_cursor, FALSE, ti);
+ drawChooseTreeCursorAndText(y, TRUE, ti);
drawChooseTreeInfo(ti->cl_first + y, ti);
ti->cl_cursor = y;