From 85b443fc1563a187746b9012d5ae1a8cecac3383 Mon Sep 17 00:00:00 2001 From: Ted John Date: Mon, 10 Dec 2018 15:14:50 +0000 Subject: [PATCH] Fix #8411: Save game failed! Do not try to pack our new object types (stations and surfaces) into saved games. --- src/openrct2/object/ObjectManager.cpp | 2 +- src/openrct2/object/ObjectRepository.cpp | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/openrct2/object/ObjectManager.cpp b/src/openrct2/object/ObjectManager.cpp index b3ae3b23d5..6e328e51f0 100644 --- a/src/openrct2/object/ObjectManager.cpp +++ b/src/openrct2/object/ObjectManager.cpp @@ -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); } diff --git a/src/openrct2/object/ObjectRepository.cpp b/src/openrct2/object/ObjectRepository.cpp index 57c8425242..38b2eab13e 100644 --- a/src/openrct2/object/ObjectRepository.cpp +++ b/src/openrct2/object/ObjectRepository.cpp @@ -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); }