From a0d095e70735f8237ccfd4b6a7fce35408c08bf1 Mon Sep 17 00:00:00 2001 From: Monster Iestyn Date: Tue, 3 Jan 2017 18:47:46 +0000 Subject: [PATCH] Fix sector floordata/ceilingdata/lightingdata pointers not being NULL when they should be This fixes ERCZ's lava falls not moving after joining a netgame at that stage. Possibly explains other various floor/ceiling related netgame quirks that haven't been noticed until now, maybe even in multiplayer levels. --- src/p_saveg.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/p_saveg.c b/src/p_saveg.c index 14386ff1..66fc118a 100644 --- a/src/p_saveg.c +++ b/src/p_saveg.c @@ -2607,6 +2607,7 @@ static void P_NetUnArchiveThinkers(void) thinker_t *next; UINT8 tclass; UINT8 restoreNum = false; + UINT32 i; if (READUINT32(save_p) != ARCHIVEBLOCK_THINKERS) I_Error("Bad $$$.sav at archive block Thinkers"); @@ -2627,6 +2628,12 @@ static void P_NetUnArchiveThinkers(void) iquetail = iquehead = 0; P_InitThinkers(); + // clear sector thinker pointers so they don't point to non-existant thinkers for all of eternity + for (i = 0; i < numsectors; i++) + { + sectors[i].floordata = sectors[i].ceilingdata = sectors[i].lightingdata = NULL; + } + // read in saved thinkers for (;;) {