From 7db29a233249fd0c0ce37064c118072ca5b5a29e Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Fri, 9 Mar 2012 22:38:26 -0800 Subject: [PATCH] Clamp the upper and lower bound of the doppler velocity scale more like the original --- Alc/ALu.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Alc/ALu.c b/Alc/ALu.c index 29950d77..223928bb 100644 --- a/Alc/ALu.c +++ b/Alc/ALu.c @@ -625,14 +625,15 @@ ALvoid CalcSourceParams(ALsource *ALSource, const ALCcontext *ALContext) } // Calculate Velocity - if(DopplerFactor > 0.0f) + if(DopplerFactor > 0.0f && SpeedOfSound > 0.5f) { ALfloat VSS, VLS; VSS = aluDotproduct(Velocity, SourceToListener) * DopplerFactor; VLS = aluDotproduct(ListenerVel, SourceToListener) * DopplerFactor; - Pitch *= maxf(SpeedOfSound-VLS, 1.0f) / maxf(SpeedOfSound-VSS, 1.0f); + Pitch *= clampf(SpeedOfSound-VLS, 1.0f, SpeedOfSound*2.0f - 1.0f) / + clampf(SpeedOfSound-VSS, 1.0f, SpeedOfSound*2.0f - 1.0f); } BufferListItem = ALSource->queue; -- 2.11.4.GIT