Create Dropdown::Item and use it for gDropdownItems

This commit is contained in:
Gymnasiast 2022-02-12 23:57:22 +01:00
parent a17c4ad304
commit 723867e0a0
No known key found for this signature in database
GPG Key ID: DBFFF47AB2CA3EDD
32 changed files with 304 additions and 293 deletions

View File

@ -1253,7 +1253,7 @@ void InputStateWidgetPressed(
dropdown_index = DropdownIndexFromPoint(screenCoords, w); dropdown_index = DropdownIndexFromPoint(screenCoords, w);
dropdownCleanup = dropdown_index == -1 dropdownCleanup = dropdown_index == -1
|| (dropdown_index < Dropdown::ItemsMaxSize && Dropdown::IsDisabled(dropdown_index)) || (dropdown_index < Dropdown::ItemsMaxSize && Dropdown::IsDisabled(dropdown_index))
|| gDropdownItemsFormat[dropdown_index] == Dropdown::SeparatorString; || gDropdownItems[dropdown_index].IsSeparator();
w = nullptr; // To be closed right next w = nullptr; // To be closed right next
} }
else else
@ -1419,7 +1419,7 @@ void InputStateWidgetPressed(
return; return;
} }
if (gDropdownItemsFormat[dropdown_index] == Dropdown::SeparatorString) if (gDropdownItems[dropdown_index].IsSeparator())
{ {
return; return;
} }

View File

