diff --git a/source/games/blood/src/d_menu.cpp b/source/games/blood/src/d_menu.cpp index fc45ba497..082055a69 100644 --- a/source/games/blood/src/d_menu.cpp +++ b/source/games/blood/src/d_menu.cpp @@ -82,7 +82,7 @@ void CGameMenuItemQAV::Draw(void) duration = data->duration; } auto currentDuration = data->duration - duration; - auto smoothratio = I_GetTimeFrac(data->ticrate) * MaxSmoothRatio; + auto smoothratio = !cl_interpolate || cl_capfps? MaxSmoothRatio : I_GetTimeFrac(data->ticrate) * MaxSmoothRatio; data->Play(currentDuration - data->ticksPerFrame, currentDuration, -1, NULL); diff --git a/source/games/blood/src/qav.cpp b/source/games/blood/src/qav.cpp index 242f85679..714ed1d32 100644 --- a/source/games/blood/src/qav.cpp +++ b/source/games/blood/src/qav.cpp @@ -308,7 +308,7 @@ void qavProcessTimer(PLAYER* const pPlayer, QAV* const pQAV, int* duration, doub { // Apply normal values. *duration = pQAV->duration - pPlayer->qavTimer; - *smoothratio = I_GetTimeFrac(pQAV->ticrate) * MaxSmoothRatio; + *smoothratio = !cl_interpolate || cl_capfps ? MaxSmoothRatio : I_GetTimeFrac(pQAV->ticrate) * MaxSmoothRatio; } } else diff --git a/source/games/blood/src/view.cpp b/source/games/blood/src/view.cpp index 8c8b2ac0c..b5f67f44b 100644 --- a/source/games/blood/src/view.cpp +++ b/source/games/blood/src/view.cpp @@ -549,7 +549,7 @@ void viewDrawScreen(bool sceneonly) if (!paused && (!M_Active() || gGameOptions.nGameType != 0)) { - gInterpolate = I_GetTimeFrac() * MaxSmoothRatio; + gInterpolate = !cl_interpolate || cl_capfps ? MaxSmoothRatio : I_GetTimeFrac() * MaxSmoothRatio; } else gInterpolate = MaxSmoothRatio; pm_smoothratio = (int)gInterpolate; diff --git a/source/games/duke/src/gameloop.cpp b/source/games/duke/src/gameloop.cpp index 5e6e6930a..05e322a49 100644 --- a/source/games/duke/src/gameloop.cpp +++ b/source/games/duke/src/gameloop.cpp @@ -128,7 +128,7 @@ void GameInterface::Render() drawtime.Reset(); drawtime.Clock(); videoSetBrightness(thunder_brightness); - double const smoothRatio = playrunning() ? I_GetTimeFrac() * MaxSmoothRatio : MaxSmoothRatio; + double const smoothRatio = !playrunning() || !cl_interpolate || cl_capfps ? MaxSmoothRatio : I_GetTimeFrac() * MaxSmoothRatio; displayrooms(screenpeek, smoothRatio); drawoverlays(smoothRatio); drawtime.Unclock(); diff --git a/source/games/exhumed/src/exhumed.cpp b/source/games/exhumed/src/exhumed.cpp index fa07cf1fb..d9de77f92 100644 --- a/source/games/exhumed/src/exhumed.cpp +++ b/source/games/exhumed/src/exhumed.cpp @@ -217,7 +217,7 @@ void DrawClock() double calc_smoothratio() { - if (bRecord || bPlayback || nFreeze != 0 || paused) + if (bRecord || bPlayback || nFreeze != 0 || paused || cl_capfps || !cl_interpolate) return MaxSmoothRatio; return I_GetTimeFrac() * MaxSmoothRatio; diff --git a/source/games/sw/src/game.cpp b/source/games/sw/src/game.cpp index cbce93bfd..19d525dc4 100644 --- a/source/games/sw/src/game.cpp +++ b/source/games/sw/src/game.cpp @@ -178,7 +178,7 @@ void GameInterface::LoadGameTextures() void GameInterface::app_init() { - GameTicRate = 40; + GameTicRate = TICS_PER_SEC / synctics; InitCheats(); automapping = 1; @@ -613,7 +613,7 @@ void GameInterface::Render() } else { - smoothratio = I_GetTimeFrac() * MaxSmoothRatio; + smoothratio = !cl_interpolate || cl_capfps ? MaxSmoothRatio : I_GetTimeFrac() * MaxSmoothRatio; } drawtime.Reset();