diff --git a/src/p_savenetrb.c b/src/p_savenetrb.c index 3a6d057a9fbc25ab7870a248f234b123d9cbdbab..95622ba8860dd180db25e26b49752e90ba122ee1 100755 --- a/src/p_savenetrb.c +++ b/src/p_savenetrb.c @@ -5451,7 +5451,7 @@ static inline boolean P_NetUnArchiveMisc(boolean reloading) // if (!P_LoadLevel(true, reloading)) // return false; - if ((!reloading || (gamemap != oldMap)) && !P_LoadLevel(false, reloading)) + if ((!reloading || (gamemap != oldMap))) return false; // get the time @@ -5800,7 +5800,7 @@ void P_SaveGameState(savestate_t* savestate) if (savestate->buffer == NULL) { - savestate->buffer = Z_Malloc(10 * 1024 * 1024, PU_LEVEL, NULL); //ten megabytes? + savestate->buffer = Z_Malloc(10 * 1024 * 1024, PU_STATIC, NULL); //ten megabytes? } save_p = savestate->buffer; diff --git a/src/p_setup.c b/src/p_setup.c index 89296c05c50d3c85fa991ea3495a208640243640..5ac4dc06b71cdd6d60db62188b6ac4b21fee8904 100755 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -3980,8 +3980,8 @@ static void P_InitGametype(void) boolean P_LoadLevel(boolean fromnetsave, boolean reloadinggamestate) { //prevent loading a level when in a simulation - if (issimulation) - return true; + // if (issimulation) + // return true; // use gamemap to get map number. // 99% of the things already did, so. @@ -4154,6 +4154,7 @@ boolean P_LoadLevel(boolean fromnetsave, boolean reloadinggamestate) Patch_FreeTag(PU_PATCH_LOWPRIORITY); Patch_FreeTag(PU_PATCH_ROTATED); Z_FreeTags(PU_LEVEL, PU_PURGELEVEL - 1); + InvalidateSavestates(); P_InitThinkers(); P_InitCachedActions();