Fix time multiplier

This commit is contained in:
Miloslav Ciz 2025-06-12 16:54:56 +02:00
parent 60cf16c8de
commit 74013219e5
2 changed files with 18 additions and 12 deletions

20
game.h
View file

@ -1246,7 +1246,7 @@ void LCR_gameDraw3DView(void)
!(LCR_racing.replay.on && LCR_replayHasFinished()) ?
LCR_GAME_UNIT -
((LCR_game.nextRacingTickTime - LCR_game.time) * LCR_GAME_UNIT)
/ LCR_RACING_TICK_MS
/ LCR_RACING_TICK_MS_RT
: LCR_GAME_UNIT / 2;
LCR_racingGetCarTransform(carTransform,carTransform + 3,
@ -1782,11 +1782,9 @@ uint8_t LCR_gameStep(uint32_t time)
if (LCR_game.state != LCR_GAME_STATE_RUN_FINISHED)
LCR_game.runTime = LCR_racing.tick;
LCR_game.nextRacingTickTime += LCR_RACING_TICK_MS;
LCR_game.nextRacingTickTime += LCR_RACING_TICK_MS_RT;
}
sleep = (3 * (LCR_game.nextRacingTickTime - time)) / 4;
// handle rendering:
if (time >= LCR_game.nextRenderFrameTime ||
LCR_game.state == LCR_GAME_STATE_LOADING)
@ -1822,11 +1820,6 @@ uint8_t LCR_gameStep(uint32_t time)
LCR_game.renderFramesMeasured++;
#endif
}
else
{
uint32_t tmp = (3 * (LCR_game.nextRenderFrameTime - time)) / 4;
sleep = tmp < sleep ? tmp : sleep;
}
if (LCR_game.state == LCR_GAME_STATE_LOADING)
{
@ -1837,6 +1830,15 @@ uint8_t LCR_gameStep(uint32_t time)
LCR_gameDrawPopupMessage();
}
if (LCR_game.nextRacingTickTime > time)
sleep = LCR_game.nextRenderFrameTime - time;
if (LCR_game.nextRenderFrameTime > time &&
LCR_game.nextRenderFrameTime - time < sleep)
sleep = LCR_game.nextRenderFrameTime - time;
sleep = (sleep * 3) / 4;
if (sleep)
LCR_sleep(sleep);
else