mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-02-20 19:02:34 +00:00
Skip unchanged value validation in CV_SetCVar if there is a can_change callback
This commit is contained in:
parent
c4dbf42ded
commit
c9318599c7
2 changed files with 9 additions and 5 deletions
|
@ -1988,7 +1988,7 @@ static void CV_SetCVar(consvar_t *var, const char *value, boolean stealth)
|
|||
if (!var->string)
|
||||
I_Error("CV_Set: %s no string set!\n", var->name);
|
||||
#endif
|
||||
if (!var || !var->string || !value || !stricmp(var->string, value))
|
||||
if (!var || !var->string || !value || (var->can_change == NULL && !stricmp(var->string, value)))
|
||||
return; // no changes
|
||||
|
||||
if (var->flags & CV_NETVAR)
|
||||
|
|
|
@ -4910,14 +4910,16 @@ static void Name2_OnChange(void)
|
|||
|
||||
static boolean Skin_CanChange(const char *valstr)
|
||||
{
|
||||
(void)valstr;
|
||||
|
||||
if (!Playing())
|
||||
return true; // do whatever you want
|
||||
|
||||
if (!(multiplayer || netgame)) // In single player.
|
||||
return true;
|
||||
|
||||
// You already are that skin.
|
||||
if (stricmp(skins[players[consoleplayer].skin]->name, valstr) == 0)
|
||||
return false;
|
||||
|
||||
if (CanChangeSkin(consoleplayer) && !P_PlayerMoving(consoleplayer))
|
||||
return true;
|
||||
else
|
||||
|
@ -4929,11 +4931,13 @@ static boolean Skin_CanChange(const char *valstr)
|
|||
|
||||
static boolean Skin2_CanChange(const char *valstr)
|
||||
{
|
||||
(void)valstr;
|
||||
|
||||
if (!Playing() || !splitscreen)
|
||||
return true; // do whatever you want
|
||||
|
||||
// You already are that skin.
|
||||
if (stricmp(skins[players[secondarydisplayplayer].skin]->name, valstr) == 0)
|
||||
return false;
|
||||
|
||||
if (CanChangeSkin(secondarydisplayplayer) && !P_PlayerMoving(secondarydisplayplayer))
|
||||
return true;
|
||||
else
|
||||
|
|
Loading…
Reference in a new issue