From 672a21f533f6598647573b0c213f48c76dc97ea0 Mon Sep 17 00:00:00 2001 From: Boondorl Date: Sat, 5 Jul 2025 04:08:19 -0400 Subject: [PATCH] Fixed bad VisualThinker nodes getting into the render list Relink on loading instead of serializing since order doesn't matter here. --- src/p_saveg.cpp | 1 - src/playsim/p_effect.cpp | 11 ++++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/p_saveg.cpp b/src/p_saveg.cpp index a4d82fea6..c814fe8d2 100644 --- a/src/p_saveg.cpp +++ b/src/p_saveg.cpp @@ -995,7 +995,6 @@ void FLevelLocals::Serialize(FSerializer &arc, bool hubload) ("automap", automap) ("interpolator", interpolator) ("frozenstate", frozenstate) - ("visualthinkerhead", VisualThinkerHead) ("actorbehaviors", ActorBehaviors); diff --git a/src/playsim/p_effect.cpp b/src/playsim/p_effect.cpp index 0cbc86a64..62db58742 100644 --- a/src/playsim/p_effect.cpp +++ b/src/playsim/p_effect.cpp @@ -1364,13 +1364,18 @@ void DVisualThinker::Serialize(FSerializer& arc) ("lightlevel", LightLevel) ("animData", PT.animData) ("flags", PT.flags) - ("visualThinkerFlags", flags) - ("next", _next) - ("prev", _prev); + ("visualThinkerFlags", flags); if(arc.isReading()) { UpdateSector(); + _prev = _next = nullptr; + if (Level->VisualThinkerHead != nullptr) + { + Level->VisualThinkerHead->_prev = this; + _next = Level->VisualThinkerHead; + } + Level->VisualThinkerHead = this; } }