diff --git a/src/p_mobj.c b/src/p_mobj.c index b2a9b09b56a62a63144830573316c814a1e54b6f..148004819757a0f2ae94919267610811bdf32e12 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -10331,7 +10331,6 @@ void P_RemoveSavegameMobj(mobj_t *mobj) thinker_t *thinker = (thinker_t *)mobj; thinker_t *next = thinker->next; (next->prev = thinker->prev)->next = next; - R_DestroyLevelInterpolators(thinker); Z_Free(thinker); } } diff --git a/src/p_saveg.c b/src/p_saveg.c index a2656a46763c6137461fa44125cad91713197782..7580600333487345787c44133614f10c88f5b3c9 100644 --- a/src/p_saveg.c +++ b/src/p_saveg.c @@ -2677,7 +2677,11 @@ static void P_NetUnArchiveThinkers(void) 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 + { + (next->prev = currentthinker->prev)->next = next; + R_DestroyLevelInterpolators(currentthinker); Z_Free(currentthinker); + } } // we don't want the removed mobjs to come back @@ -3090,6 +3094,7 @@ static inline void P_NetArchiveSpecials(void) // Sky number WRITEINT32(save_p, globallevelskynum); + CONS_Printf("globalweather write %d", globalweather); // Current global weather type WRITEUINT8(save_p, globalweather); @@ -3126,6 +3131,7 @@ static void P_NetUnArchiveSpecials(void) P_SetupLevelSky(j, true); globalweather = READUINT8(save_p); + CONS_Printf("globalweather read %d", globalweather); if (globalweather) { diff --git a/src/p_setup.c b/src/p_setup.c index 328a3ff34b0d65308144be45e44bf22a362406a5..4f4140dfc643e1aa72216a949148c5d2237cc74e 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -3124,14 +3124,14 @@ boolean P_SetupLevel(boolean skipprecip) if (!playerstarts[numcoopstarts]) break; + globalweather = mapheaderinfo[gamemap-1]->weather; + // set up world state P_SpawnSpecials(fromnetsave); if (loadprecip) // ugly hack for P_NetUnArchiveMisc (and P_LoadNetGame) P_SpawnPrecipitation(); - globalweather = mapheaderinfo[gamemap-1]->weather; - #ifdef HWRENDER // not win32 only 19990829 by Kin if (rendermode != render_soft && rendermode != render_none) {