diff --git a/src/p_user.c b/src/p_user.c index 21bcc985a..35af9dcea 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -9711,7 +9711,17 @@ void P_PlayerThink(player_t *player) // Synchronizes the "real" amount of time spent in the level. if (!player->exiting) - player->realtime = leveltime; + { + if (gametype == GT_RACE || gametype == GT_COMPETITION) + { + if (leveltime >= 4*TICRATE) + player->realtime = leveltime - 4*TICRATE; + else + player->realtime = 0; + } + else + player->realtime = leveltime; + } if (player->spectator && cmd->buttons & BT_ATTACK && !player->powers[pw_flashing] && G_GametypeHasSpectators()) { diff --git a/src/st_stuff.c b/src/st_stuff.c index 14e82df1e..baa17e9f3 100644 --- a/src/st_stuff.c +++ b/src/st_stuff.c @@ -679,14 +679,7 @@ static void ST_drawTime(void) ST_drawRaceNum(hidetime*TICRATE - stplyr->realtime); // Time limit? - if (gametype == GT_RACE || gametype == GT_COMPETITION) - { - if (stplyr->realtime >= 4*TICRATE) - tics = stplyr->realtime - 4*TICRATE; - else - tics = 0; - } - else if (gametype != GT_COOP && cv_timelimit.value && timelimitintics > 0) + if (gametype != GT_COOP && gametype != GT_RACE && gametype != GT_COMPETITION && cv_timelimit.value && timelimitintics > 0) { if (timelimitintics >= stplyr->realtime) {