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

save object details to repository file

This commit is contained in:
Ted John
2016-06-25 14:44:04 +01:00
parent 2449b7dbf0
commit e93b2141a1
9 changed files with 64 additions and 28 deletions

View File

@@ -57,6 +57,11 @@ class ObjectRepository : public IObjectRepository
QueryDirectoryResult _queryDirectoryResult;
public:
~ObjectRepository()
{
ClearItems();
}
void LoadOrConstruct()
{
ClearItems();
@@ -140,7 +145,11 @@ private:
Object * object = ObjectFactory::CreateObjectFromLegacyFile(path);
if (object != nullptr)
{
// TODO
ObjectRepositoryItem item = { 0 };
Memory::Copy<void>(&item.ObjectEntry, object->GetObjectEntry(), sizeof(rct_object_entry));
item.Path = String::Duplicate(path);
item.Name = String::Duplicate(object->GetName());
_items.push_back(item);
}
}
@@ -197,7 +206,7 @@ private:
// Write items
for (uint32 i = 0; i < header.NumItems; i++)
{
fs.WriteValue(_items[i]);
WriteItem(&fs, _items[i]);
}
}
catch (IOException ex)
@@ -285,8 +294,12 @@ private:
static void FreeItem(ObjectRepositoryItem * item)
{
Memory::Free(item->Path);
Memory::Free(item->Name);
Memory::Free(item->RequiredObjects);
Memory::Free(item->ThemeObjects);
item->Path = nullptr;
item->Name = nullptr;
item->RequiredObjects = nullptr;
item->ThemeObjects = nullptr;
}