Merge branch 'fix-ghost-fast-forward' into 'master'

Time Attack ghosts: sync with level timer instead of when the player crosses the finish line

Closes #829

See merge request KartKrew/Kart!1895
This commit is contained in:
Eidolon 2024-02-06 01:12:35 +00:00
commit 92339d36a9
2 changed files with 6 additions and 4 deletions

View file

@ -1220,8 +1220,8 @@ void G_GhostTicker(void)
continue; continue;
} }
// Pause jhosts that cross until we cross ourself. // Pause jhosts that cross until the timer starts.
if (g->linecrossed && !linecrossed) if (g->linecrossed && leveltime < starttime)
continue; continue;
readghosttic: readghosttic:
@ -1531,7 +1531,8 @@ skippedghosttic:
continue; continue;
} }
if (linecrossed && !g->linecrossed) // If the timer started, skip ahead until the ghost starts too.
if (starttime <= leveltime && !g->linecrossed)
goto readghosttic; goto readghosttic;
p = g; p = g;

View file

@ -1961,7 +1961,8 @@ static void K_HandleLapIncrement(player_t *player)
linecrossed = leveltime; linecrossed = leveltime;
if (starttime > leveltime) // Overlong starts shouldn't reset time on cross if (starttime > leveltime) // Overlong starts shouldn't reset time on cross
starttime = leveltime; starttime = leveltime;
demo_extradata[player-players] |= DXD_START; if (demo.recording)
demo_extradata[player-players] |= DXD_START;
Music_Stop("position"); Music_Stop("position");
} }