1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-25 07:44:38 +01:00

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

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

View File

@@ -1319,7 +1319,7 @@ namespace OpenRCT2
{
if (_inputState == InputState::DropdownActive)
{
gDropdownHighlightedIndex = gDropdownDefaultIndex;
gDropdown.highlightedIndex = gDropdown.defaultIndex;
windowMgr->InvalidateByClass(WindowClass::Dropdown);
}
return;
@@ -1344,7 +1344,7 @@ namespace OpenRCT2
dropdown_index = DropdownIndexFromPoint(screenCoords, w);
dropdownCleanup = dropdown_index == -1
|| (dropdown_index < Dropdown::kItemsMaxSize && Dropdown::IsDisabled(dropdown_index))
|| gDropdownItems[dropdown_index].isSeparator();
|| gDropdown.items[dropdown_index].isSeparator();
w = nullptr; // To be closed right next
}
else
@@ -1392,9 +1392,9 @@ namespace OpenRCT2
if (dropdown_index == -1)
{
if (!Dropdown::IsDisabled(gDropdownDefaultIndex))
if (!Dropdown::IsDisabled(gDropdown.defaultIndex))
{
dropdown_index = gDropdownDefaultIndex;
dropdown_index = gDropdown.defaultIndex;
}
}
cursor_w->OnDropdown(cursor_widgetIndex, dropdown_index);
@@ -1447,13 +1447,13 @@ namespace OpenRCT2
}
return;
}
else if (gDropdownHasTooltips)
else if (gDropdown.hasTooltips)
{
// This is ordinarily covered in InputWidgetOver but the dropdown with colours is a special case.
InputUpdateTooltip(w, widgetIndex, screenCoords);
}
gDropdownHighlightedIndex = -1;
gDropdown.highlightedIndex = -1;
windowMgr->InvalidateByClass(WindowClass::Dropdown);
if (w == nullptr)
{
@@ -1468,12 +1468,12 @@ namespace OpenRCT2
return;
}
if (gDropdownHasTooltips && gDropdownLastTooltipHover != dropdown_index)
if (gDropdown.hasTooltips && gDropdown.lastTooltipHover != dropdown_index)
{
gDropdownLastTooltipHover = dropdown_index;
gDropdown.lastTooltipHover = dropdown_index;
WindowTooltipClose();
WindowTooltipShow(OpenRCT2String{ gDropdownTooltips[dropdown_index], {} }, screenCoords);
WindowTooltipShow(OpenRCT2String{ gDropdown.tooltips[dropdown_index], {} }, screenCoords);
}
if (dropdown_index < Dropdown::kItemsMaxSize && Dropdown::IsDisabled(dropdown_index))
@@ -1481,17 +1481,17 @@ namespace OpenRCT2
return;
}
if (gDropdownItems[dropdown_index].isSeparator())
if (gDropdown.items[dropdown_index].isSeparator())
{
return;
}
gDropdownHighlightedIndex = dropdown_index;
gDropdown.highlightedIndex = dropdown_index;
windowMgr->InvalidateByClass(WindowClass::Dropdown);
}
else
{
gDropdownLastTooltipHover = -1;
gDropdown.lastTooltipHover = -1;
WindowTooltipClose();
}
}