mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-06 06:32:56 +01:00
Merge pull request #23687 from ZehMatt/fix-23686
Fix #23686: Shortcut window crashing and missing widgets
This commit is contained in:
@@ -961,7 +961,7 @@ namespace OpenRCT2
|
||||
{
|
||||
windowClass = w->classification;
|
||||
windowNumber = w->number;
|
||||
widget = &w->widgets[widgetIndex];
|
||||
widget = widgetIndex == kWidgetIndexNull ? nullptr : &w->widgets[widgetIndex];
|
||||
}
|
||||
|
||||
InputWidgetOverChangeCheck(windowClass, windowNumber, widgetIndex);
|
||||
|
||||
@@ -527,12 +527,17 @@ namespace OpenRCT2
|
||||
|
||||
void WindowAlignTabs(WindowBase* w, WidgetIndex start_tab_id, WidgetIndex end_tab_id)
|
||||
{
|
||||
assert(start_tab_id < w->widgets.size());
|
||||
assert(end_tab_id < w->widgets.size());
|
||||
|
||||
int32_t i, x = w->widgets[start_tab_id].left;
|
||||
int32_t tab_width = w->widgets[start_tab_id].width();
|
||||
|
||||
for (i = start_tab_id; i <= end_tab_id; i++)
|
||||
{
|
||||
auto& widget = w->widgets[i];
|
||||
assert(widget.type == WindowWidgetType::Tab);
|
||||
|
||||
if (!WidgetIsDisabled(*w, i))
|
||||
{
|
||||
widget.left = x;
|
||||
|
||||
@@ -248,7 +248,7 @@ namespace OpenRCT2::Ui::Windows
|
||||
widgets[WIDX_SCROLL].bottom = height - 19;
|
||||
widgets[WIDX_RESET].top = height - 16;
|
||||
widgets[WIDX_RESET].bottom = height - 5;
|
||||
WindowAlignTabs(this, WIDX_TAB_0, static_cast<WidgetIndex>(WIDX_TAB_0 + _tabs.size()));
|
||||
WindowAlignTabs(this, WIDX_TAB_0, static_cast<WidgetIndex>(WIDX_TAB_0 + _tabs.size() - 1));
|
||||
|
||||
// Set selected tab
|
||||
for (size_t i = 0; i < _tabs.size(); i++)
|
||||
@@ -450,7 +450,7 @@ namespace OpenRCT2::Ui::Windows
|
||||
void InitialiseWidgets()
|
||||
{
|
||||
widgets.clear();
|
||||
widgets.insert(widgets.begin(), std::begin(_shortcutWidgets), std::end(_shortcutWidgets) - 1);
|
||||
widgets.insert(widgets.begin(), std::begin(_shortcutWidgets), std::end(_shortcutWidgets));
|
||||
|
||||
int32_t x = 3;
|
||||
for (size_t i = 0; i < _tabs.size(); i++)
|
||||
|
||||
Reference in New Issue
Block a user