Rework exit timing nittygritty

G: can't change any of this for compat reasons
- ~~exitcountdown is now used for both No Contest and regular exits~~
    - ~~Set in P_DoPlayerExit~~
    - ~~Handles sending XD_EXITLEVEL in P_Ticker~~
- ~~player->exiting is now 0 or 1 (we can make it a bool or a new timer later)~~
- ~~Fixes a longstanding bug where failing a GP round could restart multiple times~~
Also:
- Fix a possible waiting-in-the-wings issue where mapchanges would occour client-side in K_CheckBumpers
- Add `gptest` cheat - sets numlaps to 1 lap on mapload for quick but legitimate(ish) progression
This commit is contained in:
toaster 2022-10-13 17:37:35 +01:00 committed by GenericHeroGuy
parent ed77846963
commit 39b63505f1
4 changed files with 11 additions and 2 deletions

View file

@ -633,6 +633,7 @@ consvar_t cv_kartdebugcheckpoint = CVAR_INIT ("kartdebugcheckpoint", "Off", 0, C
consvar_t cv_kartdebugnodes = CVAR_INIT ("kartdebugnodes", "Off", 0, CV_OnOff, NULL);
consvar_t cv_kartdebugcolorize = CVAR_INIT ("kartdebugcolorize", "Off", 0, CV_OnOff, NULL);
consvar_t cv_kartdebugdirector = CVAR_INIT ("kartdebugdirector", "Off", 0, CV_OnOff, NULL);
consvar_t cv_gptest = CVAR_INIT ("gptest", "Off", CV_CHEAT|CV_NETVAR, CV_OnOff, NULL);
static CV_PossibleValue_t votetime_cons_t[] = {{10, "MIN"}, {3600, "MAX"}, {0, NULL}};
consvar_t cv_votetime = CVAR_INIT ("votetime", "20", CV_NETVAR, votetime_cons_t, NULL);

View file

@ -224,6 +224,7 @@ extern consvar_t cv_kartdebugitem, cv_kartdebugamount, cv_kartdebugdistribution,
extern consvar_t cv_kartdebugshrink;
extern consvar_t cv_kartdebugcheckpoint, cv_kartdebugnodes, cv_kartdebugcolorize, cv_kartdebugdirector;
extern consvar_t cv_kartdebugwaypoints, cv_kartdebuglap, cv_kartdebugbot, cv_kartdebugcluster, cv_kartdebugrings;
extern consvar_t cv_gptest;
extern consvar_t cv_itemfinder;

View file

@ -274,7 +274,8 @@ void K_CheckBumpers(void)
if (!itembreaker && cv_kartitembreaker.value)
{
// Reset map to turn on battle capsules
D_MapChange(gamemap, gametype, encoremode, true, 0, false, false);
if (server)
D_MapChange(gamemap, gametype, encoremode, true, 0, false, false);
}
else
{

View file

@ -6604,7 +6604,13 @@ UINT8 K_RaceLapCount(INT16 mapNum)
return 0;
}
if (cv_numlaps.value == -1 || modeattacking != ATTACKING_NONE)
if (cv_gptest.value)
{
// For testing
return 1;
}
if (cv_numlaps.value == -1 || K_CanChangeRules() == false)
{
// Use map default
return mapheaderinfo[mapNum]->numlaps;