Fix dropdown custom height code. Use flags for filters.

Note dropdown custom height code is not used in any function at present.
This commit is contained in:
duncanspumpkin 2017-02-16 18:35:59 +00:00
parent cab367aa24
commit 260a6200b9
23 changed files with 50 additions and 10 deletions

View File

@ -247,6 +247,7 @@ static void window_banner_mousedown(sint32 widgetIndex, rct_window*w, rct_widget
widget->top + w->y,
widget->bottom - widget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
13,
widget->right - widget->left - 3);

View File

@ -538,6 +538,7 @@ static void window_cheats_misc_mousedown(int widgetIndex, rct_window *w, rct_wid
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
6,
dropdownWidget->right - dropdownWidget->left - 3

View File

@ -163,6 +163,7 @@ static void custom_currency_window_mousedown(sint32 widgetIndex, rct_window *w,
w->y + widget->top,
widget->bottom - widget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
2,
widget->right - widget->left - 3

View File

@ -140,7 +140,7 @@ void window_dropdown_show_text(sint32 x, sint32 y, sint32 extray, uint8 colour,
max_string_width = max(string_width, max_string_width);
}
window_dropdown_show_text_custom_width(x, y, extray, colour, flags, num_items, max_string_width + 3);
window_dropdown_show_text_custom_width(x, y, extray, colour, 0, flags, num_items, max_string_width + 3);
}
/**
@ -153,8 +153,9 @@ void window_dropdown_show_text(sint32 x, sint32 y, sint32 extray, uint8 colour,
* @param flags (bh)
* @param num_items (bx)
* @param colour (al)
* @param custom_height (ah) requires flag set as well
*/
void window_dropdown_show_text_custom_width(sint32 x, sint32 y, sint32 extray, uint8 colour, uint8 flags, size_t num_items, sint32 width)
void window_dropdown_show_text_custom_width(sint32 x, sint32 y, sint32 extray, uint8 colour, uint8 custom_height, uint8 flags, size_t num_items, sint32 width)
{
rct_window* w;
@ -166,8 +167,8 @@ void window_dropdown_show_text_custom_width(sint32 x, sint32 y, sint32 extray, u
_dropdown_num_columns = 1;
_dropdown_item_width = width;
_dropdown_item_height = 10;
if (flags & 0x40)
_dropdown_item_height = flags & 0x3F;
if (flags & DROPDOWN_FLAG_CUSTOM_HEIGHT)
_dropdown_item_height = custom_height;
// Set the widgets
gDropdownNumItems = (sint32)num_items;

View File

@ -24,6 +24,7 @@
enum
{
DROPDOWN_FLAG_CUSTOM_HEIGHT = (1 << 6),
DROPDOWN_FLAG_STAY_OPEN = (1 << 7)
};
@ -45,7 +46,7 @@ void dropdown_set_checked(sint32 index, bool value);
void dropdown_set_disabled(sint32 index, bool value);
void window_dropdown_show_text(sint32 x, sint32 y, sint32 extray, uint8 colour, uint8 flags, size_t num_items);
void window_dropdown_show_text_custom_width(sint32 x, sint32 y, sint32 extray, uint8 colour, uint8 flags, size_t num_items, sint32 width);
void window_dropdown_show_text_custom_width(sint32 x, sint32 y, sint32 extray, uint8 colour, uint8 custom_height, uint8 flags, size_t num_items, sint32 width);
void window_dropdown_show_image(sint32 x, sint32 y, sint32 extray, uint8 colour, uint8 flags, sint32 numItems, sint32 itemWidth, sint32 itemHeight, sint32 numColumns);
void window_dropdown_close();
sint32 dropdown_index_from_point(sint32 x, sint32 y, rct_window* w);

View File

@ -58,7 +58,8 @@ enum {
FILTER_SELECTED = (1 << 12),
FILTER_NONSELECTED = (1 << 13),
FILTER_ALL = 0x7EF,
FILTER_RIDES = FILTER_RIDE_TRANSPORT | FILTER_RIDE_GENTLE | FILTER_RIDE_COASTER | FILTER_RIDE_THRILL | FILTER_RIDE_WATER | FILTER_RIDE_STALL,
FILTER_ALL = FILTER_RIDES | FILTER_RCT2 | FILTER_WW | FILTER_TT | FILTER_CUSTOM | FILTER_SELECTED | FILTER_NONSELECTED,
} FILTER_FLAGS;
uint32 _filter_flags;
@ -808,7 +809,7 @@ static void window_editor_object_selection_mouseup(rct_window *w, sint32 widgetI
window_editor_object_set_page(w, widgetIndex - WIDX_TAB_1);
break;
case WIDX_FILTER_RIDE_TAB_ALL:
_filter_flags |= 0x7E0;
_filter_flags |= FILTER_RIDES;
gConfigInterface.object_selection_filter_flags = _filter_flags;
config_save_default();
@ -826,7 +827,7 @@ static void window_editor_object_selection_mouseup(rct_window *w, sint32 widgetI
case WIDX_FILTER_RIDE_TAB_THRILL:
case WIDX_FILTER_RIDE_TAB_WATER:
case WIDX_FILTER_RIDE_TAB_STALL:
_filter_flags &= ~0x7E0;
_filter_flags &= ~FILTER_RIDES;
_filter_flags |= (1 << (widgetIndex - WIDX_FILTER_RIDE_TAB_TRANSPORT + 5));
gConfigInterface.object_selection_filter_flags = _filter_flags;
config_save_default();
@ -1194,7 +1195,7 @@ static void window_editor_object_selection_invalidate(rct_window *w)
(1 << WIDX_FILTER_RIDE_TAB_WATER) | (1 << WIDX_FILTER_RIDE_TAB_STALL);
for (sint32 i = 0; i < 7; i++)
w->pressed_widgets &= ~(1 << (WIDX_FILTER_RIDE_TAB_ALL + i));
if ((_filter_flags & 0x7E0) == 0x7E0)
if ((_filter_flags & FILTER_RIDES) == FILTER_RIDES)
w->pressed_widgets |= (1 << WIDX_FILTER_RIDE_TAB_ALL);
else {
for (sint32 i = 0; i < 6; i++) {

View File

@ -503,6 +503,7 @@ static void window_editor_objective_options_show_objective_dropdown(rct_window *
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
numItems,
dropdownWidget->right - dropdownWidget->left - 3
@ -533,6 +534,7 @@ static void window_editor_objective_options_show_climate_dropdown(rct_window *w)
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
4,
dropdownWidget->right - dropdownWidget->left - 3
@ -556,6 +558,7 @@ static void window_editor_objective_options_show_category_dropdown(rct_window *w
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
5,
dropdownWidget->right - dropdownWidget->left - 3

View File

@ -1025,6 +1025,7 @@ static void window_editor_scenario_options_park_mousedown(sint32 widgetIndex, rc
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top - 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
2,
dropdownWidget->right - dropdownWidget->left - 3

View File

@ -1298,6 +1298,7 @@ static void window_finances_research_mousedown(sint32 widgetIndex, rct_window *w
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
4,
dropdownWidget->right - dropdownWidget->left - 3

View File

@ -378,6 +378,7 @@ static void window_guest_list_mousedown(sint32 widgetIndex, rct_window*w, rct_wi
w->y + widget->top,
widget->bottom - widget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
_window_guest_list_num_pages,
widget->right - widget->left - 3
@ -402,6 +403,7 @@ static void window_guest_list_mousedown(sint32 widgetIndex, rct_window*w, rct_wi
w->y + widget->top,
widget->bottom - widget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
2,
widget->right - widget->left - 3

View File

@ -353,6 +353,7 @@ static void window_multiplayer_groups_show_group_dropdown(rct_window *w, rct_wid
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
0,
numItems,
widget->right - dropdownWidget->left
);

View File

@ -261,6 +261,7 @@ static void window_new_campaign_mousedown(sint32 widgetIndex, rct_window *w, rct
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
numItems,
dropdownWidget->right - dropdownWidget->left - 3
@ -283,6 +284,7 @@ static void window_new_campaign_mousedown(sint32 widgetIndex, rct_window *w, rct
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
numItems,
dropdownWidget->right - dropdownWidget->left - 3

View File

@ -1096,6 +1096,7 @@ static void window_options_mousedown(sint32 widgetIndex, rct_window*w, rct_widge
w->y + widget->top,
widget->bottom - widget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
num_items,
widget->right - widget->left - 3
@ -1118,6 +1119,7 @@ static void window_options_mousedown(sint32 widgetIndex, rct_window*w, rct_widge
w->y + widget->top,
widget->bottom - widget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
num_items,
widget->right - widget->left - 3
@ -1918,6 +1920,7 @@ static void window_options_show_dropdown(rct_window *w, rct_widget *widget, sint
w->y + widget->top,
widget->bottom - widget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
num_items,
widget->right - widget->left - 3

View File

@ -251,6 +251,7 @@ static void window_player_overview_show_group_dropdown(rct_window *w, rct_widget
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
0,
numItems,
widget->right - dropdownWidget->left
);

View File

@ -479,6 +479,7 @@ static void window_research_funding_mousedown(sint32 widgetIndex, rct_window *w,
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
4,
dropdownWidget->right - dropdownWidget->left - 3

View File

@ -2069,6 +2069,7 @@ static void window_ride_show_view_dropdown(rct_window *w, rct_widget *widget)
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
0,
numItems,
widget->right - dropdownWidget->left
);
@ -2752,6 +2753,7 @@ static void window_ride_vehicle_mousedown(sint32 widgetIndex, rct_window *w, rct
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
numItems,
widget->right - dropdownWidget->left
@ -3177,6 +3179,7 @@ static void window_ride_mode_dropdown(rct_window *w, rct_widget *widget)
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
numAvailableModes,
widget->right - dropdownWidget->left
@ -3211,6 +3214,7 @@ static void window_ride_load_dropdown(rct_window *w, rct_widget *widget)
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
5,
widget->right - dropdownWidget->left
@ -3739,6 +3743,7 @@ static void window_ride_maintenance_mousedown(sint32 widgetIndex, rct_window *w,
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
7,
widget->right - dropdownWidget->left
@ -4193,6 +4198,7 @@ static void window_ride_colour_mousedown(sint32 widgetIndex, rct_window *w, rct_
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
4,
widget->right - dropdownWidget->left
@ -4220,6 +4226,7 @@ static void window_ride_colour_mousedown(sint32 widgetIndex, rct_window *w, rct_
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
4,
widget->right - dropdownWidget->left
@ -4244,6 +4251,7 @@ static void window_ride_colour_mousedown(sint32 widgetIndex, rct_window *w, rct_
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
countof(window_ride_entrance_style_list),
widget->right - dropdownWidget->left
@ -4262,6 +4270,7 @@ static void window_ride_colour_mousedown(sint32 widgetIndex, rct_window *w, rct_
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
rideEntry->max_cars_in_train > 1 ? 3 : 2,
widget->right - dropdownWidget->left
@ -4285,6 +4294,7 @@ static void window_ride_colour_mousedown(sint32 widgetIndex, rct_window *w, rct_
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
numItems,
widget->right - dropdownWidget->left
@ -4831,6 +4841,7 @@ static void window_ride_music_mousedown(sint32 widgetIndex, rct_window *w, rct_w
w->y + dropdownWidget->top,
dropdownWidget->bottom - dropdownWidget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
numItems,
widget->right - dropdownWidget->left

View File

@ -3524,6 +3524,7 @@ static void window_ride_construction_show_special_track_dropdown(rct_window *w,
widget->bottom - widget->top + 1,
w->colours[1],
0,
0,
_numCurrentPossibleRideConfigurations,
widget->right - widget->left
);

View File

@ -325,6 +325,7 @@ static void window_ride_list_mousedown(sint32 widgetIndex, rct_window*w, rct_wid
w->y + widget->top,
widget->bottom - widget->top,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
numItems,
widget->right - widget->left - 3

View File

@ -1318,7 +1318,7 @@ void window_staff_options_mousedown(sint32 widgetIndex, rct_window* w, rct_widge
sint32 y = widget->top + w->y;
sint32 extray = widget->bottom - widget->top + 1;
sint32 width = widget->right - widget->left - 3;
window_dropdown_show_text_custom_width(x, y, extray, w->colours[1], DROPDOWN_FLAG_STAY_OPEN, numCostumes, width);
window_dropdown_show_text_custom_width(x, y, extray, w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, numCostumes, width);
// See above note.
gDropdownItemsChecked = itemsChecked;

View File

@ -500,6 +500,7 @@ static void window_themes_mousedown(sint32 widgetIndex, rct_window* w, rct_widge
w->y + widget->top,
widget->bottom - widget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
num_items,
widget->right - widget->left - 3

View File

@ -1165,6 +1165,7 @@ static void window_tile_inspector_mousedown(sint32 widgetIndex, rct_window *w, r
w->y + widget->top,
widget->bottom - widget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
3,
widget->right - widget->left - 3

View File

@ -319,6 +319,7 @@ static void window_title_command_editor_mousedown(sint32 widgetIndex, rct_window
w->y + widget->top,
widget->bottom - widget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
numItems,
widget->right - widget->left - 3);
@ -339,6 +340,7 @@ static void window_title_command_editor_mousedown(sint32 widgetIndex, rct_window
w->y + widget->top,
widget->bottom - widget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
numItems,
widget->right - widget->left - 3);
@ -356,6 +358,7 @@ static void window_title_command_editor_mousedown(sint32 widgetIndex, rct_window
w->y + widget->top,
widget->bottom - widget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
numItems,
widget->right - widget->left - 3);

View File

@ -518,6 +518,7 @@ static void window_title_editor_mousedown(sint32 widgetIndex, rct_window* w, rct
w->y + widget->top,
widget->bottom - widget->top + 1,
w->colours[1],
0,
DROPDOWN_FLAG_STAY_OPEN,
numItems,
widget->right - widget->left - 3);