From 4d55a2ebe3abafef00902fbeb014e7b48daee878 Mon Sep 17 00:00:00 2001 From: toaster Date: Thu, 13 Apr 2023 20:39:40 +0100 Subject: [PATCH] P_NetUnArchiveThinkers: set thinker references to 0 before removing Fixes failed assertion on server join (resolves #514) --- src/p_saveg.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/p_saveg.c b/src/p_saveg.c index 84e4b261c..85c2dce91 100644 --- a/src/p_saveg.c +++ b/src/p_saveg.c @@ -4298,6 +4298,8 @@ static void P_NetUnArchiveThinkers(savebuffer_t *save) { next = currentthinker->next; + currentthinker->references = 0; // Heinous but this is the only place the assertion in P_UnlinkThinkers is wrong + if (currentthinker->function.acp1 == (actionf_p1)P_MobjThinker || currentthinker->function.acp1 == (actionf_p1)P_NullPrecipThinker) P_RemoveSavegameMobj((mobj_t *)currentthinker); // item isn't saved, don't remove it else