From 2d3f93e60e876083cb5c049c018ed8b3bd7b1915 Mon Sep 17 00:00:00 2001 From: Veyrdite Date: Sat, 24 Jul 2021 22:38:33 +1000 Subject: [PATCH] Fix car fake/cruise top gear SFX at high FPS. --- src/audio/AudioLogic.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/audio/AudioLogic.cpp b/src/audio/AudioLogic.cpp index 6c53eb10..34d58cb2 100644 --- a/src/audio/AudioLogic.cpp +++ b/src/audio/AudioLogic.cpp @@ -1977,11 +1977,18 @@ PlayCruising: SampleManager.StopChannel(CHANNEL_PLAYER_VEHICLE_ENGINE); if (isMoped || accelerateState >= 150 && wheelsOnGround && brakeState <= 0 && !params.m_pVehicle->bIsHandbrakeOn && !lostTraction && currentGear >= params.m_pTransmission->nNumberOfGears - 1) { - if (accelerateState >= 220 && params.m_fVelocityChange + 0.001f >= velocityChangeForAudio) { - if (nCruising < 800) - ++nCruising; - } else if (nCruising > 3) { - --nCruising; + +#ifdef FIX_BUGS + // Stop the fake top ("cruise") gear rising in pitch too quickly at high FPS. + if (CTimer::GetLogicalFramesPassed()) +#endif + { + if (accelerateState >= 220 && params.m_fVelocityChange + 0.001f >= velocityChangeForAudio) { + if (nCruising < 800) + ++nCruising; + } else if (nCruising > 3) { + --nCruising; + } } freq = 27 * nCruising + freqModifier + 22050; if (engineSoundType == SFX_BANK_TRUCK)