diff --git a/source/games/blood/src/qav.cpp b/source/games/blood/src/qav.cpp index 7937b6d84..bc0810605 100644 --- a/source/games/blood/src/qav.cpp +++ b/source/games/blood/src/qav.cpp @@ -268,26 +268,34 @@ void qavProcessTicker(QAV* const pQAV, int* duration, int* lastTick) void qavProcessTimer(PLAYER* const pPlayer, QAV* const pQAV, int* duration, double* smoothratio, bool const fixedduration) { - // Process clock based on QAV's ticrate and last tick value. - qavProcessTicker(pQAV, &pPlayer->qavTimer, &pPlayer->qavLastTick); + // Process if not paused. + if (!paused) + { + // Process clock based on QAV's ticrate and last tick value. + qavProcessTicker(pQAV, &pPlayer->qavTimer, &pPlayer->qavLastTick); - if (pPlayer->weaponTimer == 0) - { - // Check if we're playing an idle QAV as per the ticker's weapon timer. - *duration = fixedduration ? pQAV->duration - 1 : I_GetBuildTime() % pQAV->duration; - *smoothratio = MaxSmoothRatio; - } - else if (pPlayer->qavTimer == 0) - { - // If qavTimer is 0, play the last frame uninterpolated. Sometimes the timer can be just ahead of weaponTimer. - *duration = pQAV->duration - 1; - *smoothratio = MaxSmoothRatio; + if (pPlayer->weaponTimer == 0) + { + // Check if we're playing an idle QAV as per the ticker's weapon timer. + *duration = fixedduration ? pQAV->duration - 1 : I_GetBuildTime() % pQAV->duration; + *smoothratio = MaxSmoothRatio; + } + else if (pPlayer->qavTimer == 0) + { + // If qavTimer is 0, play the last frame uninterpolated. Sometimes the timer can be just ahead of weaponTimer. + *duration = pQAV->duration - 1; + *smoothratio = MaxSmoothRatio; + } + else + { + // Apply normal values. + *duration = pQAV->duration - pPlayer->qavTimer; + *smoothratio = I_GetTimeFrac(pQAV->ticrate) * MaxSmoothRatio; + } } else { - // Apply normal values. - *duration = pQAV->duration - pPlayer->qavTimer; - *smoothratio = I_GetTimeFrac(pQAV->ticrate) * MaxSmoothRatio; + *smoothratio = MaxSmoothRatio; } }