Move gSavedView states to GameState_t (#21456)

* Move gSavedView to GameState_t

* Move gSavedViewRotation to GameState_t

* Move gSavedViewZoom to GameState_t
This commit is contained in:
Harry Hopkinson 2024-02-25 20:46:01 +00:00 committed by GitHub
parent 880e5af35d
commit 0fab1eaca8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 33 additions and 28 deletions

View File

@ -388,7 +388,8 @@ namespace OpenRCT2::Title
void PrepareParkForPlayback() void PrepareParkForPlayback()
{ {
auto windowManager = GetContext()->GetUiContext()->GetWindowManager(); auto windowManager = GetContext()->GetUiContext()->GetWindowManager();
windowManager->SetMainView(gSavedView, gSavedViewZoom, gSavedViewRotation); auto& gameState = GetGameState();
windowManager->SetMainView(gameState.SavedView, gameState.SavedViewZoom, gameState.SavedViewRotation);
ResetEntitySpatialIndices(); ResetEntitySpatialIndices();
ResetAllSpriteQuadrantPlacements(); ResetAllSpriteQuadrantPlacements();
auto intent = Intent(INTENT_ACTION_REFRESH_NEW_RIDES); auto intent = Intent(INTENT_ACTION_REFRESH_NEW_RIDES);

View File

@ -423,7 +423,8 @@ namespace Editor
static void FinaliseMainView() static void FinaliseMainView()
{ {
auto windowManager = GetContext()->GetUiContext()->GetWindowManager(); auto windowManager = GetContext()->GetUiContext()->GetWindowManager();
windowManager->SetMainView(gSavedView, gSavedViewZoom, gSavedViewRotation); auto& gameState = GetGameState();
windowManager->SetMainView(gameState.SavedView, gameState.SavedViewZoom, gameState.SavedViewRotation);
ResetAllSpriteQuadrantPlacements(); ResetAllSpriteQuadrantPlacements();
ScenerySetDefaultPlacementConfiguration(); ScenerySetDefaultPlacementConfiguration();

View File

@ -528,7 +528,8 @@ void GameLoadInit()
} }
auto windowManager = GetContext()->GetUiContext()->GetWindowManager(); auto windowManager = GetContext()->GetUiContext()->GetWindowManager();
windowManager->SetMainView(gSavedView, gSavedViewZoom, gSavedViewRotation); auto& gameState = GetGameState();
windowManager->SetMainView(gameState.SavedView, gameState.SavedViewZoom, gameState.SavedViewRotation);
if (NetworkGetMode() != NETWORK_MODE_CLIENT) if (NetworkGetMode() != NETWORK_MODE_CLIENT)
{ {

View File

@ -10,6 +10,7 @@
#pragma once #pragma once
#include "Date.h" #include "Date.h"
#include "interface/ZoomLevel.h"
#include "management/Finance.h" #include "management/Finance.h"
#include "management/NewsItem.h" #include "management/NewsItem.h"
#include "scenario/Scenario.h" #include "scenario/Scenario.h"
@ -94,6 +95,10 @@ namespace OpenRCT2
std::vector<ResearchItem> ResearchItemsInvented; std::vector<ResearchItem> ResearchItemsInvented;
uint8_t ResearchUncompletedCategories; uint8_t ResearchUncompletedCategories;
ScreenCoordsXY SavedView;
uint8_t SavedViewRotation;
ZoomLevel SavedViewZoom;
/** /**
* Probability out of 65535, of gaining a new guest per game tick. * Probability out of 65535, of gaining a new guest per game tick.
* new guests per second = 40 * (probability / 65535) * new guests per second = 40 * (probability / 65535)

View File

@ -558,9 +558,11 @@ int32_t CommandLineForScreenshot(const char** argv, int32_t argc, ScreenshotOpti
} }
else else
{ {
viewport.viewPos = { gSavedView - ScreenCoordsXY{ (viewport.view_width / 2), (viewport.view_height / 2) } }; auto& gameState = GetGameState();
viewport.zoom = gSavedViewZoom; viewport.viewPos = { gameState.SavedView
gCurrentRotation = gSavedViewRotation; - ScreenCoordsXY{ (viewport.view_width / 2), (viewport.view_height / 2) } };
viewport.zoom = gameState.SavedViewZoom;
gCurrentRotation = gameState.SavedViewRotation;
} }
} }

View File

@ -65,10 +65,6 @@ Viewport* g_music_tracking_viewport;
static std::unique_ptr<JobPool> _paintJobs; static std::unique_ptr<JobPool> _paintJobs;
static std::vector<PaintSession*> _paintColumns; static std::vector<PaintSession*> _paintColumns;
ScreenCoordsXY gSavedView;
ZoomLevel gSavedViewZoom;
uint8_t gSavedViewRotation;
uint8_t gCurrentRotation; uint8_t gCurrentRotation;
static uint32_t _currentImageType; static uint32_t _currentImageType;
@ -2080,11 +2076,12 @@ void ViewportSetSavedView()
if (w != nullptr) if (w != nullptr)
{ {
Viewport* viewport = w->viewport; Viewport* viewport = w->viewport;
auto& gameState = GetGameState();
gSavedView = ScreenCoordsXY{ viewport->view_width / 2, viewport->view_height / 2 } + viewport->viewPos; gameState.SavedView = ScreenCoordsXY{ viewport->view_width / 2, viewport->view_height / 2 } + viewport->viewPos;
gSavedViewZoom = viewport->zoom; gameState.SavedViewZoom = viewport->zoom;
gSavedViewRotation = GetCurrentRotation(); gameState.SavedViewRotation = GetCurrentRotation();
} }
} }

View File

@ -122,9 +122,6 @@ extern uint8_t gShowConstructionRightsRefCount;
// rct2: 0x014234BC // rct2: 0x014234BC
extern Viewport* g_music_tracking_viewport; extern Viewport* g_music_tracking_viewport;
extern ScreenCoordsXY gSavedView;
extern ZoomLevel gSavedViewZoom;
extern uint8_t gSavedViewRotation;
extern uint8_t gCurrentRotation; extern uint8_t gCurrentRotation;

View File

@ -604,19 +604,19 @@ namespace OpenRCT2
void ReadWriteInterfaceChunk(GameState_t& gameState, OrcaStream& os) void ReadWriteInterfaceChunk(GameState_t& gameState, OrcaStream& os)
{ {
os.ReadWriteChunk(ParkFileChunkType::INTERFACE, [](OrcaStream::ChunkStream& cs) { os.ReadWriteChunk(ParkFileChunkType::INTERFACE, [&gameState](OrcaStream::ChunkStream& cs) {
cs.ReadWrite(gSavedView.x); cs.ReadWrite(gameState.SavedView.x);
cs.ReadWrite(gSavedView.y); cs.ReadWrite(gameState.SavedView.y);
if (cs.GetMode() == OrcaStream::Mode::READING) if (cs.GetMode() == OrcaStream::Mode::READING)
{ {
auto savedZoomlevel = static_cast<ZoomLevel>(cs.Read<int8_t>()); auto savedZoomlevel = static_cast<ZoomLevel>(cs.Read<int8_t>());
gSavedViewZoom = std::clamp(savedZoomlevel, ZoomLevel::min(), ZoomLevel::max()); gameState.SavedViewZoom = std::clamp(savedZoomlevel, ZoomLevel::min(), ZoomLevel::max());
} }
else else
{ {
cs.Write(static_cast<int8_t>(gSavedViewZoom)); cs.Write(static_cast<int8_t>(gameState.SavedViewZoom));
} }
cs.ReadWrite(gSavedViewRotation); cs.ReadWrite(gameState.SavedViewRotation);
cs.ReadWrite(gLastEntranceStyle); cs.ReadWrite(gLastEntranceStyle);
cs.ReadWrite(gEditorStep); cs.ReadWrite(gEditorStep);
}); });

View File

@ -2353,9 +2353,10 @@ namespace RCT1
void ImportSavedView() void ImportSavedView()
{ {
gSavedView = ScreenCoordsXY{ _s4.ViewX, _s4.ViewY }; auto& gameState = GetGameState();
gSavedViewZoom = ZoomLevel{ static_cast<int8_t>(_s4.ViewZoom) }; gameState.SavedView = ScreenCoordsXY{ _s4.ViewX, _s4.ViewY };
gSavedViewRotation = _s4.ViewRotation; gameState.SavedViewZoom = ZoomLevel{ static_cast<int8_t>(_s4.ViewZoom) };
gameState.SavedViewRotation = _s4.ViewRotation;
} }
void ConvertWall(const int32_t& type, colour_t* colourA, colour_t* colourB) void ConvertWall(const int32_t& type, colour_t* colourA, colour_t* colourB)

View File

@ -440,9 +440,9 @@ namespace RCT2
ImportRides(); ImportRides();
gSavedView = ScreenCoordsXY{ _s6.SavedViewX, _s6.SavedViewY }; gameState.SavedView = ScreenCoordsXY{ _s6.SavedViewX, _s6.SavedViewY };
gSavedViewZoom = ZoomLevel{ static_cast<int8_t>(_s6.SavedViewZoom) }; gameState.SavedViewZoom = ZoomLevel{ static_cast<int8_t>(_s6.SavedViewZoom) };
gSavedViewRotation = _s6.SavedViewRotation; gameState.SavedViewRotation = _s6.SavedViewRotation;
ImportRideRatingsCalcData(); ImportRideRatingsCalcData();
ImportRideMeasurements(); ImportRideMeasurements();