- fixed: CVar.ResetToDefault was missing a check for use outside of menus.

This commit is contained in:
Christoph Oelckers 2018-11-17 15:23:57 +01:00
parent cfa11046ab
commit bb4007f16a
1 changed files with 12 additions and 3 deletions

View File

@ -225,7 +225,7 @@ DEFINE_ACTION_FUNCTION(_CVar, SetInt)
// Only menus are allowed to change non-mod CVARs.
if (DMenu::InMenu == 0)
{
I_FatalError("Attempt to change CVAR '%s' outside of menu code", self->GetName());
ThrowAbortException(X_OTHER, "Attempt to change CVAR '%s' outside of menu code", self->GetName());
}
}
PARAM_INT(val);
@ -243,7 +243,7 @@ DEFINE_ACTION_FUNCTION(_CVar, SetFloat)
// Only menus are allowed to change non-mod CVARs.
if (DMenu::InMenu == 0)
{
I_FatalError("Attempt to change CVAR '%s' outside of menu code", self->GetName());
ThrowAbortException(X_OTHER, "Attempt to change CVAR '%s' outside of menu code", self->GetName());
}
}
PARAM_FLOAT(val);
@ -262,7 +262,7 @@ DEFINE_ACTION_FUNCTION(_CVar, SetString)
// Only menus are allowed to change non-mod CVARs.
if (DMenu::InMenu == 0)
{
I_FatalError("Attempt to change CVAR '%s' outside of menu code", self->GetName());
ThrowAbortException(X_OTHER, "Attempt to change CVAR '%s' outside of menu code", self->GetName());
}
}
PARAM_STRING(val);
@ -1161,6 +1161,15 @@ void FBaseCVar::ResetToDefault ()
DEFINE_ACTION_FUNCTION(_CVar, ResetToDefault)
{
PARAM_SELF_STRUCT_PROLOGUE(FBaseCVar);
if (!(self->GetFlags() & CVAR_MOD))
{
// Only menus are allowed to change non-mod CVARs.
if (DMenu::InMenu == 0)
{
ThrowAbortException(X_OTHER, "Attempt to change CVAR '%s' outside of menu code", self->GetName());
}
}
self->ResetToDefault();
return 0;
}