Fix changing gamespeed from the menu, for real

I originally wrote a ridiculous attempt at reimplementing the existing value rollaround. For one reason or another, that sidesteps net transmission. Let's just avoid all those hacks and limit our influence to changing the maximum allowed range.
This commit is contained in:
toaster 2022-08-11 23:18:48 +01:00
parent c657a47d56
commit a60052b35d

View file

@ -1725,6 +1725,7 @@ void CV_AddValue(consvar_t *var, INT32 increment)
if (var->PossibleValue[max].value == var->value) if (var->PossibleValue[max].value == var->value)
currentindice = max; currentindice = max;
// The following options will NOT handle netsyncing.
if (var == &cv_chooseskin) if (var == &cv_chooseskin)
{ {
// Special case for the chooseskin variable, used only directly from the menu // Special case for the chooseskin variable, used only directly from the menu
@ -1783,28 +1784,7 @@ void CV_AddValue(consvar_t *var, INT32 increment)
} }
else if (var == &cv_kartspeed) else if (var == &cv_kartspeed)
{ {
INT32 maxspeed = (M_SecretUnlocked(SECRET_HARDSPEED) ? 2 : 1); max = (M_SecretUnlocked(SECRET_HARDSPEED) ? 3 : 2);
// Special case for the kartspeed variable, used only directly from the menu to prevent selecting hard mode
if (increment > 0) // Going up!
{
newvalue = var->value + 1;
if (newvalue > maxspeed)
newvalue = 0;
var->value = newvalue;
var->string = var->PossibleValue[var->value].strvalue;
var->func();
return;
}
else if (increment < 0) // Going down!
{
newvalue = var->value - 1;
if (newvalue < 0)
newvalue = maxspeed;
var->value = newvalue;
var->string = var->PossibleValue[var->value].strvalue;
var->func();
return;
}
} }
#ifdef PARANOIA #ifdef PARANOIA
if (currentindice == -1) if (currentindice == -1)