Fix #8411: Save game failed!

Do not try to pack our new object types (stations and surfaces) into saved games.
This commit is contained in:
Ted John 2018-12-10 15:14:50 +00:00
parent cefa4c3935
commit 85b443fc15
2 changed files with 9 additions and 1 deletions

View File

@ -202,7 +202,7 @@ public:
for (size_t i = 0; i < numObjects; i++)
{
const ObjectRepositoryItem* item = &_objectRepository.GetObjects()[i];
if (item->LoadedObject != nullptr && item->LoadedObject->GetLegacyData() != nullptr && IsObjectCustom(item))
if (item->LoadedObject != nullptr && IsObjectCustom(item) && item->LoadedObject->GetLegacyData() != nullptr)
{
objects.push_back(item);
}

View File

@ -627,6 +627,14 @@ bool IsObjectCustom(const ObjectRepositoryItem* object)
{
Guard::ArgumentNotNull(object);
// Do not count our new object types as custom yet, otherwise the game
// will try to pack them into saved games.
auto type = object_entry_get_type(&object->ObjectEntry);
if (type > OBJECT_TYPE_SCENARIO_TEXT)
{
return false;
}
// Validate the object is not one from base game or expansion pack
return !(object->ObjectEntry.flags & 0xF0);
}