1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2025-12-10 09:32:29 +01:00

Replace duplicate CHUNK_ENCODING_* with SawyerEncoding::*

This commit is contained in:
Gymnasiast
2025-07-02 20:14:53 +02:00
parent 8d56534e46
commit 6bdca7bcc9
5 changed files with 21 additions and 28 deletions

View File

@@ -45,14 +45,14 @@ namespace OpenRCT2::SawyerCoding
{ {
switch (chunkHeader.encoding) switch (chunkHeader.encoding)
{ {
case CHUNK_ENCODING_NONE: case SawyerEncoding::none:
std::memcpy(dst_file, &chunkHeader, sizeof(ChunkHeader)); std::memcpy(dst_file, &chunkHeader, sizeof(ChunkHeader));
dst_file += sizeof(ChunkHeader); dst_file += sizeof(ChunkHeader);
std::memcpy(dst_file, buffer, chunkHeader.length); std::memcpy(dst_file, buffer, chunkHeader.length);
// fwrite(&chunkHeader, sizeof(ChunkHeader), 1, file); // fwrite(&chunkHeader, sizeof(ChunkHeader), 1, file);
// fwrite(buffer, 1, chunkHeader.length, file); // fwrite(buffer, 1, chunkHeader.length, file);
break; break;
case CHUNK_ENCODING_RLE: case SawyerEncoding::rle:
{ {
auto encode_buffer = std::make_unique<uint8_t[]>(0x600000); auto encode_buffer = std::make_unique<uint8_t[]>(0x600000);
chunkHeader.length = static_cast<uint32_t>(EncodeChunkRLE(buffer, encode_buffer.get(), chunkHeader.length)); chunkHeader.length = static_cast<uint32_t>(EncodeChunkRLE(buffer, encode_buffer.get(), chunkHeader.length));
@@ -61,7 +61,7 @@ namespace OpenRCT2::SawyerCoding
std::memcpy(dst_file, encode_buffer.get(), chunkHeader.length); std::memcpy(dst_file, encode_buffer.get(), chunkHeader.length);
} }
break; break;
case CHUNK_ENCODING_RLECOMPRESSED: case SawyerEncoding::rleCompressed:
{ {
auto encode_buffer = std::make_unique<uint8_t[]>(chunkHeader.length * 2); auto encode_buffer = std::make_unique<uint8_t[]>(chunkHeader.length * 2);
auto encode_buffer2 = std::make_unique<uint8_t[]>(0x600000); auto encode_buffer2 = std::make_unique<uint8_t[]>(0x600000);
@@ -73,7 +73,7 @@ namespace OpenRCT2::SawyerCoding
std::memcpy(dst_file, encode_buffer2.get(), chunkHeader.length); std::memcpy(dst_file, encode_buffer2.get(), chunkHeader.length);
} }
break; break;
case CHUNK_ENCODING_ROTATE: case SawyerEncoding::rotate:
{ {
auto encode_buffer = std::make_unique<uint8_t[]>(chunkHeader.length); auto encode_buffer = std::make_unique<uint8_t[]>(chunkHeader.length);
std::memcpy(encode_buffer.get(), buffer, chunkHeader.length); std::memcpy(encode_buffer.get(), buffer, chunkHeader.length);

View File

@@ -9,20 +9,13 @@
#pragma once #pragma once
#include "../rct12/SawyerChunk.h"
#include <cstddef> #include <cstddef>
#include <cstdint> #include <cstdint>
namespace OpenRCT2 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 // TODO: make enum class in SawyerCoding namespace
enum enum
{ {
@@ -43,7 +36,7 @@ namespace OpenRCT2::SawyerCoding
#pragma pack(push, 1) #pragma pack(push, 1)
struct ChunkHeader struct ChunkHeader
{ {
uint8_t encoding; SawyerEncoding encoding;
uint32_t length; uint32_t length;
}; };
static_assert(sizeof(ChunkHeader) == 5); static_assert(sizeof(ChunkHeader) == 5);

View File

@@ -475,10 +475,10 @@ private:
} }
// 0x0098DA2C // 0x0098DA2C
static constexpr std::array<int32_t, 11> kLegacyObjectEntryGroupEncoding = { static constexpr std::array<SawyerEncoding, 11> kLegacyObjectEntryGroupEncoding = {
CHUNK_ENCODING_RLE, CHUNK_ENCODING_RLE, CHUNK_ENCODING_RLE, CHUNK_ENCODING_RLE, SawyerEncoding::rle, SawyerEncoding::rle, SawyerEncoding::rle, SawyerEncoding::rle,
CHUNK_ENCODING_RLE, CHUNK_ENCODING_RLE, CHUNK_ENCODING_RLE, CHUNK_ENCODING_RLE, SawyerEncoding::rle, SawyerEncoding::rle, SawyerEncoding::rle, SawyerEncoding::rle,
CHUNK_ENCODING_RLE, CHUNK_ENCODING_RLE, CHUNK_ENCODING_ROTATE, SawyerEncoding::rle, SawyerEncoding::rle, SawyerEncoding::rotate,
}; };
static void SaveObject( static void SaveObject(

View File

@@ -58,10 +58,10 @@ namespace OpenRCT2
switch (header.encoding) switch (header.encoding)
{ {
case CHUNK_ENCODING_NONE: case SawyerEncoding::none:
case CHUNK_ENCODING_RLE: case SawyerEncoding::rle:
case CHUNK_ENCODING_RLECOMPRESSED: case SawyerEncoding::rleCompressed:
case CHUNK_ENCODING_ROTATE: case SawyerEncoding::rotate:
{ {
auto compressedData = std::make_unique<uint8_t[]>(header.length); auto compressedData = std::make_unique<uint8_t[]>(header.length);
if (_stream->TryRead(compressedData.get(), header.length) != header.length) if (_stream->TryRead(compressedData.get(), header.length) != header.length)
@@ -108,7 +108,7 @@ namespace OpenRCT2
throw SawyerChunkException(kExceptionMessageCorruptChunkSize); throw SawyerChunkException(kExceptionMessageCorruptChunkSize);
} }
SawyerCoding::ChunkHeader header{ CHUNK_ENCODING_RLE, compressedDataLength }; SawyerCoding::ChunkHeader header{ SawyerEncoding::rle, compressedDataLength };
auto buffer = DecodeChunk(compressedData.get(), header); auto buffer = DecodeChunk(compressedData.get(), header);
if (buffer.GetLength() == 0) if (buffer.GetLength() == 0)
{ {
@@ -266,16 +266,16 @@ namespace OpenRCT2
switch (header.encoding) switch (header.encoding)
{ {
case CHUNK_ENCODING_NONE: case SawyerEncoding::none:
buf.Write(src, header.length); buf.Write(src, header.length);
break; break;
case CHUNK_ENCODING_RLE: case SawyerEncoding::rle:
buf = DecodeChunkRLE(src, header.length); buf = DecodeChunkRLE(src, header.length);
break; break;
case CHUNK_ENCODING_RLECOMPRESSED: case SawyerEncoding::rleCompressed:
buf = DecodeChunkRLERepeat(src, header.length); buf = DecodeChunkRLERepeat(src, header.length);
break; break;
case CHUNK_ENCODING_ROTATE: case SawyerEncoding::rotate:
buf = DecodeChunkRotate(src, header.length); buf = DecodeChunkRotate(src, header.length);
break; break;
default: default:

View File

@@ -31,7 +31,7 @@ namespace OpenRCT2
void SawyerChunkWriter::WriteChunk(const void* src, size_t length, SawyerEncoding encoding) void SawyerChunkWriter::WriteChunk(const void* src, size_t length, SawyerEncoding encoding)
{ {
SawyerCoding::ChunkHeader header; SawyerCoding::ChunkHeader header;
header.encoding = static_cast<uint8_t>(encoding); header.encoding = encoding;
header.length = static_cast<uint32_t>(length); header.length = static_cast<uint32_t>(length);
auto data = std::make_unique<uint8_t[]>(MAX_COMPRESSED_CHUNK_SIZE); auto data = std::make_unique<uint8_t[]>(MAX_COMPRESSED_CHUNK_SIZE);