@ -16,6 +16,8 @@
namespace Dropdown namespace Dropdown
{ {
struct Item;
constexpr const rct_string_id SeparatorString = 0; constexpr const rct_string_id SeparatorString = 0;
constexpr const rct_string_id FormatColourPicker = 0xFFFE; constexpr const rct_string_id FormatColourPicker = 0xFFFE;
constexpr const rct_string_id FormatLandPicker = 0xFFFF; constexpr const rct_string_id FormatLandPicker = 0xFFFF;
@ -35,8 +37,7 @@ namespace Dropdown
} // namespace Dropdown } // namespace Dropdown
extern int32_t gDropdownNumItems; extern int32_t gDropdownNumItems;
extern rct_string_id gDropdownItemsFormat[Dropdown::ItemsMaxSize]; extern Dropdown::Item gDropdownItems[Dropdown::ItemsMaxSize];
extern int64_t gDropdownItemsArgs[Dropdown::ItemsMaxSize];
extern bool gDropdownIsColour; extern bool gDropdownIsColour;
extern int32_t gDropdownLastColourHover; extern int32_t gDropdownLastColourHover;
extern int32_t gDropdownHighlightedIndex; extern int32_t gDropdownHighlightedIndex;
@ -58,6 +59,17 @@ uint32_t DropdownGetAppropriateImageDropdownItemsPerRow(uint32_t numItems);
namespace Dropdown namespace Dropdown
{ {
struct Item
{
rct_string_id Format;
int64_t Args;
constexpr bool IsSeparator() const
{
return Format == SeparatorString;
}
};
struct ItemExt struct ItemExt
{ {
constexpr ItemExt(int32_t _expectedItemIndex, uint32_t _itemFormat, rct_string_id _stringId) constexpr ItemExt(int32_t _expectedItemIndex, uint32_t _itemFormat, rct_string_id _stringId)
@ -87,8 +99,8 @@ namespace Dropdown
for (int i = 0; i < N; ++i) for (int i = 0; i < N; ++i)
{ {
const ItemExt& item = items[i]; const ItemExt& item = items[i];
gDropdownItemsFormat[i] = item.itemFormat; gDropdownItems[i].Format = item.itemFormat;
gDropdownItemsArgs[i] = item.stringId; gDropdownItems[i].Args = item.stringId;
} }
} }

View File

@ -71,7 +71,7 @@ void LandTool::ShowSurfaceStyleDropdown(rct_window* w, rct_widget* widget, Objec
if (surfaceObj->Colour != 255) if (surfaceObj->Colour != 255)
imageId = imageId.WithPrimary(surfaceObj->Colour); imageId = imageId.WithPrimary(surfaceObj->Colour);
gDropdownItemsFormat[itemIndex] = Dropdown::FormatLandPicker; gDropdownItems[itemIndex].Format = Dropdown::FormatLandPicker;
Dropdown::SetImage(itemIndex, imageId); Dropdown::SetImage(itemIndex, imageId);
if (i == currentSurfaceType) if (i == currentSurfaceType)
{ {
@ -101,7 +101,7 @@ void LandTool::ShowEdgeStyleDropdown(rct_window* w, rct_widget* widget, ObjectEn
// If fallback images are loaded, the RCT1 styles will just look like copies of already existing styles, so hide them. // If fallback images are loaded, the RCT1 styles will just look like copies of already existing styles, so hide them.
if (edgeObj != nullptr && !edgeObj->UsesFallbackImages()) if (edgeObj != nullptr && !edgeObj->UsesFallbackImages())
{ {
gDropdownItemsFormat[itemIndex] = Dropdown::FormatLandPicker; gDropdownItems[itemIndex].Format = Dropdown::FormatLandPicker;
Dropdown::SetImage(itemIndex, ImageId(edgeObj->IconImageId)); Dropdown::SetImage(itemIndex, ImageId(edgeObj->IconImageId));
if (i == currentEdgeType) if (i == currentEdgeType)
{ {

View File

@ -643,10 +643,10 @@ namespace OpenRCT2::Ui::Windows
const auto numItems = std::min<size_t>(items.size(), Dropdown::ItemsMaxSize); const auto numItems = std::min<size_t>(items.size(), Dropdown::ItemsMaxSize);
for (size_t i = 0; i < numItems; i++) for (size_t i = 0; i < numItems; i++)
{ {
gDropdownItemsFormat[i] = selectedIndex == static_cast<int32_t>(i) ? STR_OPTIONS_DROPDOWN_ITEM_SELECTED gDropdownItems[i].Format = selectedIndex == static_cast<int32_t>(i) ? STR_OPTIONS_DROPDOWN_ITEM_SELECTED
: STR_OPTIONS_DROPDOWN_ITEM; : STR_OPTIONS_DROPDOWN_ITEM;
auto sz = items[i].c_str(); auto sz = items[i].c_str();
std::memcpy(&gDropdownItemsArgs[i], &sz, sizeof(const char*)); std::memcpy(&gDropdownItems[i].Args, &sz, sizeof(const char*));
} }
WindowDropdownShowTextCustomWidth( WindowDropdownShowTextCustomWidth(
{ windowPos.x + widget->left, windowPos.y + widget->top }, widget->height() + 1, { windowPos.x + widget->left, windowPos.y + widget->top }, widget->height() + 1,

View File

@ -163,8 +163,8 @@ public:
for (int32_t i = 0; i < 13; ++i) for (int32_t i = 0; i < 13; ++i)
{ {
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[i].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[i] = BannerColouredTextFormats[i + 1]; gDropdownItems[i].Args = BannerColouredTextFormats[i + 1];
} }
// Switch to the dropdown box widget. // Switch to the dropdown box widget.

View File

@ -908,8 +908,8 @@ private:
for (size_t i = 0; i < std::size(WeatherTypes); i++) for (size_t i = 0; i < std::size(WeatherTypes); i++)
{ {
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[i].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[i] = WeatherTypes[i]; gDropdownItems[i].Args = WeatherTypes[i];
} }
WindowDropdownShowTextCustomWidth( WindowDropdownShowTextCustomWidth(
{ windowPos.x + dropdownWidget->left, windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1, { windowPos.x + dropdownWidget->left, windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1,
@ -927,8 +927,8 @@ private:
for (size_t i = 0; i < std::size(_staffSpeedNames); i++) for (size_t i = 0; i < std::size(_staffSpeedNames); i++)
{ {
gDropdownItemsArgs[i] = _staffSpeedNames[i]; gDropdownItems[i].Args = _staffSpeedNames[i];
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[i].Format = STR_DROPDOWN_MENU_LABEL;
} }
WindowDropdownShowTextCustomWidth( WindowDropdownShowTextCustomWidth(

View File

@ -86,11 +86,11 @@ public:
} }
break; break;
case WIDX_AFFIX_DROPDOWN_BUTTON: case WIDX_AFFIX_DROPDOWN_BUTTON:
gDropdownItemsFormat[0] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[0].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[0] = STR_PREFIX; gDropdownItems[0].Args = STR_PREFIX;
gDropdownItemsFormat[1] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[1].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[1] = STR_SUFFIX; gDropdownItems[1].Args = STR_SUFFIX;
WindowDropdownShowTextCustomWidth( WindowDropdownShowTextCustomWidth(
{ windowPos.x + widget->left, windowPos.y + widget->top }, widget->height() + 1, colours[1], 0, { windowPos.x + widget->left, windowPos.y + widget->top }, widget->height() + 1, colours[1], 0,

View File

@ -48,8 +48,7 @@ static int32_t _dropdown_item_height;
static bool _dropdown_list_vertically; static bool _dropdown_list_vertically;
int32_t gDropdownNumItems; int32_t gDropdownNumItems;
rct_string_id gDropdownItemsFormat[Dropdown::ItemsMaxSize]; Dropdown::Item gDropdownItems[Dropdown::ItemsMaxSize];
int64_t gDropdownItemsArgs[Dropdown::ItemsMaxSize];
static ImageId _dropdownItemsImages[Dropdown::ItemsMaxSize]; static ImageId _dropdownItemsImages[Dropdown::ItemsMaxSize];
static BitSet<Dropdown::ItemsMaxSize> _dropdownItemsChecked = {}; static BitSet<Dropdown::ItemsMaxSize> _dropdownItemsChecked = {};
static BitSet<Dropdown::ItemsMaxSize> _dropdownItemsDisabled = {}; static BitSet<Dropdown::ItemsMaxSize> _dropdownItemsDisabled = {};
@ -135,7 +134,7 @@ void WindowDropdownShowText(const ScreenCoordsXY& screenPos, int32_t extray, uin
max_string_width = 0; max_string_width = 0;
for (size_t i = 0; i < num_items; i++) for (size_t i = 0; i < num_items; i++)
{ {
format_string(buffer, 256, gDropdownItemsFormat[i], static_cast<void*>(&gDropdownItemsArgs[i])); format_string(buffer, 256, gDropdownItems[i].Format, static_cast<void*>(&gDropdownItems[i].Args));
string_width = gfx_get_string_width(buffer, FontSpriteBase::MEDIUM); string_width = gfx_get_string_width(buffer, FontSpriteBase::MEDIUM);
max_string_width = std::max(string_width, max_string_width); max_string_width = std::max(string_width, max_string_width);
} }
@ -328,7 +327,7 @@ static void WindowDropdownPaint(rct_window* w, rct_drawpixelinfo* dpi)
ScreenCoordsXY screenCoords = w->windowPos ScreenCoordsXY screenCoords = w->windowPos
+ ScreenCoordsXY{ 2 + (cellCoords.x * _dropdown_item_width), 2 + (cellCoords.y * _dropdown_item_height) }; + ScreenCoordsXY{ 2 + (cellCoords.x * _dropdown_item_width), 2 + (cellCoords.y * _dropdown_item_height) };
if (gDropdownItemsFormat[i] == Dropdown::SeparatorString) if (gDropdownItems[i].IsSeparator())
{ {
const ScreenCoordsXY leftTop = screenCoords + ScreenCoordsXY{ 0, (_dropdown_item_height / 2) }; const ScreenCoordsXY leftTop = screenCoords + ScreenCoordsXY{ 0, (_dropdown_item_height / 2) };
const ScreenCoordsXY rightBottom = leftTop + ScreenCoordsXY{ _dropdown_item_width - 1, 0 }; const ScreenCoordsXY rightBottom = leftTop + ScreenCoordsXY{ _dropdown_item_width - 1, 0 };
@ -356,12 +355,12 @@ static void WindowDropdownPaint(rct_window* w, rct_drawpixelinfo* dpi)
gfx_filter_rect(dpi, { screenCoords, rightBottom }, FilterPaletteID::PaletteDarken3); gfx_filter_rect(dpi, { screenCoords, rightBottom }, FilterPaletteID::PaletteDarken3);
} }
rct_string_id item = gDropdownItemsFormat[i]; rct_string_id item = gDropdownItems[i].Format;
if (item == Dropdown::FormatLandPicker || item == Dropdown::FormatColourPicker) if (item == Dropdown::FormatLandPicker || item == Dropdown::FormatColourPicker)
{ {
// Image item // Image item
auto image = _dropdownUseImages ? _dropdownItemsImages[i] auto image = _dropdownUseImages ? _dropdownItemsImages[i]
: ImageId::FromUInt32(static_cast<uint32_t>(gDropdownItemsArgs[i])); : ImageId::FromUInt32(static_cast<uint32_t>(gDropdownItems[i].Args));
if (item == Dropdown::FormatColourPicker && highlightedIndex == i) if (item == Dropdown::FormatColourPicker && highlightedIndex == i)
image = image.WithIndexOffset(1); image = image.WithIndexOffset(1);
gfx_draw_sprite(dpi, image, screenCoords); gfx_draw_sprite(dpi, image, screenCoords);
@ -380,7 +379,7 @@ static void WindowDropdownPaint(rct_window* w, rct_drawpixelinfo* dpi)
colour = NOT_TRANSLUCENT(w->colours[0]) | COLOUR_FLAG_INSET; colour = NOT_TRANSLUCENT(w->colours[0]) | COLOUR_FLAG_INSET;
// Draw item string // Draw item string
Formatter ft(reinterpret_cast<uint8_t*>(&gDropdownItemsArgs[i])); Formatter ft(reinterpret_cast<uint8_t*>(&gDropdownItems[i].Args));
DrawTextEllipsised(dpi, screenCoords, w->width - 5, item, ft, { colour }); DrawTextEllipsised(dpi, screenCoords, w->width - 5, item, ft, { colour });
} }
} }
@ -436,8 +435,8 @@ void WindowDropdownShowColour(rct_window* w, rct_widget* widget, uint8_t dropdow
if (selectedColour == i) if (selectedColour == i)
defaultIndex = i; defaultIndex = i;
gDropdownItemsFormat[i] = Dropdown::FormatColourPicker; gDropdownItems[i].Format = Dropdown::FormatColourPicker;
gDropdownItemsArgs[i] = (i << 32) | (SPRITE_ID_PALETTE_COLOUR_1(i) | SPR_PALETTE_BTN); gDropdownItems[i].Args = (i << 32) | (SPRITE_ID_PALETTE_COLOUR_1(i) | SPR_PALETTE_BTN);
} }
// Show dropdown // Show dropdown

View File

@ -455,34 +455,34 @@ public:
{ {
case WIDX_FILTER_DROPDOWN: case WIDX_FILTER_DROPDOWN:
gDropdownItemsFormat[DDIX_FILTER_RCT1] = STR_TOGGLE_OPTION; gDropdownItems[DDIX_FILTER_RCT1].Format = STR_TOGGLE_OPTION;
gDropdownItemsFormat[DDIX_FILTER_AA] = STR_TOGGLE_OPTION; gDropdownItems[DDIX_FILTER_AA].Format = STR_TOGGLE_OPTION;
gDropdownItemsFormat[DDIX_FILTER_LL] = STR_TOGGLE_OPTION; gDropdownItems[DDIX_FILTER_LL].Format = STR_TOGGLE_OPTION;
gDropdownItemsFormat[DDIX_FILTER_RCT2] = STR_TOGGLE_OPTION; gDropdownItems[DDIX_FILTER_RCT2].Format = STR_TOGGLE_OPTION;
gDropdownItemsFormat[DDIX_FILTER_WW] = STR_TOGGLE_OPTION; gDropdownItems[DDIX_FILTER_WW].Format = STR_TOGGLE_OPTION;
gDropdownItemsFormat[DDIX_FILTER_TT] = STR_TOGGLE_OPTION; gDropdownItems[DDIX_FILTER_TT].Format = STR_TOGGLE_OPTION;
gDropdownItemsFormat[DDIX_FILTER_OO] = STR_TOGGLE_OPTION; gDropdownItems[DDIX_FILTER_OO].Format = STR_TOGGLE_OPTION;
gDropdownItemsFormat[DDIX_FILTER_CUSTOM] = STR_TOGGLE_OPTION; gDropdownItems[DDIX_FILTER_CUSTOM].Format = STR_TOGGLE_OPTION;
gDropdownItemsArgs[DDIX_FILTER_RCT1] = STR_SCENARIO_CATEGORY_RCT1; gDropdownItems[DDIX_FILTER_RCT1].Args = STR_SCENARIO_CATEGORY_RCT1;
gDropdownItemsArgs[DDIX_FILTER_AA] = STR_SCENARIO_CATEGORY_RCT1_AA; gDropdownItems[DDIX_FILTER_AA].Args = STR_SCENARIO_CATEGORY_RCT1_AA;
gDropdownItemsArgs[DDIX_FILTER_LL] = STR_SCENARIO_CATEGORY_RCT1_LL; gDropdownItems[DDIX_FILTER_LL].Args = STR_SCENARIO_CATEGORY_RCT1_LL;
gDropdownItemsArgs[DDIX_FILTER_RCT2] = STR_ROLLERCOASTER_TYCOON_2_DROPDOWN; gDropdownItems[DDIX_FILTER_RCT2].Args = STR_ROLLERCOASTER_TYCOON_2_DROPDOWN;
gDropdownItemsArgs[DDIX_FILTER_WW] = STR_OBJECT_FILTER_WW; gDropdownItems[DDIX_FILTER_WW].Args = STR_OBJECT_FILTER_WW;
gDropdownItemsArgs[DDIX_FILTER_TT] = STR_OBJECT_FILTER_TT; gDropdownItems[DDIX_FILTER_TT].Args = STR_OBJECT_FILTER_TT;
gDropdownItemsArgs[DDIX_FILTER_OO] = STR_OBJECT_FILTER_OPENRCT2_OFFICIAL; gDropdownItems[DDIX_FILTER_OO].Args = STR_OBJECT_FILTER_OPENRCT2_OFFICIAL;
gDropdownItemsArgs[DDIX_FILTER_CUSTOM] = STR_OBJECT_FILTER_CUSTOM; gDropdownItems[DDIX_FILTER_CUSTOM].Args = STR_OBJECT_FILTER_CUSTOM;
// Track manager cannot select multiple, so only show selection filters if not in track manager // Track manager cannot select multiple, so only show selection filters if not in track manager
if (!(gScreenFlags & SCREEN_FLAGS_TRACK_MANAGER)) if (!(gScreenFlags & SCREEN_FLAGS_TRACK_MANAGER))
{ {
numSelectionItems = 3; numSelectionItems = 3;
gDropdownItemsFormat[DDIX_FILTER_SEPARATOR] = 0; gDropdownItems[DDIX_FILTER_SEPARATOR].Format = 0;
gDropdownItemsFormat[DDIX_FILTER_SELECTED] = STR_TOGGLE_OPTION; gDropdownItems[DDIX_FILTER_SELECTED].Format = STR_TOGGLE_OPTION;
gDropdownItemsFormat[DDIX_FILTER_NONSELECTED] = STR_TOGGLE_OPTION; gDropdownItems[DDIX_FILTER_NONSELECTED].Format = STR_TOGGLE_OPTION;
gDropdownItemsArgs[DDIX_FILTER_SEPARATOR] = STR_NONE; gDropdownItems[DDIX_FILTER_SEPARATOR].Args = STR_NONE;
gDropdownItemsArgs[DDIX_FILTER_SELECTED] = STR_SELECTED_ONLY; gDropdownItems[DDIX_FILTER_SELECTED].Args = STR_SELECTED_ONLY;
gDropdownItemsArgs[DDIX_FILTER_NONSELECTED] = STR_NON_SELECTED_ONLY; gDropdownItems[DDIX_FILTER_NONSELECTED].Args = STR_NON_SELECTED_ONLY;
} }
WindowDropdownShowText( WindowDropdownShowText(

View File

@ -414,8 +414,8 @@ static void WindowEditorObjectiveOptionsShowObjectiveDropdown(rct_window* w)
const bool objectiveAllowedByPaymentSettings = (i != OBJECTIVE_MONTHLY_RIDE_INCOME) || park_ride_prices_unlocked(); const bool objectiveAllowedByPaymentSettings = (i != OBJECTIVE_MONTHLY_RIDE_INCOME) || park_ride_prices_unlocked();
if (objectiveAllowedByMoneyUsage && objectiveAllowedByPaymentSettings) if (objectiveAllowedByMoneyUsage && objectiveAllowedByPaymentSettings)
{ {
gDropdownItemsFormat[numItems] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[numItems].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[numItems] = ObjectiveDropdownOptionNames[i]; gDropdownItems[numItems].Args = ObjectiveDropdownOptionNames[i];
numItems++; numItems++;
} }
} }
@ -427,7 +427,7 @@ static void WindowEditorObjectiveOptionsShowObjectiveDropdown(rct_window* w)
objectiveType = gScenarioObjective.Type; objectiveType = gScenarioObjective.Type;
for (int32_t j = 0; j < numItems; j++) for (int32_t j = 0; j < numItems; j++)
{ {
if (gDropdownItemsArgs[j] - STR_OBJECTIVE_DROPDOWN_NONE == objectiveType) if (gDropdownItems[j].Args - STR_OBJECTIVE_DROPDOWN_NONE == objectiveType)
{ {
Dropdown::SetChecked(j, true); Dropdown::SetChecked(j, true);
break; break;
@ -444,8 +444,8 @@ static void WindowEditorObjectiveOptionsShowCategoryDropdown(rct_window* w)
for (i = SCENARIO_CATEGORY_BEGINNER; i <= SCENARIO_CATEGORY_OTHER; i++) for (i = SCENARIO_CATEGORY_BEGINNER; i <= SCENARIO_CATEGORY_OTHER; i++)
{ {
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[i].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[i] = ScenarioCategoryStringIds[i]; gDropdownItems[i].Args = ScenarioCategoryStringIds[i];
} }
WindowDropdownShowTextCustomWidth( WindowDropdownShowTextCustomWidth(
{ w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1, { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1,
@ -651,7 +651,7 @@ static void WindowEditorObjectiveOptionsMainDropdown(rct_window* w, rct_widgetin
{ {
case WIDX_OBJECTIVE_DROPDOWN: case WIDX_OBJECTIVE_DROPDOWN:
// TODO: Don't rely on string ID order // TODO: Don't rely on string ID order
newObjectiveType = static_cast<uint8_t>(gDropdownItemsArgs[dropdownIndex] - STR_OBJECTIVE_DROPDOWN_NONE); newObjectiveType = static_cast<uint8_t>(gDropdownItems[dropdownIndex].Args - STR_OBJECTIVE_DROPDOWN_NONE);
if (gScenarioObjective.Type != newObjectiveType) if (gScenarioObjective.Type != newObjectiveType)
WindowEditorObjectiveOptionsSetObjective(w, newObjectiveType); WindowEditorObjectiveOptionsSetObjective(w, newObjectiveType);
break; break;

View File

@ -480,8 +480,8 @@ static void WindowEditorScenarioOptionsShowClimateDropdown(rct_window* w)
for (i = 0; i < static_cast<uint8_t>(ClimateType::Count); i++) for (i = 0; i < static_cast<uint8_t>(ClimateType::Count); i++)
{ {
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[i].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[i] = ClimateNames[i]; gDropdownItems[i].Args = ClimateNames[i];
} }
WindowDropdownShowTextCustomWidth( WindowDropdownShowTextCustomWidth(
{ w->windowPos.x + dropdownWidget.left, w->windowPos.y + dropdownWidget.top }, dropdownWidget.height() + 1, { w->windowPos.x + dropdownWidget.left, w->windowPos.y + dropdownWidget.top }, dropdownWidget.height() + 1,
@ -1179,12 +1179,12 @@ static void WindowEditorScenarioOptionsParkMousedown(rct_window* w, rct_widgetin
case WIDX_PAY_FOR_PARK_OR_RIDES_DROPDOWN: case WIDX_PAY_FOR_PARK_OR_RIDES_DROPDOWN:
dropdownWidget = widget - 1; dropdownWidget = widget - 1;
gDropdownItemsFormat[0] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[0].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[0] = STR_FREE_PARK_ENTER; gDropdownItems[0].Args = STR_FREE_PARK_ENTER;
gDropdownItemsFormat[1] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[1].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[1] = STR_PAY_PARK_ENTER; gDropdownItems[1].Args = STR_PAY_PARK_ENTER;
gDropdownItemsFormat[2] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[2].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[2] = STR_PAID_ENTRY_PAID_RIDES; gDropdownItems[2].Args = STR_PAID_ENTRY_PAID_RIDES;
WindowDropdownShowTextCustomWidth( WindowDropdownShowTextCustomWidth(
{ w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() - 1, { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() - 1,

View File

@ -1197,8 +1197,8 @@ static void WindowFinancesResearchMousedown(rct_window* w, rct_widgetindex widge
for (i = 0; i < 4; i++) for (i = 0; i < 4; i++)
{ {
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[i].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[i] = ResearchFundingLevelNames[i]; gDropdownItems[i].Args = ResearchFundingLevelNames[i];
} }
WindowDropdownShowTextCustomWidth( WindowDropdownShowTextCustomWidth(
{ w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1, { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1,

View File

@ -751,7 +751,7 @@ static void WindowFootpathShowFootpathTypesDialog(rct_window* w, rct_widget* wid
defaultIndex = numPathTypes; defaultIndex = numPathTypes;
} }
gDropdownItemsFormat[numPathTypes] = STR_NONE; gDropdownItems[numPathTypes].Format = STR_NONE;
Dropdown::SetImage(numPathTypes, ImageId(pathType->PreviewImageId)); Dropdown::SetImage(numPathTypes, ImageId(pathType->PreviewImageId));
_dropdownEntries.push_back({ ObjectType::FootpathSurface, i }); _dropdownEntries.push_back({ ObjectType::FootpathSurface, i });
numPathTypes++; numPathTypes++;
@ -776,7 +776,7 @@ static void WindowFootpathShowFootpathTypesDialog(rct_window* w, rct_widget* wid
defaultIndex = numPathTypes; defaultIndex = numPathTypes;
} }
gDropdownItemsFormat[numPathTypes] = STR_NONE; gDropdownItems[numPathTypes].Format = STR_NONE;
Dropdown::SetImage( Dropdown::SetImage(
numPathTypes, ImageId(showQueues ? pathEntry->GetQueuePreviewImage() : pathEntry->GetPreviewImage())); numPathTypes, ImageId(showQueues ? pathEntry->GetQueuePreviewImage() : pathEntry->GetPreviewImage()));
_dropdownEntries.push_back({ ObjectType::Paths, i }); _dropdownEntries.push_back({ ObjectType::Paths, i });
@ -810,7 +810,7 @@ static void WindowFootpathShowRailingsTypesDialog(rct_window* w, rct_widget* wid
defaultIndex = numRailingsTypes; defaultIndex = numRailingsTypes;
} }
gDropdownItemsFormat[numRailingsTypes] = STR_NONE; gDropdownItems[numRailingsTypes].Format = STR_NONE;
Dropdown::SetImage(numRailingsTypes, ImageId(railingsEntry->PreviewImageId)); Dropdown::SetImage(numRailingsTypes, ImageId(railingsEntry->PreviewImageId));
_dropdownEntries.push_back({ ObjectType::FootpathRailings, i }); _dropdownEntries.push_back({ ObjectType::FootpathRailings, i });
numRailingsTypes++; numRailingsTypes++;

View File

@ -651,8 +651,8 @@ static void WindowGuestOverviewDropdown(rct_window* w, rct_widgetindex widgetInd
static void WindowGuestShowLocateDropdown(rct_window* w, rct_widget* widget) static void WindowGuestShowLocateDropdown(rct_window* w, rct_widget* widget)
{ {
gDropdownItemsFormat[0] = STR_LOCATE_SUBJECT_TIP; gDropdownItems[0].Format = STR_LOCATE_SUBJECT_TIP;
gDropdownItemsFormat[1] = STR_FOLLOW_SUBJECT_TIP; gDropdownItems[1].Format = STR_FOLLOW_SUBJECT_TIP;
WindowDropdownShowText( WindowDropdownShowText(
{ w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[1], 0, 2); { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[1], 0, 2);

View File

@ -354,8 +354,8 @@ public:
for (size_t i = 0; i < _numPages; i++) for (size_t i = 0; i < _numPages; i++)
{ {
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[i].Format = STR_DROPDOWN_MENU_LABEL;
uint16_t* args = reinterpret_cast<uint16_t*>(&gDropdownItemsArgs[i]); uint16_t* args = reinterpret_cast<uint16_t*>(&gDropdownItems[i].Args);
args[0] = STR_PAGE_X; args[0] = STR_PAGE_X;
args[1] = static_cast<uint16_t>(i + 1); args[1] = static_cast<uint16_t>(i + 1);
} }
@ -364,10 +364,10 @@ public:
} }
case WIDX_INFO_TYPE_DROPDOWN_BUTTON: case WIDX_INFO_TYPE_DROPDOWN_BUTTON:
{ {
gDropdownItemsFormat[0] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[0].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[0] = GetViewName(GuestViewType::Actions); gDropdownItems[0].Args = GetViewName(GuestViewType::Actions);
gDropdownItemsFormat[1] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[1].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[1] = GetViewName(GuestViewType::Thoughts); gDropdownItems[1].Args = GetViewName(GuestViewType::Thoughts);
auto* widget = &widgets[widgetIndex - 1]; auto* widget = &widgets[widgetIndex - 1];
WindowDropdownShowTextCustomWidth( WindowDropdownShowTextCustomWidth(

View File

@ -305,8 +305,8 @@ static void WindowMultiplayerGroupsShowGroupDropdown(rct_window* w, rct_widget*
for (i = 0; i < network_get_num_groups(); i++) for (i = 0; i < network_get_num_groups(); i++)
{ {
gDropdownItemsFormat[i] = STR_OPTIONS_DROPDOWN_ITEM; gDropdownItems[i].Format = STR_OPTIONS_DROPDOWN_ITEM;
gDropdownItemsArgs[i] = reinterpret_cast<uintptr_t>(network_get_group_name(i)); gDropdownItems[i].Args = reinterpret_cast<uintptr_t>(network_get_group_name(i));
} }
if (widget == &window_multiplayer_groups_widgets[WIDX_DEFAULT_GROUP_DROPDOWN]) if (widget == &window_multiplayer_groups_widgets[WIDX_DEFAULT_GROUP_DROPDOWN])
{ {

View File

@ -196,8 +196,8 @@ public:
int32_t maxSize = std::min(Dropdown::ItemsMaxSize, static_cast<int32_t>(ShopItems.size())); int32_t maxSize = std::min(Dropdown::ItemsMaxSize, static_cast<int32_t>(ShopItems.size()));
for (int32_t i = 0; i < maxSize; i++) for (int32_t i = 0; i < maxSize; i++)
{ {
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[i].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[i] = GetShopItemDescriptor(ShopItems[i]).Naming.Plural; gDropdownItems[i].Args = GetShopItemDescriptor(ShopItems[i]).Naming.Plural;
numItems++; numItems++;
} }
@ -216,15 +216,15 @@ public:
if (curRide != nullptr) if (curRide != nullptr)
{ {
// HACK until dropdown items have longer argument buffers // HACK until dropdown items have longer argument buffers
gDropdownItemsFormat[numItems] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[numItems].Format = STR_DROPDOWN_MENU_LABEL;
Formatter ft(reinterpret_cast<uint8_t*>(&gDropdownItemsArgs[numItems])); Formatter ft(reinterpret_cast<uint8_t*>(&gDropdownItems[numItems].Args));
if (curRide->custom_name.empty()) if (curRide->custom_name.empty())
{ {
curRide->FormatNameTo(ft); curRide->FormatNameTo(ft);
} }
else else
{ {
gDropdownItemsFormat[numItems] = STR_OPTIONS_DROPDOWN_ITEM; gDropdownItems[numItems].Format = STR_OPTIONS_DROPDOWN_ITEM;
ft.Add<const char*>(curRide->custom_name.c_str()); ft.Add<const char*>(curRide->custom_name.c_str());
} }
numItems++; numItems++;

View File

@ -834,9 +834,9 @@ private:
{ {
const Resolution& resolution = resolutions[i]; const Resolution& resolution = resolutions[i];
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[i].Format = STR_DROPDOWN_MENU_LABEL;
uint16_t* args = reinterpret_cast<uint16_t*>(&gDropdownItemsArgs[i]); uint16_t* args = reinterpret_cast<uint16_t*>(&gDropdownItems[i].Args);
args[0] = STR_RESOLUTION_X_BY_Y; args[0] = STR_RESOLUTION_X_BY_Y;
args[1] = resolution.Width; args[1] = resolution.Width;
args[2] = resolution.Height; args[2] = resolution.Height;
@ -858,12 +858,12 @@ private:
break; break;
case WIDX_FULLSCREEN_DROPDOWN: case WIDX_FULLSCREEN_DROPDOWN:
gDropdownItemsFormat[0] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[0].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsFormat[1] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[1].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsFormat[2] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[2].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[0] = STR_OPTIONS_DISPLAY_WINDOWED; gDropdownItems[0].Args = STR_OPTIONS_DISPLAY_WINDOWED;
gDropdownItemsArgs[1] = STR_OPTIONS_DISPLAY_FULLSCREEN; gDropdownItems[1].Args = STR_OPTIONS_DISPLAY_FULLSCREEN;
gDropdownItemsArgs[2] = STR_OPTIONS_DISPLAY_FULLSCREEN_BORDERLESS; gDropdownItems[2].Args = STR_OPTIONS_DISPLAY_FULLSCREEN_BORDERLESS;
ShowDropdown(widget, 3); ShowDropdown(widget, 3);
@ -878,8 +878,8 @@ private:
for (int32_t i = 0; i < numItems; i++) for (int32_t i = 0; i < numItems; i++)
{ {
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[i].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[i] = DrawingEngineStringIds[i]; gDropdownItems[i].Args = DrawingEngineStringIds[i];
} }
ShowDropdown(widget, numItems); ShowDropdown(widget, numItems);
Dropdown::SetChecked(EnumValue(gConfigGeneral.drawing_engine), true); Dropdown::SetChecked(EnumValue(gConfigGeneral.drawing_engine), true);
@ -1108,12 +1108,12 @@ private:
switch (widgetIndex) switch (widgetIndex)
{ {
case WIDX_VIRTUAL_FLOOR_DROPDOWN: case WIDX_VIRTUAL_FLOOR_DROPDOWN:
gDropdownItemsFormat[0] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[0].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsFormat[1] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[1].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsFormat[2] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[2].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[0] = STR_VIRTUAL_FLOOR_STYLE_DISABLED; gDropdownItems[0].Args = STR_VIRTUAL_FLOOR_STYLE_DISABLED;
gDropdownItemsArgs[1] = STR_VIRTUAL_FLOOR_STYLE_TRANSPARENT; gDropdownItems[1].Args = STR_VIRTUAL_FLOOR_STYLE_TRANSPARENT;
gDropdownItemsArgs[2] = STR_VIRTUAL_FLOOR_STYLE_GLASSY; gDropdownItems[2].Args = STR_VIRTUAL_FLOOR_STYLE_GLASSY;
rct_widget* widget = &widgets[widgetIndex - 1]; rct_widget* widget = &widgets[widgetIndex - 1];
ShowDropdown(widget, 3); ShowDropdown(widget, 3);
@ -1205,10 +1205,10 @@ private:
switch (widgetIndex) switch (widgetIndex)
{ {
case WIDX_HEIGHT_LABELS_DROPDOWN: case WIDX_HEIGHT_LABELS_DROPDOWN:
gDropdownItemsFormat[0] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[0].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsFormat[1] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[1].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[0] = STR_HEIGHT_IN_UNITS; gDropdownItems[0].Args = STR_HEIGHT_IN_UNITS;
gDropdownItemsArgs[1] = STR_REAL_VALUES; gDropdownItems[1].Args = STR_REAL_VALUES;
ShowDropdown(widget, 2); ShowDropdown(widget, 2);
@ -1224,14 +1224,14 @@ private:
for (size_t i = 0; i < numOrdinaryCurrencies; i++) for (size_t i = 0; i < numOrdinaryCurrencies; i++)
{ {
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[i].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[i] = CurrencyDescriptors[i].stringId; gDropdownItems[i].Args = CurrencyDescriptors[i].stringId;
} }
gDropdownItemsFormat[numOrdinaryCurrencies] = Dropdown::SeparatorString; gDropdownItems[numOrdinaryCurrencies].Format = Dropdown::SeparatorString;
gDropdownItemsFormat[numOrdinaryCurrencies + 1] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[numOrdinaryCurrencies + 1].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[numOrdinaryCurrencies + 1] = CurrencyDescriptors[EnumValue(CurrencyType::Custom)].stringId; gDropdownItems[numOrdinaryCurrencies + 1].Args = CurrencyDescriptors[EnumValue(CurrencyType::Custom)].stringId;
ShowDropdown(widget, numItems); ShowDropdown(widget, numItems);
@ -1246,22 +1246,22 @@ private:
break; break;
} }
case WIDX_DISTANCE_DROPDOWN: case WIDX_DISTANCE_DROPDOWN:
gDropdownItemsFormat[0] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[0].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsFormat[1] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[1].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsFormat[2] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[2].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[0] = STR_IMPERIAL; gDropdownItems[0].Args = STR_IMPERIAL;
gDropdownItemsArgs[1] = STR_METRIC; gDropdownItems[1].Args = STR_METRIC;
gDropdownItemsArgs[2] = STR_SI; gDropdownItems[2].Args = STR_SI;
ShowDropdown(widget, 3); ShowDropdown(widget, 3);
Dropdown::SetChecked(static_cast<int32_t>(gConfigGeneral.measurement_format), true); Dropdown::SetChecked(static_cast<int32_t>(gConfigGeneral.measurement_format), true);
break; break;
case WIDX_TEMPERATURE_DROPDOWN: case WIDX_TEMPERATURE_DROPDOWN:
gDropdownItemsFormat[0] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[0].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsFormat[1] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[1].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[0] = STR_CELSIUS; gDropdownItems[0].Args = STR_CELSIUS;
gDropdownItemsArgs[1] = STR_FAHRENHEIT; gDropdownItems[1].Args = STR_FAHRENHEIT;
ShowDropdown(widget, 2); ShowDropdown(widget, 2);
@ -1270,8 +1270,8 @@ private:
case WIDX_LANGUAGE_DROPDOWN: case WIDX_LANGUAGE_DROPDOWN:
for (size_t i = 1; i < LANGUAGE_COUNT; i++) for (size_t i = 1; i < LANGUAGE_COUNT; i++)
{ {
gDropdownItemsFormat[i - 1] = STR_OPTIONS_DROPDOWN_ITEM; gDropdownItems[i - 1].Format = STR_OPTIONS_DROPDOWN_ITEM;
gDropdownItemsArgs[i - 1] = reinterpret_cast<uintptr_t>(LanguagesDescriptors[i].native_name); gDropdownItems[i - 1].Args = reinterpret_cast<uintptr_t>(LanguagesDescriptors[i].native_name);
} }
ShowDropdown(widget, LANGUAGE_COUNT - 1); ShowDropdown(widget, LANGUAGE_COUNT - 1);
Dropdown::SetChecked(LocalisationService_GetCurrentLanguage() - 1, true); Dropdown::SetChecked(LocalisationService_GetCurrentLanguage() - 1, true);
@ -1279,8 +1279,8 @@ private:
case WIDX_DATE_FORMAT_DROPDOWN: case WIDX_DATE_FORMAT_DROPDOWN:
for (size_t i = 0; i < 4; i++) for (size_t i = 0; i < 4; i++)
{ {
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[i].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[i] = DateFormatStringIds[i]; gDropdownItems[i].Args = DateFormatStringIds[i];
} }
ShowDropdown(widget, 4); ShowDropdown(widget, 4);
Dropdown::SetChecked(gConfigGeneral.date_format, true); Dropdown::SetChecked(gConfigGeneral.date_format, true);
@ -1473,8 +1473,8 @@ private:
// populate the list with the sound devices // populate the list with the sound devices
for (int32_t i = 0; i < OpenRCT2::Audio::GetDeviceCount(); i++) for (int32_t i = 0; i < OpenRCT2::Audio::GetDeviceCount(); i++)
{ {
gDropdownItemsFormat[i] = STR_OPTIONS_DROPDOWN_ITEM; gDropdownItems[i].Format = STR_OPTIONS_DROPDOWN_ITEM;
gDropdownItemsArgs[i] = reinterpret_cast<uintptr_t>(OpenRCT2::Audio::GetDeviceName(i).c_str()); gDropdownItems[i].Args = reinterpret_cast<uintptr_t>(OpenRCT2::Audio::GetDeviceName(i).c_str());
} }
ShowDropdown(widget, OpenRCT2::Audio::GetDeviceCount()); ShowDropdown(widget, OpenRCT2::Audio::GetDeviceCount());
@ -1486,8 +1486,8 @@ private:
for (size_t i = 0; i < numItems; i++) for (size_t i = 0; i < numItems; i++)
{ {
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[i].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[i] = TitleMusicNames[i]; gDropdownItems[i].Args = TitleMusicNames[i];
} }
ShowDropdown(widget, numItems); ShowDropdown(widget, numItems);
@ -1721,8 +1721,8 @@ private:
for (size_t i = 0; i < numItems; i++) for (size_t i = 0; i < numItems; i++)
{ {
gDropdownItemsFormat[i] = STR_OPTIONS_DROPDOWN_ITEM; gDropdownItems[i].Format = STR_OPTIONS_DROPDOWN_ITEM;
gDropdownItemsArgs[i] = reinterpret_cast<uintptr_t>(ThemeManagerGetAvailableThemeName(i)); gDropdownItems[i].Args = reinterpret_cast<uintptr_t>(ThemeManagerGetAvailableThemeName(i));
} }
WindowDropdownShowTextCustomWidth( WindowDropdownShowTextCustomWidth(
@ -1842,8 +1842,8 @@ private:
uint32_t numItems = static_cast<int32_t>(title_sequence_manager_get_count()); uint32_t numItems = static_cast<int32_t>(title_sequence_manager_get_count());
for (size_t i = 0; i < numItems; i++) for (size_t i = 0; i < numItems; i++)
{ {
gDropdownItemsFormat[i] = STR_OPTIONS_DROPDOWN_ITEM; gDropdownItems[i].Format = STR_OPTIONS_DROPDOWN_ITEM;
gDropdownItemsArgs[i] = reinterpret_cast<uintptr_t>(title_sequence_manager_get_name(i)); gDropdownItems[i].Args = reinterpret_cast<uintptr_t>(title_sequence_manager_get_name(i));
} }
WindowDropdownShowText( WindowDropdownShowText(
@ -1857,10 +1857,10 @@ private:
{ {
uint32_t numItems = 2; uint32_t numItems = 2;
gDropdownItemsFormat[0] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[0].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[0] = STR_OPTIONS_SCENARIO_DIFFICULTY; gDropdownItems[0].Args = STR_OPTIONS_SCENARIO_DIFFICULTY;
gDropdownItemsFormat[1] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[1].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[1] = STR_OPTIONS_SCENARIO_ORIGIN; gDropdownItems[1].Args = STR_OPTIONS_SCENARIO_ORIGIN;
WindowDropdownShowTextCustomWidth( WindowDropdownShowTextCustomWidth(
{ windowPos.x + widget->left, windowPos.y + widget->top }, widget->height() + 1, colours[1], 0, { windowPos.x + widget->left, windowPos.y + widget->top }, widget->height() + 1, colours[1], 0,
@ -1872,8 +1872,8 @@ private:
case WIDX_DEFAULT_INSPECTION_INTERVAL_DROPDOWN: case WIDX_DEFAULT_INSPECTION_INTERVAL_DROPDOWN:
for (size_t i = 0; i < 7; i++) for (size_t i = 0; i < 7; i++)
{ {
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[i].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[i] = RideInspectionIntervalNames[i]; gDropdownItems[i].Args = RideInspectionIntervalNames[i];
} }
ShowDropdown(widget, 7); ShowDropdown(widget, 7);
@ -2076,8 +2076,8 @@ private:
case WIDX_AUTOSAVE_DROPDOWN: case WIDX_AUTOSAVE_DROPDOWN:
for (size_t i = AUTOSAVE_EVERY_MINUTE; i <= AUTOSAVE_NEVER; i++) for (size_t i = AUTOSAVE_EVERY_MINUTE; i <= AUTOSAVE_NEVER; i++)
{ {
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[i].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[i] = AutosaveNames[i]; gDropdownItems[i].Args = AutosaveNames[i];
} }
ShowDropdown(widget, AUTOSAVE_NEVER + 1); ShowDropdown(widget, AUTOSAVE_NEVER + 1);

View File

@ -545,10 +545,10 @@ static void WindowParkEntranceMousedown(rct_window* w, rct_widgetindex widgetInd
{ {
if (widgetIndex == WIDX_OPEN_OR_CLOSE) if (widgetIndex == WIDX_OPEN_OR_CLOSE)
{ {
gDropdownItemsFormat[0] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[0].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsFormat[1] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[1].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[0] = STR_CLOSE_PARK; gDropdownItems[0].Args = STR_CLOSE_PARK;
gDropdownItemsArgs[1] = STR_OPEN_PARK; gDropdownItems[1].Args = STR_OPEN_PARK;
WindowDropdownShowText( WindowDropdownShowText(
{ w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[1], 0, 2); { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[1], 0, 2);

View File

@ -204,8 +204,8 @@ static void WindowPlayerOverviewShowGroupDropdown(rct_window* w, rct_widget* wid
for (i = 0; i < network_get_num_groups(); i++) for (i = 0; i < network_get_num_groups(); i++)
{ {
gDropdownItemsFormat[i] = STR_OPTIONS_DROPDOWN_ITEM; gDropdownItems[i].Format = STR_OPTIONS_DROPDOWN_ITEM;
gDropdownItemsArgs[i] = reinterpret_cast<uintptr_t>(network_get_group_name(i)); gDropdownItems[i].Args = reinterpret_cast<uintptr_t>(network_get_group_name(i));
} }
Dropdown::SetChecked(network_get_group_index(network_get_player_group(player)), true); Dropdown::SetChecked(network_get_group_index(network_get_player_group(player)), true);

View File

@ -460,8 +460,8 @@ static void WindowResearchFundingMousedown(rct_window* w, rct_widgetindex widget
for (i = 0; i < 4; i++) for (i = 0; i < 4; i++)
{ {
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[i].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[i] = ResearchFundingLevelNames[i]; gDropdownItems[i].Args = ResearchFundingLevelNames[i];
} }
WindowDropdownShowTextCustomWidth( WindowDropdownShowTextCustomWidth(
{ w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1, { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1,

View File

@ -1833,8 +1833,8 @@ static void WindowRideShowViewDropdown(rct_window* w, rct_widget* widget)
w->colours[1], 0, 0, numItems, widget->right - dropdownWidget->left); w->colours[1], 0, 0, numItems, widget->right - dropdownWidget->left);
// First item // First item
gDropdownItemsFormat[0] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[0].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[0] = STR_OVERALL_VIEW; gDropdownItems[0].Args = STR_OVERALL_VIEW;
int32_t currentItem = 1; int32_t currentItem = 1;
const auto& rtd = ride->GetRideTypeDescriptor(); const auto& rtd = ride->GetRideTypeDescriptor();
@ -1843,8 +1843,8 @@ static void WindowRideShowViewDropdown(rct_window* w, rct_widget* widget)
int32_t name = GetRideComponentName(rtd.NameConvention.vehicle).number; int32_t name = GetRideComponentName(rtd.NameConvention.vehicle).number;
for (int32_t i = 1; i <= ride->num_vehicles; i++) for (int32_t i = 1; i <= ride->num_vehicles; i++)
{ {
gDropdownItemsFormat[currentItem] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[currentItem].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[currentItem] = name | (currentItem << 16); gDropdownItems[currentItem].Args = name | (currentItem << 16);
currentItem++; currentItem++;
} }
@ -1852,8 +1852,8 @@ static void WindowRideShowViewDropdown(rct_window* w, rct_widget* widget)
name = GetRideComponentName(rtd.NameConvention.station).number; name = GetRideComponentName(rtd.NameConvention.station).number;
for (int32_t i = 1; i <= ride->num_stations; i++) for (int32_t i = 1; i <= ride->num_stations; i++)
{ {
gDropdownItemsFormat[currentItem] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[currentItem].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[currentItem] = name | (i << 16); gDropdownItems[currentItem].Args = name | (i << 16);
currentItem++; currentItem++;
} }
@ -1913,8 +1913,8 @@ static void WindowRideSetDropdown(RideStatusDropdownInfo& info, RideStatus statu
if (info.Ride->SupportsStatus(status)) if (info.Ride->SupportsStatus(status))
{ {
auto index = info.NumItems; auto index = info.NumItems;
gDropdownItemsFormat[index] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[index].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[index] = text; gDropdownItems[index].Args = text;
if (info.CurrentStatus == status) if (info.CurrentStatus == status)
{ {
info.CheckedIndex = index; info.CheckedIndex = index;
@ -2006,8 +2006,8 @@ static void WindowRideShowRideTypeDropdown(rct_window* w, rct_widget* widget)
for (size_t i = 0; i < RideDropdownData.size(); i++) for (size_t i = 0; i < RideDropdownData.size(); i++)
{ {
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[i].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[i] = RideDropdownData[i].label_id; gDropdownItems[i].Args = RideDropdownData[i].label_id;
} }
rct_widget* dropdownWidget = widget - 1; rct_widget* dropdownWidget = widget - 1;
@ -2037,8 +2037,8 @@ static void WindowRideShowLocateDropdown(rct_window* w, rct_widget* widget)
if (ride == nullptr) if (ride == nullptr)
return; return;
gDropdownItemsFormat[0] = STR_LOCATE_SUBJECT_TIP; gDropdownItems[0].Format = STR_LOCATE_SUBJECT_TIP;
gDropdownItemsFormat[1] = STR_FOLLOW_SUBJECT_TIP; gDropdownItems[1].Format = STR_FOLLOW_SUBJECT_TIP;
WindowDropdownShowText( WindowDropdownShowText(
{ w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[1], 0, 2); { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[1], 0, 2);
@ -2149,8 +2149,8 @@ static void WindowRideShowVehicleTypeDropdown(rct_window* w, rct_widget* widget)
for (size_t i = 0; i < numItems; i++) for (size_t i = 0; i < numItems; i++)
{ {
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[i].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[i] = VehicleDropdownData[i].label_id; gDropdownItems[i].Args = VehicleDropdownData[i].label_id;
} }
rct_widget* dropdownWidget = widget - 1; rct_widget* dropdownWidget = widget - 1;
@ -2238,9 +2238,9 @@ static void WindowRideMainDropdown(rct_window* w, rct_widgetindex widgetIndex, i
{ {
dropdownIndex = gDropdownHighlightedIndex; dropdownIndex = gDropdownHighlightedIndex;
} }
if (dropdownIndex < static_cast<int32_t>(std::size(gDropdownItemsArgs))) if (dropdownIndex < static_cast<int32_t>(std::size(gDropdownItems)))
{ {
switch (gDropdownItemsArgs[dropdownIndex]) switch (gDropdownItems[dropdownIndex].Args)
{ {
case STR_CLOSE_RIDE: case STR_CLOSE_RIDE:
status = RideStatus::Closed; status = RideStatus::Closed;
@ -3181,8 +3181,8 @@ static void WindowRideModeDropdown(rct_window* w, rct_widget* widget)
{ {
if (availableModes & (1ULL << i)) if (availableModes & (1ULL << i))
{ {
gDropdownItemsFormat[numAvailableModes] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[numAvailableModes].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[numAvailableModes] = RideModeNames[i]; gDropdownItems[numAvailableModes].Args = RideModeNames[i];
if (ride->mode == static_cast<RideMode>(i)) if (ride->mode == static_cast<RideMode>(i))
checkedIndex = numAvailableModes; checkedIndex = numAvailableModes;
@ -3214,8 +3214,8 @@ static void WindowRideLoadDropdown(rct_window* w, rct_widget* widget)
auto dropdownWidget = widget - 1; auto dropdownWidget = widget - 1;
for (auto i = 0; i < 5; i++) for (auto i = 0; i < 5; i++)
{ {
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[i].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[i] = VehicleLoadNames[i]; gDropdownItems[i].Args = VehicleLoadNames[i];
} }
WindowDropdownShowTextCustomWidth( WindowDropdownShowTextCustomWidth(
{ w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1, { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1,
@ -3824,8 +3824,8 @@ static void WindowRideMaintenanceMousedown(rct_window* w, rct_widgetindex widget
dropdownWidget--; dropdownWidget--;
for (int32_t i = 0; i < 7; i++) for (int32_t i = 0; i < 7; i++)
{ {
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[i].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[i] = RideInspectionIntervalNames[i]; gDropdownItems[i].Args = RideInspectionIntervalNames[i];
} }
WindowDropdownShowTextCustomWidth( WindowDropdownShowTextCustomWidth(
{ w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1, { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1,
@ -3841,8 +3841,8 @@ static void WindowRideMaintenanceMousedown(rct_window* w, rct_widgetindex widget
if (rideEntry->ride_type[j] != RIDE_TYPE_NULL) if (rideEntry->ride_type[j] != RIDE_TYPE_NULL)
break; break;
} }
gDropdownItemsFormat[0] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[0].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[0] = STR_DEBUG_FIX_RIDE; gDropdownItems[0].Args = STR_DEBUG_FIX_RIDE;
for (int32_t i = 0; i < 8; i++) for (int32_t i = 0; i < 8; i++)
{ {
assert(j < static_cast<int32_t>(std::size(rideEntry->ride_type))); assert(j < static_cast<int32_t>(std::size(rideEntry->ride_type)));
@ -3853,8 +3853,8 @@ static void WindowRideMaintenanceMousedown(rct_window* w, rct_widgetindex widget
if (ride->num_vehicles != 1) if (ride->num_vehicles != 1)
continue; continue;
} }
gDropdownItemsFormat[num_items] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[num_items].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[num_items] = RideBreakdownReasonNames[i]; gDropdownItems[num_items].Args = RideBreakdownReasonNames[i];
num_items++; num_items++;
} }
} }
@ -3886,8 +3886,8 @@ static void WindowRideMaintenanceMousedown(rct_window* w, rct_widgetindex widget
Dropdown::SetChecked(num_items, true); Dropdown::SetChecked(num_items, true);
break; break;
} }
gDropdownItemsFormat[num_items] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[num_items].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[num_items] = RideBreakdownReasonNames[i]; gDropdownItems[num_items].Args = RideBreakdownReasonNames[i];
num_items++; num_items++;
} }
} }
@ -4331,8 +4331,8 @@ static void WindowRideColourMousedown(rct_window* w, rct_widgetindex widgetIndex
case WIDX_TRACK_COLOUR_SCHEME_DROPDOWN: case WIDX_TRACK_COLOUR_SCHEME_DROPDOWN:
for (i = 0; i < OpenRCT2::Limits::NumColourSchemes; i++) for (i = 0; i < OpenRCT2::Limits::NumColourSchemes; i++)
{ {
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[i].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[i] = ColourSchemeNames[i]; gDropdownItems[i].Args = ColourSchemeNames[i];
} }
WindowDropdownShowTextCustomWidth( WindowDropdownShowTextCustomWidth(
@ -4353,8 +4353,8 @@ static void WindowRideColourMousedown(rct_window* w, rct_widgetindex widgetIndex
case WIDX_MAZE_STYLE_DROPDOWN: case WIDX_MAZE_STYLE_DROPDOWN:
for (i = 0; i < 4; i++) for (i = 0; i < 4; i++)
{ {
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[i].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[i] = MazeOptions[i].text; gDropdownItems[i].Args = MazeOptions[i].text;
} }
WindowDropdownShowTextCustomWidth( WindowDropdownShowTextCustomWidth(
@ -4372,11 +4372,11 @@ static void WindowRideColourMousedown(rct_window* w, rct_widgetindex widgetIndex
auto stationObj = static_cast<StationObject*>(objManager.GetLoadedObject(ObjectType::Station, i)); auto stationObj = static_cast<StationObject*>(objManager.GetLoadedObject(ObjectType::Station, i));
if (stationObj != nullptr) if (stationObj != nullptr)
{ {
gDropdownItemsFormat[ddIndex] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[ddIndex].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[ddIndex] = stationObj->NameStringId; gDropdownItems[ddIndex].Args = stationObj->NameStringId;
if (ride->entrance_style == i) if (ride->entrance_style == i)
{ {
gDropdownItemsFormat[ddIndex] = STR_DROPDOWN_MENU_LABEL_SELECTED; gDropdownItems[ddIndex].Format = STR_DROPDOWN_MENU_LABEL_SELECTED;
} }
ddIndex++; ddIndex++;
} }
@ -4390,9 +4390,9 @@ static void WindowRideColourMousedown(rct_window* w, rct_widgetindex widgetIndex
case WIDX_VEHICLE_COLOUR_SCHEME_DROPDOWN: case WIDX_VEHICLE_COLOUR_SCHEME_DROPDOWN:
for (i = 0; i < 3; i++) for (i = 0; i < 3; i++)
{ {
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[i].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[i] = (GetRideComponentName(ride->GetRideTypeDescriptor().NameConvention.vehicle).singular gDropdownItems[i].Args = (GetRideComponentName(ride->GetRideTypeDescriptor().NameConvention.vehicle).singular
<< 16) << 16)
| VehicleColourSchemeNames[i]; | VehicleColourSchemeNames[i];
} }
@ -4412,8 +4412,8 @@ static void WindowRideColourMousedown(rct_window* w, rct_widgetindex widgetIndex
: STR_RIDE_COLOUR_VEHICLE_OPTION; : STR_RIDE_COLOUR_VEHICLE_OPTION;
for (i = 0; i < std::min(numItems, Dropdown::ItemsMaxSize); i++) for (i = 0; i < std::min(numItems, Dropdown::ItemsMaxSize); i++)
{ {
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[i].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[i] = (static_cast<int64_t>(i + 1) << 32) gDropdownItems[i].Args = (static_cast<int64_t>(i + 1) << 32)
| ((GetRideComponentName(ride->GetRideTypeDescriptor().NameConvention.vehicle).capitalised) << 16) | ((GetRideComponentName(ride->GetRideTypeDescriptor().NameConvention.vehicle).capitalised) << 16)
| stringId; | stringId;
} }
@ -5107,8 +5107,8 @@ static void WindowRideMusicMousedown(rct_window* w, rct_widgetindex widgetIndex,
for (size_t i = 0; i < numItems; i++) for (size_t i = 0; i < numItems; i++)
{ {
auto musicObj = static_cast<MusicObject*>(objManager.GetLoadedObject(ObjectType::Music, musicOrder[i])); auto musicObj = static_cast<MusicObject*>(objManager.GetLoadedObject(ObjectType::Music, musicOrder[i]));
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[i].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[i] = musicObj->NameStringId; gDropdownItems[i].Args = musicObj->NameStringId;
} }
WindowDropdownShowTextCustomWidth( WindowDropdownShowTextCustomWidth(
@ -5415,8 +5415,8 @@ static void WindowRideMeasurementsMousedown(rct_window* w, rct_widgetindex widge
if (ride == nullptr) if (ride == nullptr)
return; return;
gDropdownItemsFormat[0] = STR_SAVE_TRACK_DESIGN_ITEM; gDropdownItems[0].Format = STR_SAVE_TRACK_DESIGN_ITEM;
gDropdownItemsFormat[1] = STR_SAVE_TRACK_DESIGN_WITH_SCENERY_ITEM; gDropdownItems[1].Format = STR_SAVE_TRACK_DESIGN_WITH_SCENERY_ITEM;
WindowDropdownShowText( WindowDropdownShowText(
{ w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[1], { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[1],

View File

@ -3079,7 +3079,7 @@ static void WindowRideConstructionShowSpecialTrackDropdown(rct_window* w, rct_wi
if (ride != nullptr && (ride->type == RIDE_TYPE_MONSTER_TRUCKS || ride->type == RIDE_TYPE_CAR_RIDE)) if (ride != nullptr && (ride->type == RIDE_TYPE_MONSTER_TRUCKS || ride->type == RIDE_TYPE_CAR_RIDE))
trackPieceStringId = STR_LOG_BUMPS; trackPieceStringId = STR_LOG_BUMPS;
} }
gDropdownItemsFormat[i] = trackPieceStringId; gDropdownItems[i].Format = trackPieceStringId;
if ((trackPiece | RideConstructionSpecialPieceSelected) == _currentTrackCurve) if ((trackPiece | RideConstructionSpecialPieceSelected) == _currentTrackCurve)
{ {
defaultIndex = i; defaultIndex = i;

View File

@ -264,8 +264,8 @@ public:
if (widgetIndex == WIDX_OPEN_CLOSE_ALL) if (widgetIndex == WIDX_OPEN_CLOSE_ALL)
{ {
const auto& widget = widgets[widgetIndex]; const auto& widget = widgets[widgetIndex];
gDropdownItemsFormat[0] = STR_CLOSE_ALL; gDropdownItems[0].Format = STR_CLOSE_ALL;
gDropdownItemsFormat[1] = STR_OPEN_ALL; gDropdownItems[1].Format = STR_OPEN_ALL;
WindowDropdownShowText({ windowPos.x + widget.left, windowPos.y + widget.top }, widget.height(), colours[1], 0, 2); WindowDropdownShowText({ windowPos.x + widget.left, windowPos.y + widget.top }, widget.height(), colours[1], 0, 2);
} }
else if (widgetIndex == WIDX_INFORMATION_TYPE_DROPDOWN) else if (widgetIndex == WIDX_INFORMATION_TYPE_DROPDOWN)
@ -295,8 +295,8 @@ public:
selectedIndex = numItems; selectedIndex = numItems;
} }
gDropdownItemsFormat[numItems] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[numItems].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[numItems] = ride_info_type_string_mapping[type]; gDropdownItems[numItems].Args = ride_info_type_string_mapping[type];
numItems++; numItems++;
} }
@ -335,7 +335,7 @@ public:
return; return;
int32_t informationType = INFORMATION_TYPE_STATUS; int32_t informationType = INFORMATION_TYPE_STATUS;
uint32_t arg = static_cast<uint32_t>(gDropdownItemsArgs[dropdownIndex]); uint32_t arg = static_cast<uint32_t>(gDropdownItems[dropdownIndex].Args);
for (size_t i = 0; i < std::size(ride_info_type_string_mapping); i++) for (size_t i = 0; i < std::size(ride_info_type_string_mapping); i++)
{ {
if (arg == ride_info_type_string_mapping[i]) if (arg == ride_info_type_string_mapping[i])

View File

@ -263,14 +263,14 @@ static void WindowServerListScrollMousedown(rct_window* w, int32_t scrollIndex,
const auto& listWidget = w->widgets[WIDX_LIST]; const auto& listWidget = w->widgets[WIDX_LIST];
gDropdownItemsFormat[0] = STR_JOIN_GAME; gDropdownItems[0].Format = STR_JOIN_GAME;
if (server.Favourite) if (server.Favourite)
{ {
gDropdownItemsFormat[1] = STR_REMOVE_FROM_FAVOURITES; gDropdownItems[1].Format = STR_REMOVE_FROM_FAVOURITES;
} }
else else
{ {
gDropdownItemsFormat[1] = STR_ADD_TO_FAVOURITES; gDropdownItems[1].Format = STR_ADD_TO_FAVOURITES;
} }
auto dropdownPos = ScreenCoordsXY{ w->windowPos.x + listWidget.left + screenCoords.x + 2 - w->scrolls[0].h_left, auto dropdownPos = ScreenCoordsXY{ w->windowPos.x + listWidget.left + screenCoords.x + 2 - w->scrolls[0].h_left,
w->windowPos.y + listWidget.top + screenCoords.y + 2 - w->scrolls[0].v_top }; w->windowPos.y + listWidget.top + screenCoords.y + 2 - w->scrolls[0].v_top };

View File

@ -517,8 +517,8 @@ void WindowStaffOverviewMousedown(rct_window* w, rct_widgetindex widgetIndex, rc
case WIDX_PATROL: case WIDX_PATROL:
{ {
// Dropdown names // Dropdown names
gDropdownItemsFormat[0] = STR_SET_PATROL_AREA; gDropdownItems[0].Format = STR_SET_PATROL_AREA;
gDropdownItemsFormat[1] = STR_CLEAR_PATROL_AREA; gDropdownItems[1].Format = STR_CLEAR_PATROL_AREA;
auto dropdownPos = ScreenCoordsXY{ widget->left + w->windowPos.x, widget->top + w->windowPos.y }; auto dropdownPos = ScreenCoordsXY{ widget->left + w->windowPos.x, widget->top + w->windowPos.y };
int32_t extray = widget->height() + 1; int32_t extray = widget->height() + 1;
@ -591,8 +591,8 @@ void WindowStaffOverviewDropdown(rct_window* w, rct_widgetindex widgetIndex, int
static void WindowStaffShowLocateDropdown(rct_window* w, rct_widget* widget) static void WindowStaffShowLocateDropdown(rct_window* w, rct_widget* widget)
{ {
gDropdownItemsFormat[0] = STR_LOCATE_SUBJECT_TIP; gDropdownItems[0].Format = STR_LOCATE_SUBJECT_TIP;
gDropdownItemsFormat[1] = STR_FOLLOW_SUBJECT_TIP; gDropdownItems[1].Format = STR_FOLLOW_SUBJECT_TIP;
WindowDropdownShowText( WindowDropdownShowText(
{ w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[1], 0, 2); { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[1], 0, 2);
@ -1426,8 +1426,8 @@ void WindowStaffOptionsMousedown(rct_window* w, rct_widgetindex widgetIndex, rct
{ {
checkedIndex = i; checkedIndex = i;
} }
gDropdownItemsArgs[i] = StaffCostumeNames[static_cast<uint8_t>(costume)]; gDropdownItems[i].Args = StaffCostumeNames[static_cast<uint8_t>(costume)];
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[i].Format = STR_DROPDOWN_MENU_LABEL;
} }
// Get the dropdown box widget instead of button. // Get the dropdown box widget instead of button.

View File

@ -511,8 +511,8 @@ static void WindowThemesMousedown(rct_window* w, rct_widgetindex widgetIndex, rc
widget--; widget--;
for (int32_t i = 0; i < num_items; i++) for (int32_t i = 0; i < num_items; i++)
{ {
gDropdownItemsFormat[i] = STR_OPTIONS_DROPDOWN_ITEM; gDropdownItems[i].Format = STR_OPTIONS_DROPDOWN_ITEM;
gDropdownItemsArgs[i] = reinterpret_cast<uintptr_t>(ThemeManagerGetAvailableThemeName(i)); gDropdownItems[i].Args = reinterpret_cast<uintptr_t>(ThemeManagerGetAvailableThemeName(i));
} }
WindowDropdownShowTextCustomWidth( WindowDropdownShowTextCustomWidth(

View File

@ -1117,12 +1117,12 @@ static void WindowTileInspectorMousedown(rct_window* w, rct_widgetindex widgetIn
widget--; widget--;
// Fill dropdown list // Fill dropdown list
gDropdownItemsFormat[0] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[0].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsFormat[1] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[1].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsFormat[2] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[2].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[0] = STR_TILE_INSPECTOR_WALL_FLAT; gDropdownItems[0].Args = STR_TILE_INSPECTOR_WALL_FLAT;
gDropdownItemsArgs[1] = STR_TILE_INSPECTOR_WALL_SLOPED_LEFT; gDropdownItems[1].Args = STR_TILE_INSPECTOR_WALL_SLOPED_LEFT;
gDropdownItemsArgs[2] = STR_TILE_INSPECTOR_WALL_SLOPED_RIGHT; gDropdownItems[2].Args = STR_TILE_INSPECTOR_WALL_SLOPED_RIGHT;
WindowDropdownShowTextCustomWidth( WindowDropdownShowTextCustomWidth(
{ w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[1], 0, { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[1], 0,
Dropdown::Flag::StayOpen, 3, widget->width() - 3); Dropdown::Flag::StayOpen, 3, widget->width() - 3);

View File

@ -376,8 +376,8 @@ static void WindowTitleCommandEditorMousedown(rct_window* w, rct_widgetindex wid
size_t numItems = NUM_COMMANDS; size_t numItems = NUM_COMMANDS;
for (size_t i = 0; i < numItems; i++) for (size_t i = 0; i < numItems; i++)
{ {
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[i].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[i] = _window_title_command_editor_orders[i].nameStringId; gDropdownItems[i].Args = _window_title_command_editor_orders[i].nameStringId;
} }
WindowDropdownShowTextCustomWidth( WindowDropdownShowTextCustomWidth(
@ -393,8 +393,8 @@ static void WindowTitleCommandEditorMousedown(rct_window* w, rct_widgetindex wid
int32_t numItems = 4; int32_t numItems = 4;
for (int32_t i = 0; i < numItems; i++) for (int32_t i = 0; i < numItems; i++)
{ {
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL; gDropdownItems[i].Format = STR_DROPDOWN_MENU_LABEL;
gDropdownItemsArgs[i] = SpeedNames[i]; gDropdownItems[i].Args = SpeedNames[i];
} }
WindowDropdownShowTextCustomWidth( WindowDropdownShowTextCustomWidth(
@ -408,8 +408,8 @@ static void WindowTitleCommandEditorMousedown(rct_window* w, rct_widgetindex wid
int32_t numItems = static_cast<int32_t>(_sequence->Saves.size()); int32_t numItems = static_cast<int32_t>(_sequence->Saves.size());
for (int32_t i = 0; i < numItems; i++) for (int32_t i = 0; i < numItems; i++)
{ {
gDropdownItemsFormat[i] = STR_OPTIONS_DROPDOWN_ITEM; gDropdownItems[i].Format = STR_OPTIONS_DROPDOWN_ITEM;
gDropdownItemsArgs[i] = reinterpret_cast<uintptr_t>(_sequence->Saves[i].c_str()); gDropdownItems[i].Args = reinterpret_cast<uintptr_t>(_sequence->Saves[i].c_str());
} }
WindowDropdownShowTextCustomWidth( WindowDropdownShowTextCustomWidth(

View File

@ -533,8 +533,8 @@ static void WindowTitleEditorMousedown(rct_window* w, rct_widgetindex widgetInde
int32_t numItems = static_cast<int32_t>(title_sequence_manager_get_count()); int32_t numItems = static_cast<int32_t>(title_sequence_manager_get_count());
for (int32_t i = 0; i < numItems; i++) for (int32_t i = 0; i < numItems; i++)
{ {
gDropdownItemsFormat[i] = STR_OPTIONS_DROPDOWN_ITEM; gDropdownItems[i].Format = STR_OPTIONS_DROPDOWN_ITEM;
gDropdownItemsArgs[i] = reinterpret_cast<uintptr_t>(title_sequence_manager_get_name(i)); gDropdownItems[i].Args = reinterpret_cast<uintptr_t>(title_sequence_manager_get_name(i));
} }
widget--; widget--;

View File

@ -172,11 +172,11 @@ static void WindowTitleMenuMousedown(rct_window* w, rct_widgetindex widgetIndex,
{ {
if (widgetIndex == WIDX_GAME_TOOLS) if (widgetIndex == WIDX_GAME_TOOLS)
{ {
gDropdownItemsFormat[0] = STR_SCENARIO_EDITOR; gDropdownItems[0].Format = STR_SCENARIO_EDITOR;
gDropdownItemsFormat[1] = STR_CONVERT_SAVED_GAME_TO_SCENARIO; gDropdownItems[1].Format = STR_CONVERT_SAVED_GAME_TO_SCENARIO;
gDropdownItemsFormat[2] = STR_ROLLER_COASTER_DESIGNER; gDropdownItems[2].Format = STR_ROLLER_COASTER_DESIGNER;
gDropdownItemsFormat[3] = STR_TRACK_DESIGNS_MANAGER; gDropdownItems[3].Format = STR_TRACK_DESIGNS_MANAGER;
gDropdownItemsFormat[4] = STR_OPEN_USER_CONTENT_FOLDER; gDropdownItems[4].Format = STR_OPEN_USER_CONTENT_FOLDER;
WindowDropdownShowText( WindowDropdownShowText(
{ w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, TRANSLUCENT(w->colours[0]), { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, TRANSLUCENT(w->colours[0]),
Dropdown::Flag::StayOpen, 5); Dropdown::Flag::StayOpen, 5);

View File

@ -439,64 +439,64 @@ static void WindowTopToolbarMousedown(rct_window* w, rct_widgetindex widgetIndex
case WIDX_FILE_MENU: case WIDX_FILE_MENU:
if (gScreenFlags & (SCREEN_FLAGS_TRACK_DESIGNER | SCREEN_FLAGS_TRACK_MANAGER)) if (gScreenFlags & (SCREEN_FLAGS_TRACK_DESIGNER | SCREEN_FLAGS_TRACK_MANAGER))
{ {
gDropdownItemsFormat[numItems++] = STR_ABOUT; gDropdownItems[numItems++].Format = STR_ABOUT;
gDropdownItemsFormat[numItems++] = STR_OPTIONS; gDropdownItems[numItems++].Format = STR_OPTIONS;
gDropdownItemsFormat[numItems++] = STR_SCREENSHOT; gDropdownItems[numItems++].Format = STR_SCREENSHOT;
gDropdownItemsFormat[numItems++] = STR_GIANT_SCREENSHOT; gDropdownItems[numItems++].Format = STR_GIANT_SCREENSHOT;
gDropdownItemsFormat[numItems++] = STR_EMPTY; gDropdownItems[numItems++].Format = STR_EMPTY;
gDropdownItemsFormat[numItems++] = STR_FILE_BUG_ON_GITHUB; gDropdownItems[numItems++].Format = STR_FILE_BUG_ON_GITHUB;
if (OpenRCT2::GetContext()->HasNewVersionInfo()) if (OpenRCT2::GetContext()->HasNewVersionInfo())
gDropdownItemsFormat[numItems++] = STR_UPDATE_AVAILABLE; gDropdownItems[numItems++].Format = STR_UPDATE_AVAILABLE;
gDropdownItemsFormat[numItems++] = STR_EMPTY; gDropdownItems[numItems++].Format = STR_EMPTY;
if (gScreenFlags & SCREEN_FLAGS_TRACK_DESIGNER) if (gScreenFlags & SCREEN_FLAGS_TRACK_DESIGNER)
gDropdownItemsFormat[numItems++] = STR_QUIT_ROLLERCOASTER_DESIGNER; gDropdownItems[numItems++].Format = STR_QUIT_ROLLERCOASTER_DESIGNER;
else else
gDropdownItemsFormat[numItems++] = STR_QUIT_TRACK_DESIGNS_MANAGER; gDropdownItems[numItems++].Format = STR_QUIT_TRACK_DESIGNS_MANAGER;
gDropdownItemsFormat[numItems++] = STR_EXIT_OPENRCT2; gDropdownItems[numItems++].Format = STR_EXIT_OPENRCT2;
} }
else if (gScreenFlags & SCREEN_FLAGS_SCENARIO_EDITOR) else if (gScreenFlags & SCREEN_FLAGS_SCENARIO_EDITOR)
{ {
gDropdownItemsFormat[numItems++] = STR_LOAD_LANDSCAPE; gDropdownItems[numItems++].Format = STR_LOAD_LANDSCAPE;
gDropdownItemsFormat[numItems++] = STR_SAVE_LANDSCAPE; gDropdownItems[numItems++].Format = STR_SAVE_LANDSCAPE;
gDropdownItemsFormat[numItems++] = STR_EMPTY; gDropdownItems[numItems++].Format = STR_EMPTY;
gDropdownItemsFormat[numItems++] = STR_ABOUT; gDropdownItems[numItems++].Format = STR_ABOUT;
gDropdownItemsFormat[numItems++] = STR_OPTIONS; gDropdownItems[numItems++].Format = STR_OPTIONS;
gDropdownItemsFormat[numItems++] = STR_SCREENSHOT; gDropdownItems[numItems++].Format = STR_SCREENSHOT;
gDropdownItemsFormat[numItems++] = STR_GIANT_SCREENSHOT; gDropdownItems[numItems++].Format = STR_GIANT_SCREENSHOT;
gDropdownItemsFormat[numItems++] = STR_EMPTY; gDropdownItems[numItems++].Format = STR_EMPTY;
gDropdownItemsFormat[numItems++] = STR_FILE_BUG_ON_GITHUB; gDropdownItems[numItems++].Format = STR_FILE_BUG_ON_GITHUB;
if (OpenRCT2::GetContext()->HasNewVersionInfo()) if (OpenRCT2::GetContext()->HasNewVersionInfo())
gDropdownItemsFormat[numItems++] = STR_UPDATE_AVAILABLE; gDropdownItems[numItems++].Format = STR_UPDATE_AVAILABLE;
gDropdownItemsFormat[numItems++] = STR_EMPTY; gDropdownItems[numItems++].Format = STR_EMPTY;
gDropdownItemsFormat[numItems++] = STR_QUIT_SCENARIO_EDITOR; gDropdownItems[numItems++].Format = STR_QUIT_SCENARIO_EDITOR;
gDropdownItemsFormat[numItems++] = STR_EXIT_OPENRCT2; gDropdownItems[numItems++].Format = STR_EXIT_OPENRCT2;
} }
else else
{ {
gDropdownItemsFormat[numItems++] = STR_NEW_GAME; gDropdownItems[numItems++].Format = STR_NEW_GAME;
gDropdownItemsFormat[numItems++] = STR_LOAD_GAME; gDropdownItems[numItems++].Format = STR_LOAD_GAME;
gDropdownItemsFormat[numItems++] = STR_SAVE_GAME; gDropdownItems[numItems++].Format = STR_SAVE_GAME;
gDropdownItemsFormat[numItems++] = STR_SAVE_GAME_AS; gDropdownItems[numItems++].Format = STR_SAVE_GAME_AS;
gDropdownItemsFormat[numItems++] = STR_EMPTY; gDropdownItems[numItems++].Format = STR_EMPTY;
gDropdownItemsFormat[numItems++] = STR_ABOUT; gDropdownItems[numItems++].Format = STR_ABOUT;
gDropdownItemsFormat[numItems++] = STR_OPTIONS; gDropdownItems[numItems++].Format = STR_OPTIONS;
gDropdownItemsFormat[numItems++] = STR_SCREENSHOT; gDropdownItems[numItems++].Format = STR_SCREENSHOT;
gDropdownItemsFormat[numItems++] = STR_GIANT_SCREENSHOT; gDropdownItems[numItems++].Format = STR_GIANT_SCREENSHOT;
gDropdownItemsFormat[numItems++] = STR_EMPTY; gDropdownItems[numItems++].Format = STR_EMPTY;
gDropdownItemsFormat[numItems++] = STR_FILE_BUG_ON_GITHUB; gDropdownItems[numItems++].Format = STR_FILE_BUG_ON_GITHUB;
if (OpenRCT2::GetContext()->HasNewVersionInfo()) if (OpenRCT2::GetContext()->HasNewVersionInfo())
gDropdownItemsFormat[numItems++] = STR_UPDATE_AVAILABLE; gDropdownItems[numItems++].Format = STR_UPDATE_AVAILABLE;
gDropdownItemsFormat[numItems++] = STR_EMPTY; gDropdownItems[numItems++].Format = STR_EMPTY;
gDropdownItemsFormat[numItems++] = STR_QUIT_TO_MENU; gDropdownItems[numItems++].Format = STR_QUIT_TO_MENU;
gDropdownItemsFormat[numItems++] = STR_EXIT_OPENRCT2; gDropdownItems[numItems++].Format = STR_EXIT_OPENRCT2;
} }
WindowDropdownShowText( WindowDropdownShowText(
@ -3305,23 +3305,23 @@ static void WindowTopToolbarToolAbort(rct_window* w, rct_widgetindex widgetIndex
static void TopToolbarInitMapMenu(rct_window* w, rct_widget* widget) static void TopToolbarInitMapMenu(rct_window* w, rct_widget* widget)
{ {
auto i = 0; auto i = 0;
gDropdownItemsFormat[i++] = STR_SHORTCUT_SHOW_MAP; gDropdownItems[i++].Format = STR_SHORTCUT_SHOW_MAP;
gDropdownItemsFormat[i++] = STR_EXTRA_VIEWPORT; gDropdownItems[i++].Format = STR_EXTRA_VIEWPORT;
if ((gScreenFlags & SCREEN_FLAGS_SCENARIO_EDITOR) && gEditorStep == EditorStep::LandscapeEditor) if ((gScreenFlags & SCREEN_FLAGS_SCENARIO_EDITOR) && gEditorStep == EditorStep::LandscapeEditor)
{ {
gDropdownItemsFormat[i++] = STR_MAPGEN_WINDOW_TITLE; gDropdownItems[i++].Format = STR_MAPGEN_WINDOW_TITLE;
} }
#ifdef ENABLE_SCRIPTING #ifdef ENABLE_SCRIPTING
const auto& customMenuItems = OpenRCT2::Scripting::CustomMenuItems; const auto& customMenuItems = OpenRCT2::Scripting::CustomMenuItems;
if (!customMenuItems.empty()) if (!customMenuItems.empty())
{ {
gDropdownItemsFormat[i++] = STR_EMPTY; gDropdownItems[i++].Format = STR_EMPTY;
for (const auto& item : customMenuItems) for (const auto& item : customMenuItems)
{ {
gDropdownItemsFormat[i] = STR_STRING; gDropdownItems[i].Format = STR_STRING;
auto sz = item.Text.c_str(); auto sz = item.Text.c_str();
std::memcpy(&gDropdownItemsArgs[i], &sz, sizeof(const char*)); std::memcpy(&gDropdownItems[i].Args, &sz, sizeof(const char*));
i++; i++;
} }
} }
@ -3371,22 +3371,22 @@ static void TopToolbarMapMenuDropdown(int16_t dropdownIndex)
static void TopToolbarInitFastforwardMenu(rct_window* w, rct_widget* widget) static void TopToolbarInitFastforwardMenu(rct_window* w, rct_widget* widget)
{ {
int32_t num_items = 4; int32_t num_items = 4;
gDropdownItemsFormat[0] = STR_TOGGLE_OPTION; gDropdownItems[0].Format = STR_TOGGLE_OPTION;
gDropdownItemsFormat[1] = STR_TOGGLE_OPTION; gDropdownItems[1].Format = STR_TOGGLE_OPTION;
gDropdownItemsFormat[2] = STR_TOGGLE_OPTION; gDropdownItems[2].Format = STR_TOGGLE_OPTION;
gDropdownItemsFormat[3] = STR_TOGGLE_OPTION; gDropdownItems[3].Format = STR_TOGGLE_OPTION;
if (gConfigGeneral.debugging_tools) if (gConfigGeneral.debugging_tools)
{ {
gDropdownItemsFormat[4] = STR_EMPTY; gDropdownItems[4].Format = STR_EMPTY;
gDropdownItemsFormat[5] = STR_TOGGLE_OPTION; gDropdownItems[5].Format = STR_TOGGLE_OPTION;
gDropdownItemsArgs[5] = STR_SPEED_HYPER; gDropdownItems[5].Args = STR_SPEED_HYPER;
num_items = 6; num_items = 6;
} }
gDropdownItemsArgs[0] = STR_SPEED_NORMAL; gDropdownItems[0].Args = STR_SPEED_NORMAL;
gDropdownItemsArgs[1] = STR_SPEED_QUICK; gDropdownItems[1].Args = STR_SPEED_QUICK;
gDropdownItemsArgs[2] = STR_SPEED_FAST; gDropdownItems[2].Args = STR_SPEED_FAST;
gDropdownItemsArgs[3] = STR_SPEED_TURBO; gDropdownItems[3].Args = STR_SPEED_TURBO;
WindowDropdownShowText( WindowDropdownShowText(
{ w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[0] | 0x80, 0, { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[0] | 0x80, 0,
@ -3433,8 +3433,8 @@ static void TopToolbarFastforwardMenuDropdown(int16_t dropdownIndex)
static void TopToolbarInitRotateMenu(rct_window* w, rct_widget* widget) static void TopToolbarInitRotateMenu(rct_window* w, rct_widget* widget)
{ {
gDropdownItemsFormat[0] = STR_ROTATE_CLOCKWISE; gDropdownItems[0].Format = STR_ROTATE_CLOCKWISE;
gDropdownItemsFormat[1] = STR_ROTATE_ANTI_CLOCKWISE; gDropdownItems[1].Format = STR_ROTATE_ANTI_CLOCKWISE;
WindowDropdownShowText( WindowDropdownShowText(
{ w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[1] | 0x80, 0, 2); { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[1] | 0x80, 0, 2);
@ -3554,10 +3554,10 @@ static void TopToolbarCheatsMenuDropdown(int16_t dropdownIndex)
static void TopToolbarInitDebugMenu(rct_window* w, rct_widget* widget) static void TopToolbarInitDebugMenu(rct_window* w, rct_widget* widget)
{ {
gDropdownItemsFormat[DDIDX_CONSOLE] = STR_TOGGLE_OPTION; gDropdownItems[DDIDX_CONSOLE].Format = STR_TOGGLE_OPTION;
gDropdownItemsArgs[DDIDX_CONSOLE] = STR_DEBUG_DROPDOWN_CONSOLE; gDropdownItems[DDIDX_CONSOLE].Args = STR_DEBUG_DROPDOWN_CONSOLE;
gDropdownItemsFormat[DDIDX_DEBUG_PAINT] = STR_TOGGLE_OPTION; gDropdownItems[DDIDX_DEBUG_PAINT].Format = STR_TOGGLE_OPTION;
gDropdownItemsArgs[DDIDX_DEBUG_PAINT] = STR_DEBUG_DROPDOWN_DEBUG_PAINT; gDropdownItems[DDIDX_DEBUG_PAINT].Args = STR_DEBUG_DROPDOWN_DEBUG_PAINT;
WindowDropdownShowText( WindowDropdownShowText(
{ w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[0] | 0x80, { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[0] | 0x80,
@ -3568,8 +3568,8 @@ static void TopToolbarInitDebugMenu(rct_window* w, rct_widget* widget)
static void TopToolbarInitNetworkMenu(rct_window* w, rct_widget* widget) static void TopToolbarInitNetworkMenu(rct_window* w, rct_widget* widget)
{ {
gDropdownItemsFormat[DDIDX_MULTIPLAYER] = STR_MULTIPLAYER; gDropdownItems[DDIDX_MULTIPLAYER].Format = STR_MULTIPLAYER;
gDropdownItemsFormat[DDIDX_MULTIPLAYER_RECONNECT] = STR_MULTIPLAYER_RECONNECT; gDropdownItems[DDIDX_MULTIPLAYER_RECONNECT].Format = STR_MULTIPLAYER_RECONNECT;
WindowDropdownShowText( WindowDropdownShowText(
{ w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[0] | 0x80, 0, { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[0] | 0x80, 0,