1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2025-12-21 06:43:04 +01:00

Create MenuLabel constructor

This commit is contained in:
Gymnasiast
2025-08-23 16:06:48 +02:00
parent af50e9b0da
commit bde70ea95f
14 changed files with 78 additions and 144 deletions

View File

@@ -139,6 +139,11 @@ namespace OpenRCT2::Dropdown
return ItemExt(-1, Dropdown::kSeparatorString, kStringIdEmpty);
}
constexpr Item MenuLabel(StringId stringId)
{
return Item{ STR_DROPDOWN_MENU_LABEL, stringId };
}
struct DropdownState
{
int32_t numItems{};

View File

@@ -167,8 +167,7 @@ namespace OpenRCT2::Ui::Windows
auto numItems = std::size(kBannerColouredTextFormats) - 1;
for (size_t i = 0; i < numItems; ++i)
{
gDropdown.items[i].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[i].args.generic = kBannerColouredTextFormats[i + 1];
gDropdown.items[i] = Dropdown::MenuLabel(kBannerColouredTextFormats[i + 1]);
}
// Switch to the dropdown box widget.

View File

@@ -994,8 +994,7 @@ static StringId window_cheats_page_titles[] = {
for (size_t i = 0; i < std::size(_staffSpeedNames); i++)
{
gDropdown.items[i].args.generic = _staffSpeedNames[i];
gDropdown.items[i].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[i] = Dropdown::MenuLabel(_staffSpeedNames[i]);
}
WindowDropdownShowTextCustomWidth(
@@ -1018,8 +1017,7 @@ static StringId window_cheats_page_titles[] = {
for (size_t i = 0; i < std::size(WeatherTypes); i++)
{
gDropdown.items[i].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[i].args.generic = WeatherTypes[i];
gDropdown.items[i] = Dropdown::MenuLabel(WeatherTypes[i]);
}
WindowDropdownShowTextCustomWidth(
{ windowPos.x + dropdownWidget->left, windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1,

View File

@@ -87,11 +87,8 @@ namespace OpenRCT2::Ui::Windows
}
break;
case WIDX_AFFIX_DROPDOWN_BUTTON:
gDropdown.items[0].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[0].args.generic = STR_PREFIX;
gDropdown.items[1].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[1].args.generic = STR_SUFFIX;
gDropdown.items[0] = Dropdown::MenuLabel(STR_PREFIX);
gDropdown.items[1] = Dropdown::MenuLabel(STR_SUFFIX);
WindowDropdownShowTextCustomWidth(
{ windowPos.x + widget->left, windowPos.y + widget->top }, widget->height() + 1, colours[1], 0,

View File

@@ -749,8 +749,7 @@ namespace OpenRCT2::Ui::Windows
if (objectiveAllowedByMoneyUsage && objectiveAllowedByPaymentSettings)
{
gDropdown.items[numItems].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[numItems].args.generic = ObjectiveDropdownOptionNames[i];
gDropdown.items[numItems] = Dropdown::MenuLabel(ObjectiveDropdownOptionNames[i]);
numItems++;
}
}
@@ -775,8 +774,7 @@ namespace OpenRCT2::Ui::Windows
{
for (int32_t i = EnumValue(Scenario::Category::beginner); i <= EnumValue(Scenario::Category::other); i++)
{
gDropdown.items[i].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[i].args.generic = Scenario::kScenarioCategoryStringIds[i];
gDropdown.items[i] = Dropdown::MenuLabel(Scenario::kScenarioCategoryStringIds[i]);
}
Widget* dropdownWidget = &widgets[WIDX_CATEGORY];
@@ -1557,12 +1555,9 @@ namespace OpenRCT2::Ui::Windows
{
Widget* dropdownWidget = &widgets[widgetIndex - 1];
gDropdown.items[0].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[0].args.generic = STR_FREE_PARK_ENTER;
gDropdown.items[1].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[1].args.generic = STR_PAY_PARK_ENTER;
gDropdown.items[2].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[2].args.generic = STR_PAID_ENTRY_PAID_RIDES;
gDropdown.items[0] = Dropdown::MenuLabel(STR_FREE_PARK_ENTER);
gDropdown.items[1] = Dropdown::MenuLabel(STR_PAY_PARK_ENTER);
gDropdown.items[2] = Dropdown::MenuLabel(STR_PAID_ENTRY_PAID_RIDES);
WindowDropdownShowTextCustomWidth(
{ windowPos.x + dropdownWidget->left, windowPos.y + dropdownWidget->top }, dropdownWidget->height() - 1,
@@ -1896,15 +1891,10 @@ namespace OpenRCT2::Ui::Windows
{
auto& dropdownWidget = widgets[widgetIndex - 1];
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;
gDropdown.items[0].args.generic = STR_GUESTS_PREFER_INTENSITY_NONE;
gDropdown.items[1].args.generic = STR_GUESTS_PREFER_INTENSITY_BALANCED;
gDropdown.items[2].args.generic = STR_GUESTS_PREFER_INTENSITY_LESS_INTENSE_RIDES;
gDropdown.items[3].args.generic = STR_GUESTS_PREFER_INTENSITY_MORE_INTENSE_RIDES;
gDropdown.items[0] = Dropdown::MenuLabel(STR_GUESTS_PREFER_INTENSITY_NONE);
gDropdown.items[1] = Dropdown::MenuLabel(STR_GUESTS_PREFER_INTENSITY_BALANCED);
gDropdown.items[2] = Dropdown::MenuLabel(STR_GUESTS_PREFER_INTENSITY_LESS_INTENSE_RIDES);
gDropdown.items[3] = Dropdown::MenuLabel(STR_GUESTS_PREFER_INTENSITY_MORE_INTENSE_RIDES);
WindowDropdownShowTextCustomWidth(
{ windowPos.x + dropdownWidget.left, windowPos.y + dropdownWidget.top }, dropdownWidget.height() - 1,

View File

@@ -348,10 +348,8 @@ namespace OpenRCT2::Ui::Windows
}
case WIDX_INFO_TYPE_DROPDOWN_BUTTON:
{
gDropdown.items[0].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[0].args.generic = GetViewName(GuestViewType::Actions);
gDropdown.items[1].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[1].args.generic = GetViewName(GuestViewType::Thoughts);
gDropdown.items[0] = Dropdown::MenuLabel(GetViewName(GuestViewType::Actions));
gDropdown.items[1] = Dropdown::MenuLabel(GetViewName(GuestViewType::Thoughts));
auto* widget = &widgets[widgetIndex - 1];
WindowDropdownShowTextCustomWidth(

View File

@@ -905,17 +905,15 @@ namespace OpenRCT2::Ui::Windows
gDropdown.items[0].format = STR_TOGGLE_OPTION;
gDropdown.items[1].format = STR_TOGGLE_OPTION;
gDropdown.items[2].format = STR_TOGGLE_OPTION;
gDropdown.items[3].format = kStringIdEmpty;
gDropdown.items[4].format = STR_DROPDOWN_BULLET_OPTION;
gDropdown.items[5].format = STR_DROPDOWN_BULLET_OPTION;
gDropdown.items[6].format = STR_DROPDOWN_BULLET_OPTION;
gDropdown.items[3].format = Dropdown::kSeparatorString;
gDropdown.items[0].args.generic = STR_FILEBROWSER_CUSTOMISE_FILENAME;
gDropdown.items[1].args.generic = STR_FILEBROWSER_CUSTOMISE_SIZE;
gDropdown.items[2].args.generic = STR_FILEBROWSER_CUSTOMISE_DATE;
gDropdown.items[4].args.generic = STR_FILEBROWSER_PREVIEW_DISABLED;
gDropdown.items[5].args.generic = STR_FILEBROWSER_PREVIEW_MINIMAP;
gDropdown.items[6].args.generic = STR_FILEBROWSER_PREVIEW_SCREENSHOT;
gDropdown.items[4] = Dropdown::MenuLabel(STR_FILEBROWSER_PREVIEW_DISABLED);
gDropdown.items[5] = Dropdown::MenuLabel(STR_FILEBROWSER_PREVIEW_MINIMAP);
gDropdown.items[6] = Dropdown::MenuLabel(STR_FILEBROWSER_PREVIEW_SCREENSHOT);
Widget* widget = &widgets[WIDX_SORT_CUSTOMISE];

View File

@@ -211,8 +211,7 @@ namespace OpenRCT2::Ui::Windows
int32_t maxSize = std::min(Dropdown::kItemsMaxSize, static_cast<int32_t>(ShopItems.size()));
for (int32_t i = 0; i < maxSize; i++)
{
gDropdown.items[i].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[i].args.generic = GetShopItemDescriptor(ShopItems[i]).Naming.Plural;
gDropdown.items[i] = Dropdown::MenuLabel(GetShopItemDescriptor(ShopItems[i]).Naming.Plural);
numItems++;
}

View File

@@ -846,12 +846,9 @@ namespace OpenRCT2::Ui::Windows
break;
case WIDX_FULLSCREEN_DROPDOWN:
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[0].args.generic = STR_OPTIONS_DISPLAY_WINDOWED;
gDropdown.items[1].args.generic = STR_OPTIONS_DISPLAY_FULLSCREEN;
gDropdown.items[2].args.generic = STR_OPTIONS_DISPLAY_FULLSCREEN_BORDERLESS;
gDropdown.items[0] = Dropdown::MenuLabel(STR_OPTIONS_DISPLAY_WINDOWED);
gDropdown.items[1] = Dropdown::MenuLabel(STR_OPTIONS_DISPLAY_FULLSCREEN);
gDropdown.items[2] = Dropdown::MenuLabel(STR_OPTIONS_DISPLAY_FULLSCREEN_BORDERLESS);
ShowDropdown(widget, 3);
@@ -862,8 +859,7 @@ namespace OpenRCT2::Ui::Windows
const auto numItems = static_cast<int32_t>(std::size(kDrawingEngineStringIds));
for (int32_t i = 0; i < numItems; i++)
{
gDropdown.items[i].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[i].args.generic = kDrawingEngineStringIds[i];
gDropdown.items[i] = Dropdown::MenuLabel(kDrawingEngineStringIds[i]);
}
ShowDropdown(widget, numItems);
gDropdown.items[EnumValue(Config::Get().general.DrawingEngine)].setChecked(true);
@@ -886,12 +882,9 @@ namespace OpenRCT2::Ui::Windows
break;
case WIDX_FRAME_RATE_LIMIT_DROPDOWN:
{
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[0].args.generic = STR_FRAME_RATE_LIMIT_DEFAULT;
gDropdown.items[1].args.generic = STR_FRAME_RATE_LIMIT_VSYNC;
gDropdown.items[2].args.generic = STR_FRAME_RATE_LIMIT_UNRESTRICTED;
gDropdown.items[0] = Dropdown::MenuLabel(STR_FRAME_RATE_LIMIT_DEFAULT);
gDropdown.items[1] = Dropdown::MenuLabel(STR_FRAME_RATE_LIMIT_VSYNC);
gDropdown.items[2] = Dropdown::MenuLabel(STR_FRAME_RATE_LIMIT_UNRESTRICTED);
ShowDropdown(widget, 3);
@@ -1112,12 +1105,9 @@ namespace OpenRCT2::Ui::Windows
switch (widgetIndex)
{
case WIDX_VIRTUAL_FLOOR_DROPDOWN:
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[0].args.generic = STR_VIRTUAL_FLOOR_STYLE_DISABLED;
gDropdown.items[1].args.generic = STR_VIRTUAL_FLOOR_STYLE_TRANSPARENT;
gDropdown.items[2].args.generic = STR_VIRTUAL_FLOOR_STYLE_GLASSY;
gDropdown.items[0] = Dropdown::MenuLabel(STR_VIRTUAL_FLOOR_STYLE_DISABLED);
gDropdown.items[1] = Dropdown::MenuLabel(STR_VIRTUAL_FLOOR_STYLE_TRANSPARENT);
gDropdown.items[2] = Dropdown::MenuLabel(STR_VIRTUAL_FLOOR_STYLE_GLASSY);
Widget* widget = &widgets[widgetIndex - 1];
ShowDropdown(widget, 3);
@@ -1205,10 +1195,8 @@ namespace OpenRCT2::Ui::Windows
switch (widgetIndex)
{
case WIDX_HEIGHT_LABELS_DROPDOWN:
gDropdown.items[0].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[1].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[0].args.generic = STR_HEIGHT_IN_UNITS;
gDropdown.items[1].args.generic = STR_REAL_VALUES;
gDropdown.items[0] = Dropdown::MenuLabel(STR_HEIGHT_IN_UNITS);
gDropdown.items[1] = Dropdown::MenuLabel(STR_REAL_VALUES);
ShowDropdown(widget, 2);
@@ -1224,16 +1212,13 @@ namespace OpenRCT2::Ui::Windows
for (size_t i = 0; i < numOrdinaryCurrencies; i++)
{
gDropdown.items[i].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[i].args.generic = CurrencyDescriptors[i].stringId;
gDropdown.items[i] = Dropdown::MenuLabel(CurrencyDescriptors[i].stringId);
}
gDropdown.items[numOrdinaryCurrencies].format = Dropdown::kSeparatorString;
gDropdown.items[numOrdinaryCurrencies + 1].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[numOrdinaryCurrencies + 1].args.generic = CurrencyDescriptors[EnumValue(
CurrencyType::Custom)]
.stringId;
gDropdown.items[numOrdinaryCurrencies + 1] = Dropdown::MenuLabel(
CurrencyDescriptors[EnumValue(CurrencyType::Custom)].stringId);
ShowDropdown(widget, numItems);
@@ -1248,22 +1233,17 @@ namespace OpenRCT2::Ui::Windows
break;
}
case WIDX_DISTANCE_DROPDOWN:
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[0].args.generic = STR_IMPERIAL;
gDropdown.items[1].args.generic = STR_METRIC;
gDropdown.items[2].args.generic = STR_SI;
gDropdown.items[0] = Dropdown::MenuLabel(STR_IMPERIAL);
gDropdown.items[1] = Dropdown::MenuLabel(STR_METRIC);
gDropdown.items[2] = Dropdown::MenuLabel(STR_SI);
ShowDropdown(widget, 3);
gDropdown.items[static_cast<int32_t>(Config::Get().general.MeasurementFormat)].setChecked(true);
break;
case WIDX_TEMPERATURE_DROPDOWN:
gDropdown.items[0].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[1].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[0].args.generic = STR_CELSIUS;
gDropdown.items[1].args.generic = STR_FAHRENHEIT;
gDropdown.items[0] = Dropdown::MenuLabel(STR_CELSIUS);
gDropdown.items[1] = Dropdown::MenuLabel(STR_FAHRENHEIT);
ShowDropdown(widget, 2);
@@ -1281,8 +1261,7 @@ namespace OpenRCT2::Ui::Windows
case WIDX_DATE_FORMAT_DROPDOWN:
for (size_t i = 0; i < 4; i++)
{
gDropdown.items[i].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[i].args.generic = DateFormatStringIDs[i];
gDropdown.items[i] = Dropdown::MenuLabel(DateFormatStringIDs[i]);
}
ShowDropdown(widget, 4);
gDropdown.items[Config::Get().general.DateFormat].setChecked(true);
@@ -1487,8 +1466,7 @@ namespace OpenRCT2::Ui::Windows
if (Config::Get().sound.TitleMusic == theme.Kind)
checkedIndex = numItems;
gDropdown.items[numItems].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[numItems++].args.generic = theme.Name;
gDropdown.items[numItems++] = Dropdown::MenuLabel(theme.Name);
}
ShowDropdown(widget, numItems);
gDropdown.items[checkedIndex].setChecked(true);
@@ -1938,10 +1916,9 @@ namespace OpenRCT2::Ui::Windows
gDropdown.items[i].args.generic = reinterpret_cast<uintptr_t>(TitleSequenceManager::GetName(i));
}
gDropdown.items[numItems].format = 0;
gDropdown.items[numItems].format = Dropdown::kSeparatorString;
numItems++;
gDropdown.items[numItems].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[numItems].args.generic = STR_TITLE_SEQUENCE_RANDOM;
gDropdown.items[numItems] = Dropdown::MenuLabel(STR_TITLE_SEQUENCE_RANDOM);
numItems++;
WindowDropdownShowText(
@@ -1958,10 +1935,8 @@ namespace OpenRCT2::Ui::Windows
{
uint32_t numItems = 2;
gDropdown.items[0].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[0].args.generic = STR_SCENARIO_PREVIEWS_MINIMAPS;
gDropdown.items[1].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[1].args.generic = STR_SCENARIO_PREVIEWS_SCREENSHOTS;
gDropdown.items[0] = Dropdown::MenuLabel(STR_SCENARIO_PREVIEWS_MINIMAPS);
gDropdown.items[1] = Dropdown::MenuLabel(STR_SCENARIO_PREVIEWS_SCREENSHOTS);
WindowDropdownShowTextCustomWidth(
{ windowPos.x + widget->left, windowPos.y + widget->top }, widget->height() + 1, colours[1], 0,
@@ -1973,8 +1948,7 @@ namespace OpenRCT2::Ui::Windows
case WIDX_DEFAULT_INSPECTION_INTERVAL_DROPDOWN:
for (size_t i = 0; i < 7; i++)
{
gDropdown.items[i].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[i].args.generic = kRideInspectionIntervalNames[i];
gDropdown.items[i] = Dropdown::MenuLabel(kRideInspectionIntervalNames[i]);
}
ShowDropdown(widget, 7);
@@ -2169,8 +2143,7 @@ namespace OpenRCT2::Ui::Windows
case WIDX_AUTOSAVE_FREQUENCY_DROPDOWN:
for (size_t i = AUTOSAVE_EVERY_MINUTE; i <= AUTOSAVE_NEVER; i++)
{
gDropdown.items[i].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[i].args.generic = AutosaveNames[i];
gDropdown.items[i] = Dropdown::MenuLabel(AutosaveNames[i]);
}
ShowDropdown(widget, AUTOSAVE_NEVER + 1);

View File

@@ -445,10 +445,8 @@ namespace OpenRCT2::Ui::Windows
if (widgetIndex == WIDX_OPEN_OR_CLOSE)
{
auto& widget = widgets[widgetIndex];
gDropdown.items[0].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[1].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[0].args.generic = STR_CLOSE_PARK;
gDropdown.items[1].args.generic = STR_OPEN_PARK;
gDropdown.items[0] = Dropdown::MenuLabel(STR_CLOSE_PARK);
gDropdown.items[1] = Dropdown::MenuLabel(STR_OPEN_PARK);
WindowDropdownShowText(
{ windowPos.x + widget.left, windowPos.y + widget.top }, widget.height() + 1, colours[1], 0, 2);

View File

@@ -478,8 +478,7 @@ namespace OpenRCT2::Ui::Windows
for (std::size_t i = 0; i < std::size(kResearchFundingLevelNames); i++)
{
gDropdown.items[i].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[i].args.generic = kResearchFundingLevelNames[i];
gDropdown.items[i] = Dropdown::MenuLabel(kResearchFundingLevelNames[i]);
}
WindowDropdownShowTextCustomWidth(
{ w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1,

View File

@@ -1761,8 +1761,7 @@ namespace OpenRCT2::Ui::Windows
colours[1], 0, 0, numItems, widget->right - dropdownWidget->left);
// First item
gDropdown.items[0].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[0].args.generic = STR_OVERALL_VIEW;
gDropdown.items[0] = Dropdown::MenuLabel(STR_OVERALL_VIEW);
int32_t currentItem = 1;
// Vehicles
@@ -1832,8 +1831,7 @@ namespace OpenRCT2::Ui::Windows
if (info.Ride->supportsStatus(status))
{
auto index = info.NumItems;
gDropdown.items[index].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[index].args.generic = text;
gDropdown.items[index] = Dropdown::MenuLabel(text);
if (info.CurrentStatus == status)
{
info.CheckedIndex = index;
@@ -1925,8 +1923,7 @@ namespace OpenRCT2::Ui::Windows
for (size_t i = 0; i < _rideDropdownData.size(); i++)
{
gDropdown.items[i].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[i].args.generic = _rideDropdownData[i].LabelId;
gDropdown.items[i] = Dropdown::MenuLabel(_rideDropdownData[i].LabelId);
}
Widget* dropdownWidget = widget - 1;
@@ -2073,8 +2070,7 @@ namespace OpenRCT2::Ui::Windows
for (size_t i = 0; i < numItems; i++)
{
gDropdown.items[i].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[i].args.generic = _vehicleDropdownData[i].LabelId;
gDropdown.items[i] = Dropdown::MenuLabel(_vehicleDropdownData[i].LabelId);
}
Widget* dropdownWidget = widget - 1;
@@ -2134,8 +2130,7 @@ namespace OpenRCT2::Ui::Windows
for (size_t i = 0; i < _entranceDropdownData.size(); i++)
{
gDropdown.items[i].args.generic = _entranceDropdownData[i].LabelId;
gDropdown.items[i].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[i] = Dropdown::MenuLabel(_entranceDropdownData[i].LabelId);
if (_entranceDropdownData[i].EntranceTypeId == ride->entranceStyle)
gDropdown.items[i].format = STR_DROPDOWN_MENU_LABEL_SELECTED;
}
@@ -3112,8 +3107,7 @@ namespace OpenRCT2::Ui::Windows
{
if (availableModes & (1uLL << i))
{
gDropdown.items[numAvailableModes].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[numAvailableModes].args.generic = kRideModeNames[i];
gDropdown.items[numAvailableModes] = Dropdown::MenuLabel(kRideModeNames[i]);
if (ride->mode == static_cast<RideMode>(i))
checkedIndex = numAvailableModes;
@@ -3141,8 +3135,7 @@ namespace OpenRCT2::Ui::Windows
auto dropdownWidget = widget - 1;
for (auto i = 0; i < 5; i++)
{
gDropdown.items[i].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[i].args.generic = VehicleLoadNames[i];
gDropdown.items[i] = Dropdown::MenuLabel(VehicleLoadNames[i]);
}
WindowDropdownShowTextCustomWidth(
{ windowPos.x + dropdownWidget->left, windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1,
@@ -3791,8 +3784,7 @@ namespace OpenRCT2::Ui::Windows
dropdownWidget--;
for (int32_t i = 0; i < 7; i++)
{
gDropdown.items[i].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[i].args.generic = kRideInspectionIntervalNames[i];
gDropdown.items[i] = Dropdown::MenuLabel(kRideInspectionIntervalNames[i]);
}
WindowDropdownShowTextCustomWidth(
{ windowPos.x + dropdownWidget->left, windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1,
@@ -3808,8 +3800,7 @@ namespace OpenRCT2::Ui::Windows
if (rideEntry->ride_type[j] != kRideTypeNull)
break;
}
gDropdown.items[0].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[0].args.generic = STR_DEBUG_FIX_RIDE;
gDropdown.items[0] = Dropdown::MenuLabel(STR_DEBUG_FIX_RIDE);
for (int32_t i = 0; i < 8; i++)
{
assert(j < static_cast<int32_t>(std::size(rideEntry->ride_type)));
@@ -3820,8 +3811,7 @@ namespace OpenRCT2::Ui::Windows
if (ride->numTrains != 1)
continue;
}
gDropdown.items[numItems].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[numItems].args.generic = RideBreakdownReasonNames[i];
gDropdown.items[numItems] = Dropdown::MenuLabel(RideBreakdownReasonNames[i]);
numItems++;
}
}
@@ -3854,8 +3844,7 @@ namespace OpenRCT2::Ui::Windows
gDropdown.items[numItems].setChecked(true);
break;
}
gDropdown.items[numItems].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[numItems].args.generic = RideBreakdownReasonNames[i];
gDropdown.items[numItems] = Dropdown::MenuLabel(RideBreakdownReasonNames[i]);
numItems++;
}
}
@@ -4325,8 +4314,7 @@ namespace OpenRCT2::Ui::Windows
{
for (size_t i = 0; i < std::size(ColourSchemeNames); i++)
{
gDropdown.items[i].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[i].args.generic = ColourSchemeNames[i];
gDropdown.items[i] = Dropdown::MenuLabel(ColourSchemeNames[i]);
}
WindowDropdownShowTextCustomWidth(
@@ -4352,8 +4340,7 @@ namespace OpenRCT2::Ui::Windows
{
for (auto i = 0; i < 4; i++)
{
gDropdown.items[i].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[i].args.generic = MazeOptions[i].text;
gDropdown.items[i] = Dropdown::MenuLabel(MazeOptions[i].text);
}
WindowDropdownShowTextCustomWidth(
@@ -4372,16 +4359,14 @@ namespace OpenRCT2::Ui::Windows
auto vehicleTypeName = GetRideComponentName(ride->getRideTypeDescriptor().NameConvention.vehicle).singular;
auto numDropdownItems = 2;
gDropdown.items[0].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[0].args.generic = STR_ALL_VEHICLES_IN_SAME_COLOURS;
gDropdown.items[0] = Dropdown::MenuLabel(STR_ALL_VEHICLES_IN_SAME_COLOURS);
gDropdown.items[1].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[1].args.generic = (vehicleTypeName << 16) | STR_DIFFERENT_COLOURS_PER;
if (getNumVisibleCars() > 1)
{
numDropdownItems++;
gDropdown.items[2].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[2].args.generic = STR_DIFFERENT_COLOURS_PER_VEHICLE;
gDropdown.items[2] = Dropdown::MenuLabel(STR_DIFFERENT_COLOURS_PER_VEHICLE);
}
WindowDropdownShowTextCustomWidth(
@@ -5085,8 +5070,7 @@ namespace OpenRCT2::Ui::Windows
for (size_t i = 0; i < numItems; i++)
{
auto musicObj = objManager.GetLoadedObject<MusicObject>(musicOrder[i]);
gDropdown.items[i].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[i].args.generic = musicObj->NameStringId;
gDropdown.items[i] = Dropdown::MenuLabel(musicObj->NameStringId);
}
WindowDropdownShowTextCustomWidth(

View File

@@ -331,8 +331,7 @@ namespace OpenRCT2::Ui::Windows
selectedIndex = numItems;
}
gDropdown.items[numItems].format = STR_DROPDOWN_MENU_LABEL;
gDropdown.items[numItems].args.generic = ride_info_type_string_mapping[type];
gDropdown.items[numItems] = Dropdown::MenuLabel(ride_info_type_string_mapping[type]);
numItems++;
}

View File

@@ -894,12 +894,9 @@ static uint64_t PageDisabledWidgets[] = {
// Use dropdown instead of dropdown button
widget--;
// Fill dropdown list
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[0].args.generic = STR_TILE_INSPECTOR_WALL_FLAT;
gDropdown.items[1].args.generic = STR_TILE_INSPECTOR_WALL_SLOPED_LEFT;
gDropdown.items[2].args.generic = STR_TILE_INSPECTOR_WALL_SLOPED_RIGHT;
gDropdown.items[0] = Dropdown::MenuLabel(STR_TILE_INSPECTOR_WALL_FLAT);
gDropdown.items[1] = Dropdown::MenuLabel(STR_TILE_INSPECTOR_WALL_SLOPED_LEFT);
gDropdown.items[2] = Dropdown::MenuLabel(STR_TILE_INSPECTOR_WALL_SLOPED_RIGHT);
WindowDropdownShowTextCustomWidth(
{ windowPos.x + widget->left, windowPos.y + widget->top }, widget->height() + 1, colours[1], 0,
Dropdown::Flag::StayOpen, 3, widget->width() - 3);