From 5f4d02a6f7d0c4e39b4efa1005e6e51391883d64 Mon Sep 17 00:00:00 2001 From: Aaron van Geffen Date: Wed, 27 Mar 2024 19:20:05 +0100 Subject: [PATCH] Move kLegacyObjectEntryGroupEncoding to ObjectRepository.cpp --- src/openrct2/object/Object.h | 1 - src/openrct2/object/ObjectList.cpp | 17 ----------------- src/openrct2/object/ObjectRepository.cpp | 9 ++++++++- 3 files changed, 8 insertions(+), 19 deletions(-) diff --git a/src/openrct2/object/Object.h b/src/openrct2/object/Object.h index 418cf73a0d..c5a397328a 100644 --- a/src/openrct2/object/Object.h +++ b/src/openrct2/object/Object.h @@ -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); diff --git a/src/openrct2/object/ObjectList.cpp b/src/openrct2/object/ObjectList.cpp index 0b7899a598..3a447fe9ce 100644 --- a/src/openrct2/object/ObjectList.cpp +++ b/src/openrct2/object/ObjectList.cpp @@ -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; diff --git a/src/openrct2/object/ObjectRepository.cpp b/src/openrct2/object/ObjectRepository.cpp index 449e4dc672..060f399ac0 100644 --- a/src/openrct2/object/ObjectRepository.cpp +++ b/src/openrct2/object/ObjectRepository.cpp @@ -470,6 +470,13 @@ 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 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(dataSize); uint8_t* encodedDataBuffer = Memory::Allocate(0x600000); size_t encodedDataSize = SawyerCodingWriteChunkBuffer(