This commit is contained in:
TehRealSalt 2018-11-29 05:36:45 -05:00
commit 97f0dc3875
4 changed files with 32 additions and 8 deletions

View file

@ -26,7 +26,11 @@
// SOME numpty changed all the gametype constants and it fell out of sync with vanilla and now we have to pretend to be vanilla when talking to the master server...
#define VANILLA_GT_RACE 2
#if VERSION < 210
#define VANILLA_GT_MATCH 1
#else
#define VANILLA_GT_MATCH 3
#endif
// Networking and tick handling related.
#define BACKUPTICS 32

View file

@ -4231,8 +4231,16 @@ static void PointLimit_OnChange(void)
static void NumLaps_OnChange(void)
{
if (!G_RaceGametype() || (modeattacking || demoplayback))
return;
if (server && Playing()
&& (netgame || multiplayer)
&& (mapheaderinfo[gamemap - 1]->levelflags & LF_SECTIONRACE)
&& (cv_numlaps.value > mapheaderinfo[gamemap - 1]->numlaps))
CV_StealthSetValue(&cv_numlaps, mapheaderinfo[gamemap - 1]->numlaps);
// Just don't be verbose
if (G_RaceGametype() && !(modeattacking || demoplayback))
CONS_Printf(M_GetText("Number of laps set to %d\n"), cv_numlaps.value);
}

View file

@ -2997,7 +2997,7 @@ void G_DoReborn(INT32 playernum)
// respawn at the start
mobj_t *oldmo = NULL;
if (player->starpostnum) // SRB2kart
if (player->starpostnum || ((mapheaderinfo[gamemap - 1]->levelflags & LF_SECTIONRACE) && player->laps)) // SRB2kart
starpost = true;
// first dissasociate the corpse

View file

@ -4240,12 +4240,24 @@ DoneSection2:
curlap = 0;
}
// Reset starposts (checkpoints) info
// SRB2kart 200117
player->starpostangle = player->starpostnum = 0;
player->starpostx = player->starposty = player->starpostz = 0;
//except the time!
player->starposttime = player->realtime;
player->starpostnum = 0;
if (mapheaderinfo[gamemap - 1]->levelflags & LF_SECTIONRACE)
{
// SRB2Kart 281118
// Save the player's time and position.
player->starpostx = player->mo->x>>FRACBITS;
player->starposty = player->mo->y>>FRACBITS;
player->starpostz = player->mo->floorz>>FRACBITS;
player->starpostangle = player->mo->angle; //R_PointToAngle2(0, 0, player->mo->momx, player->mo->momy); torn; a momentum-based guess is less likely to be wrong in general, but when it IS wrong, it fucks you over entirely...
}
else
{
// SRB2kart 200117
// Reset starposts (checkpoints) info
player->starpostangle = player->starpostx = player->starposty = player->starpostz = 0;
}
if (P_IsLocalPlayer(player))
{