1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-04 13:42:55 +01:00

Raise max size of dropdowns to 512 items

This commit is contained in:
Gymnasiast
2020-03-09 12:22:29 +01:00
parent 416dc22f35
commit ceec430ae1
3 changed files with 11 additions and 11 deletions

View File

@@ -12,10 +12,10 @@
#include <openrct2-ui/interface/Window.h>
#include <openrct2/common.h>
#define DROPDOWN_SEPARATOR 0
#define DROPDOWN_FORMAT_COLOUR_PICKER 0xFFFE
#define DROPDOWN_FORMAT_LAND_PICKER 0xFFFF
#define DROPDOWN_ITEMS_MAX_SIZE 128
constexpr const rct_string_id DROPDOWN_SEPARATOR = 0;
constexpr const rct_string_id DROPDOWN_FORMAT_COLOUR_PICKER = 0xFFFE;
constexpr const rct_string_id DROPDOWN_FORMAT_LAND_PICKER = 0xFFFF;
constexpr const int32_t DROPDOWN_ITEMS_MAX_SIZE = 512;
enum
{

View File

@@ -45,8 +45,8 @@ static bool _dropdown_list_vertically;
int32_t gDropdownNumItems;
rct_string_id gDropdownItemsFormat[DROPDOWN_ITEMS_MAX_SIZE];
int64_t gDropdownItemsArgs[DROPDOWN_ITEMS_MAX_SIZE];
static bool _dropdownItemsChecked[DROPDOWN_ITEMS_MAX_SIZE];
static bool _dropdownItemsDisabled[DROPDOWN_ITEMS_MAX_SIZE];
static std::bitset<DROPDOWN_ITEMS_MAX_SIZE> _dropdownItemsChecked = {};
static std::bitset<DROPDOWN_ITEMS_MAX_SIZE> _dropdownItemsDisabled = {};
bool gDropdownIsColour;
int32_t gDropdownLastColourHover;
int32_t gDropdownHighlightedIndex;
@@ -217,8 +217,8 @@ void window_dropdown_show_text_custom_width(
// Input state
gDropdownHighlightedIndex = -1;
std::fill_n(_dropdownItemsDisabled, sizeof(_dropdownItemsDisabled), false);
std::fill_n(_dropdownItemsChecked, sizeof(_dropdownItemsChecked), false);
_dropdownItemsDisabled.reset();
_dropdownItemsChecked.reset();
gDropdownIsColour = false;
gDropdownDefaultIndex = -1;
input_set_state(INPUT_STATE_DROPDOWN_ACTIVE);
@@ -297,8 +297,8 @@ void window_dropdown_show_image(
// Input state
gDropdownHighlightedIndex = -1;
std::fill_n(_dropdownItemsDisabled, sizeof(_dropdownItemsDisabled), false);
std::fill_n(_dropdownItemsChecked, sizeof(_dropdownItemsChecked), false);
_dropdownItemsDisabled.reset();
_dropdownItemsChecked.reset();
gDropdownIsColour = false;
gDropdownDefaultIndex = -1;
input_set_state(INPUT_STATE_DROPDOWN_ACTIVE);

View File

@@ -4590,7 +4590,7 @@ static void window_ride_colour_mousedown(rct_window* w, rct_widgetindex widgetIn
stringId = (ride->colour_scheme_type & 3) == VEHICLE_COLOUR_SCHEME_PER_TRAIN ? STR_RIDE_COLOUR_TRAIN_OPTION
: STR_RIDE_COLOUR_VEHICLE_OPTION;
for (i = 0; i < std::min(numItems, (int32_t)DROPDOWN_ITEMS_MAX_SIZE); i++)
for (i = 0; i < std::min(numItems, DROPDOWN_ITEMS_MAX_SIZE); i++)
{
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[i] = ((int64_t)(i + 1) << 32)