1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-28 17:24:47 +01:00

Create struct for all dropdown-related globals (#25023)

This commit is contained in:
Michael Steenbeek
2025-08-23 13:56:13 +02:00
committed by GitHub
parent 488d6f7a0d
commit 577c3336c6
30 changed files with 392 additions and 391 deletions

View File

@@ -749,8 +749,8 @@ namespace OpenRCT2::Ui::Windows
if (objectiveAllowedByMoneyUsage && objectiveAllowedByPaymentSettings)
{
gDropdownItems[numItems].format = STR_DROPDOWN_MENU_LABEL;
gDropdownItems[numItems].args = ObjectiveDropdownOptionNames[i];
gDropdown.items[numItems].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[numItems].args = ObjectiveDropdownOptionNames[i];
numItems++;
}
}
@@ -763,7 +763,7 @@ namespace OpenRCT2::Ui::Windows
auto objectiveType = EnumValue(scenarioOptions.objective.Type);
for (int32_t j = 0; j < numItems; j++)
{
if (gDropdownItems[j].args - STR_OBJECTIVE_DROPDOWN_NONE == objectiveType)
if (gDropdown.items[j].args - STR_OBJECTIVE_DROPDOWN_NONE == objectiveType)
{
Dropdown::SetChecked(j, true);
break;
@@ -775,8 +775,8 @@ namespace OpenRCT2::Ui::Windows
{
for (int32_t i = EnumValue(Scenario::Category::beginner); i <= EnumValue(Scenario::Category::other); i++)
{
gDropdownItems[i].format = STR_DROPDOWN_MENU_LABEL;
gDropdownItems[i].args = Scenario::kScenarioCategoryStringIds[i];
gDropdown.items[i].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[i].args = Scenario::kScenarioCategoryStringIds[i];
}
Widget* dropdownWidget = &widgets[WIDX_CATEGORY];
@@ -1021,7 +1021,7 @@ namespace OpenRCT2::Ui::Windows
case WIDX_OBJECTIVE_DROPDOWN:
// TODO: Don't rely on string ID order
auto newObjectiveType = static_cast<Scenario::ObjectiveType>(
gDropdownItems[dropdownIndex].args - STR_OBJECTIVE_DROPDOWN_NONE);
gDropdown.items[dropdownIndex].args - STR_OBJECTIVE_DROPDOWN_NONE);
if (gameState.scenarioOptions.objective.Type != newObjectiveType)
SetObjective(newObjectiveType);
break;
@@ -1557,12 +1557,12 @@ namespace OpenRCT2::Ui::Windows
{
Widget* dropdownWidget = &widgets[widgetIndex - 1];
gDropdownItems[0].format = STR_DROPDOWN_MENU_LABEL;
gDropdownItems[0].args = STR_FREE_PARK_ENTER;
gDropdownItems[1].format = STR_DROPDOWN_MENU_LABEL;
gDropdownItems[1].args = STR_PAY_PARK_ENTER;
gDropdownItems[2].format = STR_DROPDOWN_MENU_LABEL;
gDropdownItems[2].args = STR_PAID_ENTRY_PAID_RIDES;
gDropdown.items[0].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[0].args = STR_FREE_PARK_ENTER;
gDropdown.items[1].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[1].args = STR_PAY_PARK_ENTER;
gDropdown.items[2].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[2].args = STR_PAID_ENTRY_PAID_RIDES;
WindowDropdownShowTextCustomWidth(
{ windowPos.x + dropdownWidget->left, windowPos.y + dropdownWidget->top }, dropdownWidget->height() - 1,
@@ -1896,15 +1896,15 @@ namespace OpenRCT2::Ui::Windows
{
auto& dropdownWidget = widgets[widgetIndex - 1];
gDropdownItems[0].format = STR_DROPDOWN_MENU_LABEL;
gDropdownItems[1].format = STR_DROPDOWN_MENU_LABEL;
gDropdownItems[2].format = STR_DROPDOWN_MENU_LABEL;
gDropdownItems[3].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[0].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[1].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[2].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[3].format = STR_DROPDOWN_MENU_LABEL;
gDropdownItems[0].args = STR_GUESTS_PREFER_INTENSITY_NONE;
gDropdownItems[1].args = STR_GUESTS_PREFER_INTENSITY_BALANCED;
gDropdownItems[2].args = STR_GUESTS_PREFER_INTENSITY_LESS_INTENSE_RIDES;
gDropdownItems[3].args = STR_GUESTS_PREFER_INTENSITY_MORE_INTENSE_RIDES;
gDropdown.items[0].args = STR_GUESTS_PREFER_INTENSITY_NONE;
gDropdown.items[1].args = STR_GUESTS_PREFER_INTENSITY_BALANCED;
gDropdown.items[2].args = STR_GUESTS_PREFER_INTENSITY_LESS_INTENSE_RIDES;
gDropdown.items[3].args = STR_GUESTS_PREFER_INTENSITY_MORE_INTENSE_RIDES;
WindowDropdownShowTextCustomWidth(
{ windowPos.x + dropdownWidget.left, windowPos.y + dropdownWidget.top }, dropdownWidget.height() - 1,