From 1dec189146b98cb2eed5d070b4da644dc1ab7946 Mon Sep 17 00:00:00 2001 From: nashmuhandes Date: Sun, 16 Jul 2023 01:15:25 +0800 Subject: [PATCH] Add CHANGELEVEL_NOAUTOSAVE flag to ChangeLevel to allow scripted level-switching to bypass autosaving --- src/g_level.cpp | 4 ++++ src/g_level.h | 1 + wadsrc/static/zscript/constants.zs | 3 ++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/g_level.cpp b/src/g_level.cpp index 75b73bed8..d910d8cb5 100644 --- a/src/g_level.cpp +++ b/src/g_level.cpp @@ -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; diff --git a/src/g_level.h b/src/g_level.h index 75a0aab56..1b10a38da 100644 --- a/src/g_level.h +++ b/src/g_level.h @@ -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); diff --git a/wadsrc/static/zscript/constants.zs b/wadsrc/static/zscript/constants.zs index 8efc4e7e8..0398b678f 100644 --- a/wadsrc/static/zscript/constants.zs +++ b/wadsrc/static/zscript/constants.zs @@ -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.