1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-16 11:33:03 +01:00

Move kLegacyObjectEntryGroupEncoding to ObjectRepository.cpp

This commit is contained in:
Aaron van Geffen
2024-03-27 19:20:05 +01:00
parent d8ba574e6c
commit 5f4d02a6f7
3 changed files with 8 additions and 19 deletions

View File

@@ -343,7 +343,6 @@ public:
#endif
extern int32_t object_entry_group_counts[];
extern int32_t object_entry_group_encoding[];
int32_t ObjectCalculateChecksum(const RCTObjectEntry* entry, const void* data, size_t dataLength);
void ObjectCreateIdentifierName(char* string_buffer, size_t size, const RCTObjectEntry* object);

View File

@@ -44,23 +44,6 @@ int32_t object_entry_group_counts[] = {
};
static_assert(std::size(object_entry_group_counts) == EnumValue(ObjectType::Count));
// 98DA2C
// clang-format off
int32_t object_entry_group_encoding[] = {
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,
};
// clang-format on
ObjectList::const_iterator::const_iterator(const ObjectList* parent, bool end)
{
_parent = parent;

View File

@@ -470,6 +470,13 @@ private:
}
}
// 0x0098DA2C
static constexpr std::array<int32_t, 11> 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 void SaveObject(
std::string_view path, const RCTObjectEntry* entry, const void* data, size_t dataSize, bool fixChecksum = true)
{
@@ -525,7 +532,7 @@ private:
// Encode data
ObjectType objectType = entry->GetType();
SawyerCodingChunkHeader chunkHeader;
chunkHeader.encoding = object_entry_group_encoding[EnumValue(objectType)];
chunkHeader.encoding = kLegacyObjectEntryGroupEncoding[EnumValue(objectType)];
chunkHeader.length = static_cast<uint32_t>(dataSize);
uint8_t* encodedDataBuffer = Memory::Allocate<uint8_t>(0x600000);
size_t encodedDataSize = SawyerCodingWriteChunkBuffer(