Merge branch 'speedy-savestate' into 'master'

Don't reload level on gamestate resend

See merge request KartKrew/Kart!2225
This commit is contained in:
Oni 2024-08-24 07:22:48 +00:00 committed by NepDisk
parent 9352d77c92
commit 4a5c7fcae2

View file

@ -5344,6 +5344,8 @@ FUNCINLINE static ATTRINLINE boolean P_NetUnArchiveMisc(savebuffer_t *save, bool
size_t i;
size_t numTasks;
const INT16 prevgamemap = gamemap;
if (READUINT32(save->p) != ARCHIVEBLOCK_MISC)
I_Error("Bad $$$.sav at archive block Misc");
@ -5383,10 +5385,19 @@ FUNCINLINE static ATTRINLINE boolean P_NetUnArchiveMisc(savebuffer_t *save, bool
mapmusrng = READUINT8(save->p);
if (!P_LoadLevel(true, reloading))
// Only reload the level during a gamestate reload
// if the map is horribly mismatched somehow. Minor
// differences in level state are already handled
// by other parts of the reload, so doing this
// on *every* reload wastes lots of time that we
// will need for rollback down the road.
if (!reloading || prevgamemap != gamemap)
{
CONS_Alert(CONS_ERROR, M_GetText("Can't load the level!\n"));
return false;
if (!P_LoadLevel(true, reloading))
{
CONS_Alert(CONS_ERROR, M_GetText("Can't load the level!\n"));
return false;
}
}
// get the time