Add content deprecation upgrades support to prefabs and scenes when loading levels
This commit is contained in:
@@ -19,6 +19,7 @@
|
||||
#include "Engine/Threading/Threading.h"
|
||||
#include "Engine/Level/Scripts/MissingScript.h"
|
||||
#endif
|
||||
#include "Engine/Content/Deprecated.h"
|
||||
#include "Engine/Level/Scripts/ModelPrefab.h"
|
||||
|
||||
#if USE_EDITOR
|
||||
@@ -199,6 +200,7 @@ SceneObject* SceneObjectsFactory::Spawn(Context& context, const ISerializable::D
|
||||
else
|
||||
{
|
||||
// [Deprecated: 18.07.2019 expires 18.07.2020]
|
||||
MARK_CONTENT_DEPRECATED();
|
||||
const auto typeIdMember = stream.FindMember("TypeID");
|
||||
if (typeIdMember == stream.MemberEnd())
|
||||
{
|
||||
@@ -286,7 +288,19 @@ void SceneObjectsFactory::Deserialize(Context& context, SceneObject* obj, ISeria
|
||||
// Deserialize prefab data (recursive prefab loading to support nested prefabs)
|
||||
const auto prevVersion = modifier->EngineBuild;
|
||||
modifier->EngineBuild = prefab->DataEngineBuild;
|
||||
#if USE_EDITOR
|
||||
bool prevDeprecated = ContentDeprecated::Clear();
|
||||
#endif
|
||||
Deserialize(context, obj, *(ISerializable::DeserializeStream*)prefabData);
|
||||
#if USE_EDITOR
|
||||
if (ContentDeprecated::Clear(prevDeprecated))
|
||||
{
|
||||
// Prefab contains deprecated data format
|
||||
context.Locker.Lock();
|
||||
context.DeprecatedPrefabs.Add(prefab);
|
||||
context.Locker.Unlock();
|
||||
}
|
||||
#endif
|
||||
modifier->EngineBuild = prevVersion;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user