Add CHANGELEVEL_NOAUTOSAVE flag to ChangeLevel to allow scripted level-switching to bypass autosaving

This commit is contained in:
nashmuhandes 2023-07-16 01:15:25 +08:00 committed by Magnus Norddahl
commit 1dec189146
3 changed files with 7 additions and 1 deletions

View file

@ -1425,6 +1425,10 @@ void FLevelLocals::DoLoadLevel(const FString &nextmapname, int position, bool au
{
flags2 |= LEVEL2_PRERAISEWEAPON;
}
if (changeflags & CHANGELEVEL_NOAUTOSAVE)
{
flags9 |= LEVEL9_NOAUTOSAVEONENTER;
}
maptime = 0;

View file

@ -27,6 +27,7 @@ enum
CHANGELEVEL_NOINTERMISSION = 16,
CHANGELEVEL_RESETHEALTH = 32,
CHANGELEVEL_PRERAISEWEAPON = 64,
CHANGELEVEL_NOAUTOSAVE = 128,
};
void G_DoLoadLevel (const FString &MapName, int position, bool autosave, bool newGame);

View file

@ -1263,6 +1263,7 @@ enum EChangeLevelFlags
CHANGELEVEL_NOINTERMISSION = 16,
CHANGELEVEL_RESETHEALTH = 32,
CHANGELEVEL_PRERAISEWEAPON = 64,
CHANGELEVEL_NOAUTOSAVE = 128,
};
enum ELevelFlags
@ -1382,7 +1383,7 @@ enum ELevelFlags
LEVEL9_NOUSERSAVE = 0x00000001,
LEVEL9_NOAUTOMAP = 0x00000002,
LEVEL9_NOAUTOSAVEONENTER = 0x00000004, // don't make an autosave when entering a map
LEVEL9_NOAUTOSAVEONENTER = 0x00000004, // don't make an autosave when entering a map
};
// [RH] Compatibility flags.