diff --git a/src/openrct2-ui/windows/Sign.cpp b/src/openrct2-ui/windows/Sign.cpp index 7fd1ed8659..a10206e2ea 100644 --- a/src/openrct2-ui/windows/Sign.cpp +++ b/src/openrct2-ui/windows/Sign.cpp @@ -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); diff --git a/src/openrct2/interface/Window_internal.cpp b/src/openrct2/interface/Window_internal.cpp index 0a0d0e738e..675db961d9 100644 --- a/src/openrct2/interface/Window_internal.cpp +++ b/src/openrct2/interface/Window_internal.cpp @@ -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; +} diff --git a/src/openrct2/interface/Window_internal.h b/src/openrct2/interface/Window_internal.h index 2a882649d6..039d078ed1 100644 --- a/src/openrct2/interface/Window_internal.h +++ b/src/openrct2/interface/Window_internal.h @@ -94,6 +94,7 @@ struct rct_window void SetLocation(const CoordsXYZ& coords); void ScrollToViewport(); void Invalidate(); + void RemoveViewport(); }; // rct2: 0x01420078