From d79ef939e9811902d4d8fc3b1bb2556778dbd53e Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sun, 25 Nov 2018 22:12:21 +0100 Subject: [PATCH] - fixed: The serializer must treat object that were already destroyed or are declared transient like a null pointer and not ignore them. This caused FraggleScript's SpawnedThings array to go out of sync. --- src/serializer.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/serializer.cpp b/src/serializer.cpp index fe8864a33..e0f74420f 100644 --- a/src/serializer.cpp +++ b/src/serializer.cpp @@ -1586,17 +1586,13 @@ FSerializer &Serialize(FSerializer &arc, const char *key, DObject *&value, DObje if (retcode) *retcode = true; if (arc.isWriting()) { - if (value != nullptr) + if (value != nullptr && !(value->ObjectFlags & (OF_EuthanizeMe | OF_Transient))) { int ndx; if (value == WP_NOCHANGE) { ndx = -1; } - else if (value->ObjectFlags & (OF_EuthanizeMe | OF_Transient)) - { - return arc; - } else { int *pndx = arc.w->mObjectMap.CheckKey(value);