mirror of https://github.com/OpenRCT2/OpenRCT2.git
Make gDropdownItemsChecked and gDropdownItemsDisabled static
This commit is contained in:
parent
b183d82062
commit
8473a40bc4
|
@ -1207,7 +1207,7 @@ void input_state_widget_pressed(sint32 x, sint32 y, sint32 state, rct_widgetinde
|
||||||
goto dropdown_cleanup;
|
goto dropdown_cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dropdown_index < DROPDOWN_ITEMS_MAX_SIZE && gDropdownItemsDisabled & (1ULL << dropdown_index)) {
|
if (dropdown_index < DROPDOWN_ITEMS_MAX_SIZE && dropdown_is_disabled(dropdown_index)) {
|
||||||
goto dropdown_cleanup;
|
goto dropdown_cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1344,7 +1344,7 @@ void input_state_widget_pressed(sint32 x, sint32 y, sint32 state, rct_widgetinde
|
||||||
window_tooltip_show(colourTooltips[dropdown_index], x, y);
|
window_tooltip_show(colourTooltips[dropdown_index], x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dropdown_index < DROPDOWN_ITEMS_MAX_SIZE && gDropdownItemsDisabled & (1ULL << dropdown_index)) {
|
if (dropdown_index < DROPDOWN_ITEMS_MAX_SIZE && dropdown_is_disabled(dropdown_index)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -52,8 +52,8 @@ bool _dropdown_list_vertically;
|
||||||
sint32 gDropdownNumItems;
|
sint32 gDropdownNumItems;
|
||||||
rct_string_id gDropdownItemsFormat[DROPDOWN_ITEMS_MAX_SIZE];
|
rct_string_id gDropdownItemsFormat[DROPDOWN_ITEMS_MAX_SIZE];
|
||||||
sint64 gDropdownItemsArgs[DROPDOWN_ITEMS_MAX_SIZE];
|
sint64 gDropdownItemsArgs[DROPDOWN_ITEMS_MAX_SIZE];
|
||||||
uint64 gDropdownItemsChecked;
|
static uint64 _dropdownItemsChecked;
|
||||||
uint64 gDropdownItemsDisabled;
|
static uint64 _dropdownItemsDisabled;
|
||||||
bool gDropdownIsColour;
|
bool gDropdownIsColour;
|
||||||
sint32 gDropdownLastColourHover;
|
sint32 gDropdownLastColourHover;
|
||||||
sint32 gDropdownHighlightedIndex;
|
sint32 gDropdownHighlightedIndex;
|
||||||
|
@ -61,29 +61,29 @@ sint32 gDropdownDefaultIndex;
|
||||||
|
|
||||||
bool dropdown_is_checked(sint32 index)
|
bool dropdown_is_checked(sint32 index)
|
||||||
{
|
{
|
||||||
return gDropdownItemsChecked & (1ULL << index);
|
return _dropdownItemsChecked & (1ULL << index);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool dropdown_is_disabled(sint32 index)
|
bool dropdown_is_disabled(sint32 index)
|
||||||
{
|
{
|
||||||
return gDropdownItemsDisabled & (1ULL << index);
|
return _dropdownItemsDisabled & (1ULL << index);
|
||||||
}
|
}
|
||||||
|
|
||||||
void dropdown_set_checked(sint32 index, bool value)
|
void dropdown_set_checked(sint32 index, bool value)
|
||||||
{
|
{
|
||||||
if (value) {
|
if (value) {
|
||||||
gDropdownItemsChecked |= 1ULL << index;
|
_dropdownItemsChecked |= 1ULL << index;
|
||||||
} else {
|
} else {
|
||||||
gDropdownItemsChecked &= ~(1ULL << index);
|
_dropdownItemsChecked &= ~(1ULL << index);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void dropdown_set_disabled(sint32 index, bool value)
|
void dropdown_set_disabled(sint32 index, bool value)
|
||||||
{
|
{
|
||||||
if (value) {
|
if (value) {
|
||||||
gDropdownItemsDisabled |= 1ULL << index;
|
_dropdownItemsDisabled |= 1ULL << index;
|
||||||
} else {
|
} else {
|
||||||
gDropdownItemsDisabled &= ~(1ULL << index);
|
_dropdownItemsDisabled &= ~(1ULL << index);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -208,8 +208,8 @@ void window_dropdown_show_text_custom_width(sint32 x, sint32 y, sint32 extray, u
|
||||||
|
|
||||||
// Input state
|
// Input state
|
||||||
gDropdownHighlightedIndex = -1;
|
gDropdownHighlightedIndex = -1;
|
||||||
gDropdownItemsDisabled = 0;
|
_dropdownItemsDisabled = 0;
|
||||||
gDropdownItemsChecked = 0;
|
_dropdownItemsChecked = 0;
|
||||||
gDropdownIsColour = false;
|
gDropdownIsColour = false;
|
||||||
gDropdownDefaultIndex = -1;
|
gDropdownDefaultIndex = -1;
|
||||||
input_set_state(INPUT_STATE_DROPDOWN_ACTIVE);
|
input_set_state(INPUT_STATE_DROPDOWN_ACTIVE);
|
||||||
|
@ -282,8 +282,8 @@ void window_dropdown_show_image(sint32 x, sint32 y, sint32 extray, uint8 colour,
|
||||||
|
|
||||||
// Input state
|
// Input state
|
||||||
gDropdownHighlightedIndex = -1;
|
gDropdownHighlightedIndex = -1;
|
||||||
gDropdownItemsDisabled = 0;
|
_dropdownItemsDisabled = 0;
|
||||||
gDropdownItemsChecked = 0;
|
_dropdownItemsChecked = 0;
|
||||||
gDropdownIsColour = false;
|
gDropdownIsColour = false;
|
||||||
gDropdownDefaultIndex = -1;
|
gDropdownDefaultIndex = -1;
|
||||||
input_set_state(INPUT_STATE_DROPDOWN_ACTIVE);
|
input_set_state(INPUT_STATE_DROPDOWN_ACTIVE);
|
||||||
|
|
|
@ -36,8 +36,6 @@ extern sint32 gAppropriateImageDropdownItemsPerRow[];
|
||||||
extern sint32 gDropdownNumItems;
|
extern sint32 gDropdownNumItems;
|
||||||
extern rct_string_id gDropdownItemsFormat[DROPDOWN_ITEMS_MAX_SIZE];
|
extern rct_string_id gDropdownItemsFormat[DROPDOWN_ITEMS_MAX_SIZE];
|
||||||
extern sint64 gDropdownItemsArgs[DROPDOWN_ITEMS_MAX_SIZE];
|
extern sint64 gDropdownItemsArgs[DROPDOWN_ITEMS_MAX_SIZE];
|
||||||
extern uint64 gDropdownItemsChecked;
|
|
||||||
extern uint64 gDropdownItemsDisabled;
|
|
||||||
extern bool gDropdownIsColour;
|
extern bool gDropdownIsColour;
|
||||||
extern sint32 gDropdownLastColourHover;
|
extern sint32 gDropdownLastColourHover;
|
||||||
extern sint32 gDropdownHighlightedIndex;
|
extern sint32 gDropdownHighlightedIndex;
|
||||||
|
|
|
@ -901,8 +901,6 @@ void window_editor_object_selection_mousedown(rct_window *w, rct_widgetindex wid
|
||||||
{
|
{
|
||||||
sint32 num_items;
|
sint32 num_items;
|
||||||
|
|
||||||
//widget = &w->widgets[widgetIndex - 1];
|
|
||||||
|
|
||||||
switch (widgetIndex) {
|
switch (widgetIndex) {
|
||||||
case WIDX_FILTER_DROPDOWN:
|
case WIDX_FILTER_DROPDOWN:
|
||||||
|
|
||||||
|
@ -935,7 +933,14 @@ void window_editor_object_selection_mousedown(rct_window *w, rct_widgetindex wid
|
||||||
num_items
|
num_items
|
||||||
);
|
);
|
||||||
|
|
||||||
gDropdownItemsChecked = _filter_flags & 0xF;
|
for (sint32 i = 0; i < 4; i++)
|
||||||
|
{
|
||||||
|
if (_filter_flags & (1 << i))
|
||||||
|
{
|
||||||
|
dropdown_set_checked(i, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!(gScreenFlags & SCREEN_FLAGS_TRACK_MANAGER)) {
|
if (!(gScreenFlags & SCREEN_FLAGS_TRACK_MANAGER)) {
|
||||||
dropdown_set_checked(DDIX_FILTER_SELECTED, _FILTER_SELECTED);
|
dropdown_set_checked(DDIX_FILTER_SELECTED, _FILTER_SELECTED);
|
||||||
dropdown_set_checked(DDIX_FILTER_NONSELECTED, _FILTER_NONSELECTED);
|
dropdown_set_checked(DDIX_FILTER_NONSELECTED, _FILTER_NONSELECTED);
|
||||||
|
|
|
@ -2043,11 +2043,12 @@ static void window_ride_show_view_dropdown(rct_window *w, rct_widget *widget)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set highlighted item
|
// Set highlighted item
|
||||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_ON_TRACK)) {
|
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_ON_TRACK))
|
||||||
sint32 j = 2;
|
{
|
||||||
for (sint32 i = 0; i < ride->num_vehicles; i++) {
|
for (sint32 i = 0; i < ride->num_vehicles; i++)
|
||||||
gDropdownItemsDisabled |= j;
|
{
|
||||||
j <<= 1;
|
// The +1 is to skip 'Overall view'
|
||||||
|
dropdown_set_disabled(i + 1, true);;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3757,7 +3758,7 @@ static void window_ride_maintenance_mousedown(rct_window *w, rct_widgetindex wid
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((ride->lifecycle_flags & RIDE_LIFECYCLE_BREAKDOWN_PENDING) == 0) {
|
if ((ride->lifecycle_flags & RIDE_LIFECYCLE_BREAKDOWN_PENDING) == 0) {
|
||||||
gDropdownItemsDisabled = (1 << 0);
|
dropdown_set_disabled(0, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -4140,7 +4141,7 @@ static void window_ride_colour_mousedown(rct_window *w, rct_widgetindex widgetIn
|
||||||
vehicle_colour vehicleColour;
|
vehicle_colour vehicleColour;
|
||||||
rct_widget *dropdownWidget;
|
rct_widget *dropdownWidget;
|
||||||
rct_ride_entry *rideEntry;
|
rct_ride_entry *rideEntry;
|
||||||
sint32 i, numItems;
|
sint32 i, numItems, checkedIndex;
|
||||||
rct_string_id stringId;
|
rct_string_id stringId;
|
||||||
|
|
||||||
ride = get_ride(w->number);
|
ride = get_ride(w->number);
|
||||||
|
@ -4197,16 +4198,15 @@ static void window_ride_colour_mousedown(rct_window *w, rct_widgetindex widgetIn
|
||||||
dropdown_set_checked(ride->track_colour_supports[colourSchemeIndex], true);
|
dropdown_set_checked(ride->track_colour_supports[colourSchemeIndex], true);
|
||||||
break;
|
break;
|
||||||
case WIDX_ENTRANCE_STYLE_DROPDOWN:
|
case WIDX_ENTRANCE_STYLE_DROPDOWN:
|
||||||
gDropdownItemsChecked = 0;
|
checkedIndex = -1;
|
||||||
for (i = 0; i < countof(window_ride_entrance_style_list); i++) {
|
for (i = 0; i < countof(window_ride_entrance_style_list); i++) {
|
||||||
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL;
|
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL;
|
||||||
gDropdownItemsArgs[i] = RideEntranceDefinitions[window_ride_entrance_style_list[i]].string_id;
|
gDropdownItemsArgs[i] = RideEntranceDefinitions[window_ride_entrance_style_list[i]].string_id;
|
||||||
|
|
||||||
if (ride->entrance_style == window_ride_entrance_style_list[i]) {
|
if (ride->entrance_style == window_ride_entrance_style_list[i]) {
|
||||||
dropdown_set_checked(i, true);
|
checkedIndex = i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
uint64 checked = gDropdownItemsChecked;
|
|
||||||
|
|
||||||
window_dropdown_show_text_custom_width(
|
window_dropdown_show_text_custom_width(
|
||||||
w->x + dropdownWidget->left,
|
w->x + dropdownWidget->left,
|
||||||
|
@ -4219,7 +4219,11 @@ static void window_ride_colour_mousedown(rct_window *w, rct_widgetindex widgetIn
|
||||||
widget->right - dropdownWidget->left
|
widget->right - dropdownWidget->left
|
||||||
);
|
);
|
||||||
|
|
||||||
gDropdownItemsChecked = checked;
|
|
||||||
|
if (checkedIndex != -1)
|
||||||
|
{
|
||||||
|
dropdown_set_checked(checkedIndex, true);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case WIDX_VEHICLE_COLOUR_SCHEME_DROPDOWN:
|
case WIDX_VEHICLE_COLOUR_SCHEME_DROPDOWN:
|
||||||
for (i = 0; i < 3; i++) {
|
for (i = 0; i < 3; i++) {
|
||||||
|
@ -5066,7 +5070,9 @@ static void window_ride_measurements_mousedown(rct_window *w, rct_widgetindex wi
|
||||||
);
|
);
|
||||||
gDropdownDefaultIndex = 0;
|
gDropdownDefaultIndex = 0;
|
||||||
if (gScreenFlags & SCREEN_FLAGS_TRACK_DESIGNER)
|
if (gScreenFlags & SCREEN_FLAGS_TRACK_DESIGNER)
|
||||||
gDropdownItemsDisabled |= 2;
|
{
|
||||||
|
dropdown_set_disabled(1, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -3578,7 +3578,13 @@ static void window_ride_construction_show_special_track_dropdown(rct_window *w,
|
||||||
widget->right - widget->left
|
widget->right - widget->left
|
||||||
);
|
);
|
||||||
|
|
||||||
gDropdownItemsDisabled = _currentDisabledSpecialTrackPieces;
|
for (sint32 i = 0; i < 32; i++)
|
||||||
|
{
|
||||||
|
if (_currentDisabledSpecialTrackPieces & (1 << i))
|
||||||
|
{
|
||||||
|
dropdown_set_disabled(i, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
gDropdownDefaultIndex = defaultIndex;
|
gDropdownDefaultIndex = defaultIndex;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -555,7 +555,7 @@ void window_staff_overview_mousedown(rct_window *w, rct_widgetindex widgetIndex,
|
||||||
|
|
||||||
// Disable clear patrol area if no area is set.
|
// Disable clear patrol area if no area is set.
|
||||||
if (!(gStaffModes[peep->staff_id] & 2)) {
|
if (!(gStaffModes[peep->staff_id] & 2)) {
|
||||||
gDropdownItemsDisabled |= (1ULL << 1);
|
dropdown_set_disabled(1, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1285,7 +1285,7 @@ void window_staff_options_mousedown(rct_window *w, rct_widgetindex widgetIndex,
|
||||||
}
|
}
|
||||||
|
|
||||||
rct_peep* peep = GET_PEEP(w->number);
|
rct_peep* peep = GET_PEEP(w->number);
|
||||||
sint32 itemsChecked = 0;
|
sint32 checkedIndex = -1;
|
||||||
//This will be moved below where Items Checked is when all
|
//This will be moved below where Items Checked is when all
|
||||||
//of dropdown related functions are finished. This prevents
|
//of dropdown related functions are finished. This prevents
|
||||||
//the dropdown from not working on first click.
|
//the dropdown from not working on first click.
|
||||||
|
@ -1293,7 +1293,7 @@ void window_staff_options_mousedown(rct_window *w, rct_widgetindex widgetIndex,
|
||||||
for (sint32 i = 0; i < numCostumes; i++) {
|
for (sint32 i = 0; i < numCostumes; i++) {
|
||||||
uint8 costume = _availableCostumes[i];
|
uint8 costume = _availableCostumes[i];
|
||||||
if (costume == peep->sprite_type) {
|
if (costume == peep->sprite_type) {
|
||||||
itemsChecked = 1 << i;
|
checkedIndex = i;
|
||||||
}
|
}
|
||||||
gDropdownItemsArgs[i] = StaffCostumeNames[costume];
|
gDropdownItemsArgs[i] = StaffCostumeNames[costume];
|
||||||
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL;
|
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL;
|
||||||
|
@ -1309,7 +1309,10 @@ void window_staff_options_mousedown(rct_window *w, rct_widgetindex widgetIndex,
|
||||||
window_dropdown_show_text_custom_width(x, y, extray, w->colours[1], 0, 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.
|
// See above note.
|
||||||
gDropdownItemsChecked = itemsChecked;
|
if (checkedIndex != -1)
|
||||||
|
{
|
||||||
|
dropdown_set_checked(checkedIndex, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue