From 5d19085dfe330602d6d66573b5ca619ccb210a56 Mon Sep 17 00:00:00 2001 From: Veyrdite Date: Sun, 1 Aug 2021 15:14:32 +1000 Subject: [PATCH] Fix car fake/cruise top gear SFX at high FPS. Re-implements 2d3f93e60e876083cb5c049c018ed8b3bd7b1915 --- src/audio/AudioLogic.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/audio/AudioLogic.cpp b/src/audio/AudioLogic.cpp index 56463be0..7b686654 100644 --- a/src/audio/AudioLogic.cpp +++ b/src/audio/AudioLogic.cpp @@ -2347,11 +2347,17 @@ 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 + // Prevent the fake top gear ("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)