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

Create ObjectEntryDescriptor to properly handle mixed DAT and JSON

This commit is contained in:
Gymnasiast
2020-12-02 16:50:21 +01:00
parent aa8a08987f
commit 596aa71093
9 changed files with 99 additions and 17 deletions

View File

@@ -75,7 +75,7 @@ void SceneryGroupObject::UpdateEntryIndexes()
_legacyType.entry_count = 0;
for (const auto& objectEntry : _items)
{
auto ori = objectRepository.FindObject(&objectEntry);
auto ori = objectRepository.FindObject(objectEntry);
if (ori == nullptr)
continue;
if (ori->LoadedObject == nullptr)
@@ -98,14 +98,14 @@ void SceneryGroupObject::SetRepositoryItem(ObjectRepositoryItem* item) const
item->SceneryGroupInfo.Entries = _items;
}
std::vector<rct_object_entry> SceneryGroupObject::ReadItems(IStream* stream)
std::vector<ObjectEntryDescriptor> SceneryGroupObject::ReadItems(IStream* stream)
{
auto items = std::vector<rct_object_entry>();
auto items = std::vector<ObjectEntryDescriptor>();
while (stream->ReadValue<uint8_t>() != 0xFF)
{
stream->Seek(-1, STREAM_SEEK_CURRENT);
auto entry = stream->ReadValue<rct_object_entry>();
items.push_back(entry);
items.push_back(ObjectEntryDescriptor(entry));
}
return items;
}
@@ -166,13 +166,13 @@ EntertainerCostume SceneryGroupObject::ParseEntertainerCostume(const std::string
return EntertainerCostume::Panda;
}
std::vector<rct_object_entry> SceneryGroupObject::ReadJsonEntries(json_t& jEntries)
std::vector<ObjectEntryDescriptor> SceneryGroupObject::ReadJsonEntries(json_t& jEntries)
{
std::vector<rct_object_entry> entries;
std::vector<ObjectEntryDescriptor> entries;
for (auto& jEntry : jEntries)
{
auto entry = ParseObjectEntry(Json::GetString(jEntry));
auto entry = ObjectEntryDescriptor(Json::GetString(jEntry));
entries.push_back(entry);
}
return entries;