From 6bdca7bcc9acf5f53a2044ffaab5d2ec6ea6f5a2 Mon Sep 17 00:00:00 2001 From: Gymnasiast Date: Wed, 2 Jul 2025 20:14:53 +0200 Subject: [PATCH] Replace duplicate CHUNK_ENCODING_* with SawyerEncoding::* --- src/openrct2/core/SawyerCoding.cpp | 8 ++++---- src/openrct2/core/SawyerCoding.h | 13 +++---------- src/openrct2/object/ObjectRepository.cpp | 8 ++++---- src/openrct2/rct12/SawyerChunkReader.cpp | 18 +++++++++--------- src/openrct2/rct12/SawyerChunkWriter.cpp | 2 +- 5 files changed, 21 insertions(+), 28 deletions(-) diff --git a/src/openrct2/core/SawyerCoding.cpp b/src/openrct2/core/SawyerCoding.cpp index 503ed0b69a..464b739f70 100644 --- a/src/openrct2/core/SawyerCoding.cpp +++ b/src/openrct2/core/SawyerCoding.cpp @@ -45,14 +45,14 @@ namespace OpenRCT2::SawyerCoding { switch (chunkHeader.encoding) { - case CHUNK_ENCODING_NONE: + case SawyerEncoding::none: std::memcpy(dst_file, &chunkHeader, sizeof(ChunkHeader)); dst_file += sizeof(ChunkHeader); std::memcpy(dst_file, buffer, chunkHeader.length); // fwrite(&chunkHeader, sizeof(ChunkHeader), 1, file); // fwrite(buffer, 1, chunkHeader.length, file); break; - case CHUNK_ENCODING_RLE: + case SawyerEncoding::rle: { auto encode_buffer = std::make_unique(0x600000); chunkHeader.length = static_cast(EncodeChunkRLE(buffer, encode_buffer.get(), chunkHeader.length)); @@ -61,7 +61,7 @@ namespace OpenRCT2::SawyerCoding std::memcpy(dst_file, encode_buffer.get(), chunkHeader.length); } break; - case CHUNK_ENCODING_RLECOMPRESSED: + case SawyerEncoding::rleCompressed: { auto encode_buffer = std::make_unique(chunkHeader.length * 2); auto encode_buffer2 = std::make_unique(0x600000); @@ -73,7 +73,7 @@ namespace OpenRCT2::SawyerCoding std::memcpy(dst_file, encode_buffer2.get(), chunkHeader.length); } break; - case CHUNK_ENCODING_ROTATE: + case SawyerEncoding::rotate: { auto encode_buffer = std::make_unique(chunkHeader.length); std::memcpy(encode_buffer.get(), buffer, chunkHeader.length); diff --git a/src/openrct2/core/SawyerCoding.h b/src/openrct2/core/SawyerCoding.h index 467041ba6d..73d6fa43fe 100644 --- a/src/openrct2/core/SawyerCoding.h +++ b/src/openrct2/core/SawyerCoding.h @@ -9,20 +9,13 @@ #pragma once +#include "../rct12/SawyerChunk.h" + #include #include namespace OpenRCT2 { - // TODO: make enum class in SawyerCoding namespace - enum - { - CHUNK_ENCODING_NONE, - CHUNK_ENCODING_RLE, - CHUNK_ENCODING_RLECOMPRESSED, - CHUNK_ENCODING_ROTATE - }; - // TODO: make enum class in SawyerCoding namespace enum { @@ -43,7 +36,7 @@ namespace OpenRCT2::SawyerCoding #pragma pack(push, 1) struct ChunkHeader { - uint8_t encoding; + SawyerEncoding encoding; uint32_t length; }; static_assert(sizeof(ChunkHeader) == 5); diff --git a/src/openrct2/object/ObjectRepository.cpp b/src/openrct2/object/ObjectRepository.cpp index 187f6b01f3..c0fe0545d2 100644 --- a/src/openrct2/object/ObjectRepository.cpp +++ b/src/openrct2/object/ObjectRepository.cpp @@ -475,10 +475,10 @@ private: } // 0x0098DA2C - static constexpr std::array kLegacyObjectEntryGroupEncoding = { - CHUNK_ENCODING_RLE, CHUNK_ENCODING_RLE, CHUNK_ENCODING_RLE, CHUNK_ENCODING_RLE, - CHUNK_ENCODING_RLE, CHUNK_ENCODING_RLE, CHUNK_ENCODING_RLE, CHUNK_ENCODING_RLE, - CHUNK_ENCODING_RLE, CHUNK_ENCODING_RLE, CHUNK_ENCODING_ROTATE, + static constexpr std::array kLegacyObjectEntryGroupEncoding = { + SawyerEncoding::rle, SawyerEncoding::rle, SawyerEncoding::rle, SawyerEncoding::rle, + SawyerEncoding::rle, SawyerEncoding::rle, SawyerEncoding::rle, SawyerEncoding::rle, + SawyerEncoding::rle, SawyerEncoding::rle, SawyerEncoding::rotate, }; static void SaveObject( diff --git a/src/openrct2/rct12/SawyerChunkReader.cpp b/src/openrct2/rct12/SawyerChunkReader.cpp index fd0fb1a49d..2d0c5bbdcb 100644 --- a/src/openrct2/rct12/SawyerChunkReader.cpp +++ b/src/openrct2/rct12/SawyerChunkReader.cpp @@ -58,10 +58,10 @@ namespace OpenRCT2 switch (header.encoding) { - case CHUNK_ENCODING_NONE: - case CHUNK_ENCODING_RLE: - case CHUNK_ENCODING_RLECOMPRESSED: - case CHUNK_ENCODING_ROTATE: + case SawyerEncoding::none: + case SawyerEncoding::rle: + case SawyerEncoding::rleCompressed: + case SawyerEncoding::rotate: { auto compressedData = std::make_unique(header.length); if (_stream->TryRead(compressedData.get(), header.length) != header.length) @@ -108,7 +108,7 @@ namespace OpenRCT2 throw SawyerChunkException(kExceptionMessageCorruptChunkSize); } - SawyerCoding::ChunkHeader header{ CHUNK_ENCODING_RLE, compressedDataLength }; + SawyerCoding::ChunkHeader header{ SawyerEncoding::rle, compressedDataLength }; auto buffer = DecodeChunk(compressedData.get(), header); if (buffer.GetLength() == 0) { @@ -266,16 +266,16 @@ namespace OpenRCT2 switch (header.encoding) { - case CHUNK_ENCODING_NONE: + case SawyerEncoding::none: buf.Write(src, header.length); break; - case CHUNK_ENCODING_RLE: + case SawyerEncoding::rle: buf = DecodeChunkRLE(src, header.length); break; - case CHUNK_ENCODING_RLECOMPRESSED: + case SawyerEncoding::rleCompressed: buf = DecodeChunkRLERepeat(src, header.length); break; - case CHUNK_ENCODING_ROTATE: + case SawyerEncoding::rotate: buf = DecodeChunkRotate(src, header.length); break; default: diff --git a/src/openrct2/rct12/SawyerChunkWriter.cpp b/src/openrct2/rct12/SawyerChunkWriter.cpp index df12cf9e0a..f4a682d455 100644 --- a/src/openrct2/rct12/SawyerChunkWriter.cpp +++ b/src/openrct2/rct12/SawyerChunkWriter.cpp @@ -31,7 +31,7 @@ namespace OpenRCT2 void SawyerChunkWriter::WriteChunk(const void* src, size_t length, SawyerEncoding encoding) { SawyerCoding::ChunkHeader header; - header.encoding = static_cast(encoding); + header.encoding = encoding; header.length = static_cast(length); auto data = std::make_unique(MAX_COMPRESSED_CHUNK_SIZE);