mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-04 13:42:55 +01:00
Merge pull request #13030 from ZehMatt/fix-4617-2
Fix #4617: Crash when rotating with invalid viewport open
This commit is contained in:
@@ -322,10 +322,7 @@ static void window_sign_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
||||
*/
|
||||
static void window_sign_viewport_rotate(rct_window* w)
|
||||
{
|
||||
rct_viewport* view = w->viewport;
|
||||
w->viewport = nullptr;
|
||||
|
||||
view->width = 0;
|
||||
w->RemoveViewport();
|
||||
|
||||
auto banner = GetBanner(w->number);
|
||||
|
||||
|
||||
@@ -42,3 +42,12 @@ void rct_window::Invalidate()
|
||||
{
|
||||
gfx_set_dirty_blocks({ windowPos, windowPos + ScreenCoordsXY{ width, height } });
|
||||
}
|
||||
|
||||
void rct_window::RemoveViewport()
|
||||
{
|
||||
if (viewport == nullptr)
|
||||
return;
|
||||
|
||||
viewport->width = 0;
|
||||
viewport = nullptr;
|
||||
}
|
||||
|
||||
@@ -94,6 +94,7 @@ struct rct_window
|
||||
void SetLocation(const CoordsXYZ& coords);
|
||||
void ScrollToViewport();
|
||||
void Invalidate();
|
||||
void RemoveViewport();
|
||||
};
|
||||
|
||||
// rct2: 0x01420078
|
||||
|
||||
Reference in New Issue
Block a user