1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-20 05:23:04 +01:00

Remove hard cap of 0x80 scenery items in a group (#16853)

Co-authored-by: Tulio Leao <tupaschoal@gmail.com>
This commit is contained in:
Duncan
2022-03-23 00:38:54 +00:00
committed by GitHub
parent c5b5b95bcd
commit 472f7f55c5
5 changed files with 15 additions and 23 deletions

View File

@@ -42,7 +42,7 @@ void SceneryGroupObject::ReadLegacy(IReadObjectContext* context, IStream* stream
{
stream->Seek(6, STREAM_SEEK_CURRENT);
stream->Seek(0x80 * 2, STREAM_SEEK_CURRENT);
_legacyType.entry_count = stream->ReadValue<uint8_t>();
stream->Seek(1, STREAM_SEEK_CURRENT); // entry_count
stream->Seek(1, STREAM_SEEK_CURRENT); // pad_107;
_legacyType.priority = stream->ReadValue<uint8_t>();
stream->Seek(1, STREAM_SEEK_CURRENT); // pad_109;
@@ -58,7 +58,7 @@ void SceneryGroupObject::Load()
GetStringTable().Sort();
_legacyType.name = language_allocate_object_string(GetName());
_legacyType.image = gfx_object_allocate_images(GetImageTable().GetImages(), GetImageTable().GetCount());
_legacyType.entry_count = 0;
_legacyType.SceneryEntries.clear();
}
void SceneryGroupObject::Unload()
@@ -103,7 +103,7 @@ void SceneryGroupObject::UpdateEntryIndexes()
auto& objectRepository = context->GetObjectRepository();
auto& objectManager = context->GetObjectManager();
_legacyType.entry_count = 0;
_legacyType.SceneryEntries.clear();
for (const auto& objectEntry : _items)
{
auto ori = objectRepository.FindObject(objectEntry);
@@ -118,8 +118,7 @@ void SceneryGroupObject::UpdateEntryIndexes()
auto sceneryType = GetSceneryType(ori->Type);
if (sceneryType.has_value())
{
_legacyType.scenery_entries[_legacyType.entry_count] = { sceneryType.value(), entryIndex };
_legacyType.entry_count++;
_legacyType.SceneryEntries.push_back({ sceneryType.value(), entryIndex });
}
}
}