From 32d59372d32f15bcc549d8c7472b57e16a0d2fd7 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 d66ea3f20..c31161f40 100644 --- a/src/p_saveg.c +++ b/src/p_saveg.c @@ -4337,6 +4337,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