diff --git a/src/common/audio/music/music_config.cpp b/src/common/audio/music/music_config.cpp index efdb05637..5ea5e97d9 100644 --- a/src/common/audio/music/music_config.cpp +++ b/src/common/audio/music/music_config.cpp @@ -95,7 +95,7 @@ CUSTOM_CVAR(Bool, adl_use_custom_bank, false, CVAR_ARCHIVE | CVAR_VIRTUAL) FORWARD_BOOL_CVAR(adl_use_custom_bank); } -CUSTOM_CVAR(String, adl_custom_bank, "", CVAR_ARCHIVE | CVAR_VIRTUAL) +CUSTOM_CVAR(String, adl_custom_bank, "", CVAR_ARCHIVE | CVAR_VIRTUAL | CVAR_SYSTEM_ONLY) { FORWARD_STRING_CVAR(adl_custom_bank); } @@ -111,12 +111,12 @@ CUSTOM_CVAR(Int, adl_volume_model, 0 /*ADLMIDI_VolumeModel_AUTO*/, CVAR_ARCHIVE // //========================================================================== -CUSTOM_CVAR(String, fluid_lib, "", CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_VIRTUAL) +CUSTOM_CVAR(String, fluid_lib, "", CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_VIRTUAL | CVAR_SYSTEM_ONLY) { FORWARD_STRING_CVAR(fluid_lib); } -CUSTOM_CVAR(String, fluid_patchset, GAMENAMELOWERCASE, CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_VIRTUAL) +CUSTOM_CVAR(String, fluid_patchset, GAMENAMELOWERCASE, CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_VIRTUAL | CVAR_SYSTEM_ONLY) { FORWARD_STRING_CVAR(fluid_patchset); } @@ -278,7 +278,7 @@ CUSTOM_CVAR(String, opn_custom_bank, "", CVAR_ARCHIVE | CVAR_VIRTUAL) //========================================================================== -CUSTOM_CVAR(String, midi_config, "", CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_VIRTUAL) +CUSTOM_CVAR(String, midi_config, "", CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_VIRTUAL | CVAR_SYSTEM_ONLY) { FORWARD_STRING_CVAR(gus_config); } @@ -288,7 +288,7 @@ CUSTOM_CVAR(Bool, midi_dmxgus, false, CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_VI FORWARD_BOOL_CVAR(gus_dmxgus); } -CUSTOM_CVAR(String, gus_patchdir, "", CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_VIRTUAL) +CUSTOM_CVAR(String, gus_patchdir, "", CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_VIRTUAL | CVAR_SYSTEM_ONLY) { FORWARD_STRING_CVAR(gus_patchdir); } @@ -395,7 +395,7 @@ CUSTOM_CVAR(Float, timidity_min_sustain_time, 5000.f, CVAR_ARCHIVE | CVAR_GLOBAL } #endif -CUSTOM_CVAR(String, timidity_config, GAMENAMELOWERCASE, CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_VIRTUAL) +CUSTOM_CVAR(String, timidity_config, GAMENAMELOWERCASE, CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_VIRTUAL | CVAR_SYSTEM_ONLY) { FORWARD_STRING_CVAR(timidity_config); } @@ -406,7 +406,7 @@ CUSTOM_CVAR(String, timidity_config, GAMENAMELOWERCASE, CVAR_ARCHIVE | CVAR_GLOB // //========================================================================== -CUSTOM_CVAR(String, wildmidi_config, "", CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_VIRTUAL) +CUSTOM_CVAR(String, wildmidi_config, "", CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_VIRTUAL | CVAR_SYSTEM_ONLY) { FORWARD_STRING_CVAR(wildmidi_config); } diff --git a/src/common/console/c_cvars.h b/src/common/console/c_cvars.h index c52af0aeb..ccc3cfa6a 100644 --- a/src/common/console/c_cvars.h +++ b/src/common/console/c_cvars.h @@ -75,6 +75,8 @@ enum CVAR_CONFIG_ONLY = 1 << 18, // do not save var to savegame and do not send it across network. CVAR_ZS_CUSTOM = 1 << 19, // Custom CVar backed by a ZScript class CVAR_ZS_CUSTOM_CLONE = 1 << 20, // Clone of a Custom ZScript CVar + + CVAR_SYSTEM_ONLY = 1 << 21, // System-related cvar that should only ever be changed by the user }; enum ECVarType diff --git a/src/common/menu/savegamemanager.cpp b/src/common/menu/savegamemanager.cpp index 929d631d1..efb5a02af 100644 --- a/src/common/menu/savegamemanager.cpp +++ b/src/common/menu/savegamemanager.cpp @@ -49,7 +49,7 @@ #include "m_argv.h" #include "i_specialpaths.h" -CVAR(String, save_dir, "", CVAR_ARCHIVE | CVAR_GLOBALCONFIG); +CVAR(String, save_dir, "", CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_SYSTEM_ONLY); FString SavegameFolder; CVAR(Int, save_sort_order, 0, CVAR_ARCHIVE | CVAR_GLOBALCONFIG) diff --git a/src/d_defcvars.cpp b/src/d_defcvars.cpp index bcd8ad194..ca274a7fe 100644 --- a/src/d_defcvars.cpp +++ b/src/d_defcvars.cpp @@ -134,6 +134,9 @@ void D_GrabCVarDefaults() var = FindCVar(CurrentFindCVar.GetChars(), NULL); + if (var->GetFlags() & CVAR_SYSTEM_ONLY) + blacklisted = true; + if (blacklisted) { sc.ScriptMessage("Cannot set cvar default for blacklisted cvar '%s'", sc.String);