Fixes for -skill parameter on game boot

- Forbid Hard Speed and Master Mode when not unlocked
- Don't set invalid game speed if provided skill is invalid
This commit is contained in:
toaster 2023-02-27 14:02:54 +00:00
parent 102ada37ca
commit 36d5c38915

View file

@ -1828,23 +1828,32 @@ void D_SRB2Main(void)
newskill = (INT16)j;
}
if (grandprixinfo.gp == true)
// Invalidate if locked.
if ((newskill >= KARTSPEED_HARD && !M_SecretUnlocked(SECRET_HARDSPEED, true))
|| (newskill >= KARTGP_MASTER && !M_SecretUnlocked(SECRET_MASTERMODE, true)))
{
if (newskill == KARTGP_MASTER)
{
grandprixinfo.masterbots = true;
newskill = KARTSPEED_HARD;
}
grandprixinfo.gamespeed = newskill;
}
else if (newskill == KARTGP_MASTER)
{
newskill = KARTSPEED_HARD;
newskill = -1;
}
if (newskill != -1)
{
if (grandprixinfo.gp == true)
{
if (newskill == KARTGP_MASTER)
{
grandprixinfo.masterbots = true;
newskill = KARTSPEED_HARD;
}
grandprixinfo.gamespeed = newskill;
}
else if (newskill == KARTGP_MASTER)
{
newskill = KARTSPEED_HARD;
}
CV_SetValue(&cv_kartspeed, newskill);
}
}
if (server && (dedicated || !M_CheckParm("+map")))