From 8efb0752013cae81c78bfd22c931070bfd1db5c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Janiszewski?= Date: Wed, 6 Aug 2025 08:10:51 +0200 Subject: [PATCH] Only access widgets that actually exist (#24899) Some windows, like the NetworkStatus do not create any additional widgets which results in WidgetCaptionDraw going off the widget vector --- src/openrct2-ui/interface/Widget.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/openrct2-ui/interface/Widget.cpp b/src/openrct2-ui/interface/Widget.cpp index 7a2705b28d..3df9c02f13 100644 --- a/src/openrct2-ui/interface/Widget.cpp +++ b/src/openrct2-ui/interface/Widget.cpp @@ -559,10 +559,13 @@ namespace OpenRCT2::Ui topLeft = w.windowPos + ScreenCoordsXY{ widget->left + 2, widget->top + 1 }; int32_t width = widget->width() - 4; - if ((widget + 1)->type == WidgetType::closeBox) + + if (static_cast(widgetIndex + 1) < w.widgets.size() + && (w.widgets[widgetIndex + 1]).type == WidgetType::closeBox) { width -= kCloseButtonSize; - if ((widget + 2)->type == WidgetType::closeBox) + if (static_cast(widgetIndex + 2) < w.widgets.size() + && (w.widgets[widgetIndex + 2]).type == WidgetType::closeBox) width -= kCloseButtonSize; } topLeft.x += width / 2;