diff --git a/src/openrct2/ParkFile.cpp b/src/openrct2/ParkFile.cpp index dca76d817c..15787e869b 100644 --- a/src/openrct2/ParkFile.cpp +++ b/src/openrct2/ParkFile.cpp @@ -68,6 +68,7 @@ void ParkFile::Save(const std::string_view& path) WriteAuthoringChunk(); WriteObjectsChunk(); WriteGeneralChunk(); + WriteInterfaceChunk(); WriteTilesChunk(); // TODO avoid copying the buffer @@ -233,6 +234,17 @@ void ParkFile::WriteGeneralChunk() EndChunk(); } +void ParkFile::WriteInterfaceChunk() +{ + BeginChunk(ParkFileChunkType::INTERFACE); + WriteValue(gSavedViewX); + WriteValue(gSavedViewY); + WriteValue(gSavedViewZoom); + WriteValue(gSavedViewRotation); + WriteValue(gLastEntranceStyle); + EndChunk(); +} + void ParkFile::WriteTilesChunk() { BeginChunk(ParkFileChunkType::TILES); @@ -299,6 +311,7 @@ void ParkFile::Import() { ReadTilesChunk(); ReadGeneralChunk(); + ReadInterfaceChunk(); } ParkFile::Header ParkFile::ReadHeader(std::istream& fs) @@ -393,6 +406,18 @@ void ParkFile::ReadGeneralChunk() } } +void ParkFile::ReadInterfaceChunk() +{ + if (SeekChunk(ParkFileChunkType::INTERFACE)) + { + gSavedViewX = ReadValue(); + gSavedViewY = ReadValue(); + gSavedViewZoom = ReadValue(); + gSavedViewRotation = ReadValue(); + gLastEntranceStyle = ReadValue(); + } +} + void ParkFile::ReadTilesChunk() { if (SeekChunk(ParkFileChunkType::TILES)) diff --git a/src/openrct2/ParkFile.h b/src/openrct2/ParkFile.h index 4a72acb413..b078c0d7b0 100644 --- a/src/openrct2/ParkFile.h +++ b/src/openrct2/ParkFile.h @@ -68,9 +68,11 @@ namespace OpenRCT2 void WriteAuthoringChunk(); void WriteObjectsChunk(); void WriteGeneralChunk(); + void WriteInterfaceChunk(); void WriteTilesChunk(); void ReadGeneralChunk(); + void ReadInterfaceChunk(); void ReadTilesChunk(); Header ReadHeader(std::istream& fs);