diff --git a/src/g_demo.c b/src/g_demo.c index 4b51c85d7..06943e741 100644 --- a/src/g_demo.c +++ b/src/g_demo.c @@ -1237,8 +1237,8 @@ void G_GhostTicker(void) continue; } - // Pause jhosts that cross until we cross ourself. - if (g->linecrossed && !linecrossed) + // Pause jhosts that cross until the timer starts. + if (g->linecrossed && leveltime < starttime) continue; readghosttic: @@ -1548,7 +1548,8 @@ skippedghosttic: continue; } - if (linecrossed && !g->linecrossed) + // If the timer started, skip ahead until the ghost starts too. + if (starttime <= leveltime && !g->linecrossed) goto readghosttic; p = g; diff --git a/src/p_spec.c b/src/p_spec.c index e42c6f89c..5a79c0942 100644 --- a/src/p_spec.c +++ b/src/p_spec.c @@ -1961,7 +1961,8 @@ static void K_HandleLapIncrement(player_t *player) linecrossed = leveltime; if (starttime > leveltime) // Overlong starts shouldn't reset time on cross starttime = leveltime; - demo_extradata[player-players] |= DXD_START; + if (demo.recording) + demo_extradata[player-players] |= DXD_START; Music_Stop("position"); }