From ce8886d38fe71943aa72c819e7c22f11d3f5debc Mon Sep 17 00:00:00 2001 From: John FrostFox <john.frostfox@gmail.com> Date: Mon, 11 Oct 2021 09:40:43 +0300 Subject: [PATCH] Fix crash when loading a level mid-game --- src/d_clisrv.c | 2 +- src/d_netcmd.c | 2 ++ src/p_savenetrb.c | 6 +++--- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/d_clisrv.c b/src/d_clisrv.c index 519dec570..4fa8150df 100755 --- a/src/d_clisrv.c +++ b/src/d_clisrv.c @@ -5079,7 +5079,7 @@ void TryRunTics(tic_t realtics, tic_t entertic) netUpdateFudge = (((double)SDL_GetPerformanceCounter() / tic_frequency) - frame); // record the timefudge where the net update typically occurs //TODO SPLITSCREEN PLAYER - ticcmd_t latestLocalCmd = localcmds; + // ticcmd_t latestLocalCmd = localcmds; NetUpdate(); diff --git a/src/d_netcmd.c b/src/d_netcmd.c index 752175111..76d145b7c 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -2189,6 +2189,8 @@ static void Got_Mapcmd(UINT8 **cp, INT32 playernum) return; } + InvalidateSavestates(); + if (chmappending) chmappending--; diff --git a/src/p_savenetrb.c b/src/p_savenetrb.c index ff536d0f3..8706ea1d5 100755 --- a/src/p_savenetrb.c +++ b/src/p_savenetrb.c @@ -5774,8 +5774,8 @@ static inline boolean P_UnArchiveLuabanksAndConsistency(void) void P_GameStateFreeMemory(savestate_t* savestate) { - if (gamestate != GS_LEVEL) - Z_Free(savestate->buffer); + // if (gamestate != GS_LEVEL) + Z_Free(savestate->buffer); savestate->buffer = NULL; //a hacky way to invalidate the memory } @@ -5867,7 +5867,7 @@ boolean P_LoadGameState(const savestate_t* savestate) if (savedGameMap != gamemap) { // savestates do not work cross-level - save_p = NULL; //invalidate it + // save_p = NULL; //invalidate it //FUCK return false; } -- GitLab