diff --git a/src/openrct2/core/OrcaStream.hpp b/src/openrct2/core/OrcaStream.hpp index 5c588bbaa8..13cff497d3 100644 --- a/src/openrct2/core/OrcaStream.hpp +++ b/src/openrct2/core/OrcaStream.hpp @@ -48,14 +48,14 @@ namespace OpenRCT2 #pragma pack(push, 1) struct Header { - uint32_t Magic{}; - uint32_t TargetVersion{}; - uint32_t MinVersion{}; - uint32_t NumChunks{}; - uint64_t UncompressedSize{}; - CompressionType Compression{}; - uint64_t CompressedSize{}; - std::array FNV1a{}; + uint32_t magic{}; + uint32_t targetVersion{}; + uint32_t minVersion{}; + uint32_t numChunks{}; + uint64_t uncompressedSize{}; + CompressionType compression{}; + uint64_t compressedSize{}; + std::array fnv1a{}; uint8_t padding[20]{}; }; static_assert(sizeof(Header) == 64, "Header should be 64 bytes"); @@ -87,55 +87,55 @@ namespace OpenRCT2 _header = _stream->ReadValue
(); _chunks.clear(); - for (uint32_t i = 0; i < _header.NumChunks; i++) + for (uint32_t i = 0; i < _header.numChunks; i++) { auto entry = _stream->ReadValue(); _chunks.push_back(entry); } // Uncompress - if (_header.Compression != CompressionType::none) + if (_header.compression != CompressionType::none) { bool decompressStatus = false; - switch (_header.Compression) + switch (_header.compression) { case CompressionType::gzip: decompressStatus = Compression::zlibDecompress( - *_stream, _header.CompressedSize, _buffer, _header.UncompressedSize, + *_stream, _header.compressedSize, _buffer, _header.uncompressedSize, Compression::ZlibHeaderType::gzip); break; case CompressionType::zstd: decompressStatus = Compression::zstdDecompress( - *_stream, _header.CompressedSize, _buffer, _header.UncompressedSize); + *_stream, _header.compressedSize, _buffer, _header.uncompressedSize); break; default: - throw IOException("Unknown Park Compression Type"); + throw IOException("Unknown park compression type"); } if (!decompressStatus) - throw IOException("Decompression Error"); + throw IOException("Decompression error!"); } else { - if (_header.UncompressedSize != _header.CompressedSize) - throw IOException("None Compression Sizes Don't Match"); - _buffer.CopyFromStream(*_stream, _header.UncompressedSize); + if (_header.uncompressedSize != _header.compressedSize) + throw IOException("Compressed and uncompressed sizes don't match!"); + _buffer.CopyFromStream(*_stream, _header.uncompressedSize); } // early in-dev versions used SHA1 instead of FNV1a, so just assume any file // with a verison number of 0 may be one of these, and don't check their hashes. - if (_header.TargetVersion > 0) + if (_header.targetVersion > 0) { auto checksum = Crypt::FNV1a(_buffer.GetData(), _buffer.GetLength()); - if (checksum != _header.FNV1a) - throw IOException("Checksum Is Not Valid"); + if (checksum != _header.fnv1a) + throw IOException("Checksum is not valid!"); } } else { _header = {}; - _header.Compression = _compressionLevel == Compression::kNoCompressionLevel ? CompressionType::none + _header.compression = _compressionLevel == Compression::kNoCompressionLevel ? CompressionType::none : CompressionType::zstd; _buffer = MemoryStream{}; } @@ -147,22 +147,22 @@ namespace OpenRCT2 { if (_mode == Mode::writing) { - _header.NumChunks = static_cast(_chunks.size()); - _header.UncompressedSize = _buffer.GetLength(); - _header.CompressedSize = _buffer.GetLength(); - _header.FNV1a = Crypt::FNV1a(_buffer.GetData(), _buffer.GetLength()); + _header.numChunks = static_cast(_chunks.size()); + _header.uncompressedSize = _buffer.GetLength(); + _header.compressedSize = _buffer.GetLength(); + _header.fnv1a = Crypt::FNV1a(_buffer.GetData(), _buffer.GetLength()); if (_compressionLevel == Compression::kNoCompressionLevel) - _header.Compression = CompressionType::none; + _header.compression = CompressionType::none; // Compress data - if (_header.Compression != CompressionType::none) + if (_header.compression != CompressionType::none) { MemoryStream compressed; bool compressStatus = false; _buffer.SetPosition(0); - switch (_header.Compression) + switch (_header.compression) { case CompressionType::gzip: compressStatus = Compression::zlibCompress( @@ -180,12 +180,12 @@ namespace OpenRCT2 if (compressStatus && compressed.GetLength() < _buffer.GetLength()) { _buffer = std::move(compressed); - _header.CompressedSize = _buffer.GetLength(); + _header.compressedSize = _buffer.GetLength(); } else { // Compression increases filesize, so just store uncompressed data - _header.Compression = CompressionType::none; + _header.compression = CompressionType::none; } } diff --git a/src/openrct2/park/ParkFile.cpp b/src/openrct2/park/ParkFile.cpp index 059d93d71b..53c37ea9de 100644 --- a/src/openrct2/park/ParkFile.cpp +++ b/src/openrct2/park/ParkFile.cpp @@ -118,9 +118,9 @@ namespace OpenRCT2 void ThrowIfIncompatibleVersion() { const auto& header = _os->GetHeader(); - if (/*header.TargetVersion < kParkFileMinSupportedVersion || */ header.MinVersion > kParkFileCurrentVersion) + if (/*header.targetVersion < kParkFileMinSupportedVersion || */ header.minVersion > kParkFileCurrentVersion) { - throw UnsupportedVersionException(header.MinVersion, header.TargetVersion); + throw UnsupportedVersionException(header.minVersion, header.targetVersion); } } @@ -128,8 +128,8 @@ namespace OpenRCT2 bool IsSemiCompatibleVersion(uint32_t& minVersion, uint32_t& targetVersion) { const auto& header = _os->GetHeader(); - minVersion = header.MinVersion; - targetVersion = header.TargetVersion; + minVersion = header.minVersion; + targetVersion = header.targetVersion; return targetVersion > kParkFileCurrentVersion; } @@ -169,7 +169,7 @@ namespace OpenRCT2 ReadWriteCheatsChunk(gameState, os); ReadWriteRestrictedObjectsChunk(gameState, os); ReadWritePluginStorageChunk(gameState, os); - if (os.GetHeader().TargetVersion < 0x4) + if (os.GetHeader().targetVersion < 0x4) { UpdateTrackElementsRideType(); } @@ -183,9 +183,9 @@ namespace OpenRCT2 OrcaStream os(stream, OrcaStream::Mode::writing, compressionLevel); auto& header = os.GetHeader(); - header.Magic = kParkFileMagic; - header.TargetVersion = kParkFileCurrentVersion; - header.MinVersion = kParkFileMinVersion; + header.magic = kParkFileMagic; + header.targetVersion = kParkFileCurrentVersion; + header.minVersion = kParkFileMinVersion; ReadWriteAuthoringChunk(os); ReadWriteObjectsChunk(os); @@ -312,7 +312,7 @@ namespace OpenRCT2 auto* pathToSurfaceMap = _pathToSurfaceMap; auto* pathToQueueSurfaceMap = _pathToQueueSurfaceMap; auto* pathToRailingsMap = _pathToRailingsMap; - const auto version = os.GetHeader().TargetVersion; + const auto version = os.GetHeader().targetVersion; ObjectList requiredObjects; struct LegacyFootpathMapping @@ -520,7 +520,7 @@ namespace OpenRCT2 cs.Write(AllowEarlyCompletion()); } - if (os.GetHeader().TargetVersion >= 1) + if (os.GetHeader().targetVersion >= 1) { cs.ReadWrite(gameState.scenarioFileName); } @@ -556,7 +556,7 @@ namespace OpenRCT2 void ReadWriteGeneralChunk(GameState_t& gameState, OrcaStream& os) { - const auto version = os.GetHeader().TargetVersion; + const auto version = os.GetHeader().targetVersion; auto found = os.ReadWriteChunk(ParkFileChunkType::GENERAL, [&](OrcaStream::ChunkStream& cs) { // Only GAME_PAUSED_NORMAL from gGamePaused is relevant. if (cs.GetMode() == OrcaStream::Mode::reading) @@ -641,7 +641,7 @@ namespace OpenRCT2 cs.ReadWrite(gameState.widePathTileLoopPosition); auto& rideRatings = gameState.rideRatingUpdateStates; - if (os.GetHeader().TargetVersion >= 21) + if (os.GetHeader().targetVersion >= 21) { cs.ReadWriteArray(rideRatings, [this, &cs](OpenRCT2::RideRating::UpdateState& calcData) { ReadWriteRideRatingCalculationData(cs, calcData); @@ -660,7 +660,7 @@ namespace OpenRCT2 ReadWriteRideRatingCalculationData(cs, rideRatingUpdateState); } - if (os.GetHeader().TargetVersion >= 14) + if (os.GetHeader().targetVersion >= 14) { cs.ReadWrite(gIsAutosave); } @@ -868,7 +868,7 @@ namespace OpenRCT2 void ReadWriteClimateChunk(GameState_t& gameState, OrcaStream& os) { os.ReadWriteChunk(ParkFileChunkType::CLIMATE, [&os, &gameState](OrcaStream::ChunkStream& cs) { - auto version = os.GetHeader().TargetVersion; + auto version = os.GetHeader().targetVersion; if (version < kClimateObjectsVersion) { // Legacy climate is converted elsewhere, so we can skip it here. @@ -891,7 +891,7 @@ namespace OpenRCT2 void ReadWriteParkChunk(GameState_t& gameState, OrcaStream& os) { os.ReadWriteChunk( - ParkFileChunkType::PARK, [version = os.GetHeader().TargetVersion, &gameState](OrcaStream::ChunkStream& cs) { + ParkFileChunkType::PARK, [version = os.GetHeader().targetVersion, &gameState](OrcaStream::ChunkStream& cs) { cs.ReadWrite(gameState.park.Name); cs.ReadWrite(gameState.park.cash); cs.ReadWrite(gameState.park.bankLoan); @@ -1226,11 +1226,11 @@ namespace OpenRCT2 auto* trackElement = it.element->AsTrack(); auto trackType = trackElement->GetTrackType(); if (TrackTypeMustBeMadeInvisible( - trackElement->GetRideType(), trackType, os.GetHeader().TargetVersion)) + trackElement->GetRideType(), trackType, os.GetHeader().targetVersion)) { it.element->SetInvisible(true); } - if (os.GetHeader().TargetVersion < kBlockBrakeImprovementsVersion) + if (os.GetHeader().targetVersion < kBlockBrakeImprovementsVersion) { if (trackType == TrackElemType::Brakes) trackElement->SetBrakeClosed(true); @@ -1239,7 +1239,7 @@ namespace OpenRCT2 } } else if ( - it.element->GetType() == TileElementType::SmallScenery && os.GetHeader().TargetVersion < 23) + it.element->GetType() == TileElementType::SmallScenery && os.GetHeader().targetVersion < 23) { auto* sceneryElement = it.element->AsSmallScenery(); // Previous formats stored the needs supports flag in the primary colour @@ -1300,7 +1300,7 @@ namespace OpenRCT2 void ReadWriteBannersChunk(GameState_t& gameState, OrcaStream& os) { os.ReadWriteChunk(ParkFileChunkType::BANNERS, [&os](OrcaStream::ChunkStream& cs) { - auto version = os.GetHeader().TargetVersion; + auto version = os.GetHeader().targetVersion; if (cs.GetMode() == OrcaStream::Mode::writing) { auto numBanners = GetNumBanners(); @@ -1377,7 +1377,7 @@ namespace OpenRCT2 void ReadWriteRidesChunk(GameState_t& gameState, OrcaStream& os) { - const auto version = os.GetHeader().TargetVersion; + const auto version = os.GetHeader().targetVersion; os.ReadWriteChunk(ParkFileChunkType::RIDES, [this, &version, &os](OrcaStream::ChunkStream& cs) { std::vector rideIds; if (cs.GetMode() == OrcaStream::Mode::reading) @@ -1553,7 +1553,7 @@ namespace OpenRCT2 } } - if (os.GetHeader().TargetVersion < kHigherInversionsHolesHelicesStatsVersion) + if (os.GetHeader().targetVersion < kHigherInversionsHolesHelicesStatsVersion) { uint8_t combinedValue = cs.Read(); auto split = splitCombinedHelicesAndSpecialElements(combinedValue); @@ -1790,7 +1790,7 @@ namespace OpenRCT2 static void ReadWritePeep(OrcaStream& os, OrcaStream::ChunkStream& cs, Peep& entity) { - auto version = os.GetHeader().TargetVersion; + auto version = os.GetHeader().targetVersion; ReadWriteEntityCommon(cs, entity); @@ -2220,7 +2220,7 @@ namespace OpenRCT2 cs.ReadWrite(entity.next_vehicle_on_ride); cs.ReadWrite(entity.var_44); cs.ReadWrite(entity.mass); - if (cs.GetMode() == OrcaStream::Mode::reading && os.GetHeader().TargetVersion < 18) + if (cs.GetMode() == OrcaStream::Mode::reading && os.GetHeader().targetVersion < 18) { uint16_t updateFlags = 0; cs.ReadWrite(updateFlags); @@ -2258,7 +2258,7 @@ namespace OpenRCT2 cs.ReadWrite(entity.powered_acceleration); cs.ReadWrite(entity.CollisionDetectionTimer); cs.ReadWrite(entity.animation_frame); - if (cs.GetMode() == OrcaStream::Mode::reading && os.GetHeader().TargetVersion <= 2) + if (cs.GetMode() == OrcaStream::Mode::reading && os.GetHeader().targetVersion <= 2) { uint16_t lower = 0, upper = 0; cs.ReadWrite(lower); @@ -2272,7 +2272,7 @@ namespace OpenRCT2 cs.ReadWrite(entity.scream_sound_id); cs.ReadWrite(entity.TrackSubposition); cs.ReadWrite(entity.NumLaps); - if (cs.GetMode() == OrcaStream::Mode::reading && os.GetHeader().TargetVersion < kBlockBrakeImprovementsVersion) + if (cs.GetMode() == OrcaStream::Mode::reading && os.GetHeader().targetVersion < kBlockBrakeImprovementsVersion) { uint8_t brakeSpeed; cs.ReadWrite(brakeSpeed); @@ -2293,7 +2293,7 @@ namespace OpenRCT2 cs.ReadWrite(entity.colours.Tertiary); cs.ReadWrite(entity.seat_rotation); cs.ReadWrite(entity.target_seat_rotation); - if (cs.GetMode() == OrcaStream::Mode::reading && os.GetHeader().TargetVersion < 18) + if (cs.GetMode() == OrcaStream::Mode::reading && os.GetHeader().targetVersion < 18) { bool isCrashedVehicle = false; cs.ReadWrite(isCrashedVehicle); @@ -2302,7 +2302,7 @@ namespace OpenRCT2 entity.SetFlag(VehicleFlags::Crashed); } } - if (cs.GetMode() == OrcaStream::Mode::reading && os.GetHeader().TargetVersion < kBlockBrakeImprovementsVersion) + if (cs.GetMode() == OrcaStream::Mode::reading && os.GetHeader().targetVersion < kBlockBrakeImprovementsVersion) { entity.BlockBrakeSpeed = kRCT2DefaultBlockBrakeSpeed; } @@ -2316,7 +2316,7 @@ namespace OpenRCT2 void ParkFile::ReadWriteEntity(OrcaStream& os, OrcaStream::ChunkStream& cs, Guest& guest) { ReadWritePeep(os, cs, guest); - auto version = os.GetHeader().TargetVersion; + auto version = os.GetHeader().targetVersion; if (version <= 1) { @@ -2372,7 +2372,7 @@ namespace OpenRCT2 } cs.ReadWrite(guest.NauseaTolerance); - if (os.GetHeader().TargetVersion < 3) + if (os.GetHeader().targetVersion < 3) { std::array rideTypeBeenOn; cs.ReadWriteArray(rideTypeBeenOn, [&cs](uint8_t& rideType) { @@ -2383,7 +2383,7 @@ namespace OpenRCT2 } cs.ReadWrite(guest.TimeInQueue); - if (os.GetHeader().TargetVersion < 3) + if (os.GetHeader().targetVersion < 3) { std::array ridesBeenOn; cs.ReadWriteArray(ridesBeenOn, [&cs](uint8_t& rideType) { @@ -2449,7 +2449,7 @@ namespace OpenRCT2 cs.ReadWrite(guest.RejoinQueueTimeout); cs.ReadWrite(guest.PreviousRide); cs.ReadWrite(guest.PreviousRideTimeOut); - cs.ReadWriteArray(guest.Thoughts, [version = os.GetHeader().TargetVersion, &cs](PeepThought& thought) { + cs.ReadWriteArray(guest.Thoughts, [version = os.GetHeader().targetVersion, &cs](PeepThought& thought) { cs.ReadWrite(thought.type); if (version <= 2) { @@ -2512,7 +2512,7 @@ namespace OpenRCT2 } } - if (os.GetHeader().TargetVersion <= 1) + if (os.GetHeader().targetVersion <= 1) { return; } @@ -2520,7 +2520,7 @@ namespace OpenRCT2 cs.ReadWrite(entity.AssignedStaffType); cs.ReadWrite(entity.MechanicTimeSinceCall); cs.ReadWrite(entity.HireDate); - if (os.GetHeader().TargetVersion <= 4) + if (os.GetHeader().targetVersion <= 4) { cs.Ignore(); } @@ -2693,7 +2693,7 @@ namespace OpenRCT2 Vehicle, Guest, Staff, Litter, SteamParticle, MoneyEffect, VehicleCrashParticle, ExplosionCloud, CrashSplashParticle, ExplosionFlare, JumpingFountain, Balloon, Duck>(os, cs); - auto version = os.GetHeader().TargetVersion; + auto version = os.GetHeader().targetVersion; if (version < kPeepAnimationObjectsVersion) { ConvertPeepAnimationTypeToObjects(gameState);