diff --git a/src/openrct2/interface/Viewport.cpp b/src/openrct2/interface/Viewport.cpp index 345ee3d480..a6e2382adb 100644 --- a/src/openrct2/interface/Viewport.cpp +++ b/src/openrct2/interface/Viewport.cpp @@ -229,6 +229,16 @@ void ViewportRemove(Viewport* viewport) _viewports.erase(it); } +Viewport* ViewportGetMain() +{ + auto mainWindow = WindowGetMain(); + if (mainWindow == nullptr) + { + return nullptr; + } + return mainWindow->viewport; +} + void ViewportsInvalidate(const ScreenRect& screenRect, ZoomLevel maxZoom) { for (auto& vp : _viewports) diff --git a/src/openrct2/interface/Viewport.h b/src/openrct2/interface/Viewport.h index 74287b9198..70e6aacd34 100644 --- a/src/openrct2/interface/Viewport.h +++ b/src/openrct2/interface/Viewport.h @@ -129,6 +129,7 @@ void ViewportInitAll(); std::optional centre_2d_coordinates(const CoordsXYZ& loc, Viewport* viewport); void ViewportCreate(WindowBase* w, const ScreenCoordsXY& screenCoords, int32_t width, int32_t height, const Focus& focus); void ViewportRemove(Viewport* viewport); +Viewport* ViewportGetMain(); void ViewportsInvalidate(const ScreenRect& screenRect, ZoomLevel maxZoom = ZoomLevel{ -1 }); void ViewportUpdatePosition(WindowBase* window); void ViewportUpdateFollowSprite(WindowBase* window);