diff --git a/src/k_kart.c b/src/k_kart.c index dc2afcef1..d1e2daa95 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -10157,7 +10157,7 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd) { player->finalfailsafe++; // Decremented by ringshooter to "freeze" this timer // Part-way through the auto-respawn timer, you can tap Ring Shooter to respawn early - if (player->finalfailsafe >= 4*TICRATE || + if (player->finalfailsafe >= FAILSAFETIME || (player->bigwaypointgap && player->bigwaypointgap < AUTORESPAWN_THRESHOLD)) { K_DoIngameRespawn(player); diff --git a/src/k_kart.h b/src/k_kart.h index 67d4fb31a..fc27bb1a8 100644 --- a/src/k_kart.h +++ b/src/k_kart.h @@ -90,6 +90,8 @@ Make sure this matches the actual number of states #define RINGVOLUMEREGEN 1 #define RINGTRANSPARENCYREGEN 3 +#define FAILSAFETIME (4*TICRATE) + #define DUELOVERTIME (cv_dueltimelimit.value) #define DUELWINNINGSCORE (cv_duelscorelimit.value) diff --git a/src/k_respawn.c b/src/k_respawn.c index d08c8d6c2..f54b1419e 100644 --- a/src/k_respawn.c +++ b/src/k_respawn.c @@ -141,12 +141,16 @@ void K_DoIngameRespawn(player_t *player) return; } - if (player->respawn.state != RESPAWNST_NONE && - ( player->pflags & PF_FAULT ) == 0) + if (player->finalfailsafe < FAILSAFETIME) { - return; + if (player->respawn.state != RESPAWNST_NONE && + ( player->pflags & PF_FAULT ) == 0) + { + return; + } } + if (leveltime <= introtime) { return;