From 5d08563975ff07696f4e0ac184d7a0f74f70dbc6 Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Sun, 18 Mar 2012 08:20:08 -0700 Subject: [PATCH] Handle very small speed of sound values --- Alc/ALu.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Alc/ALu.c b/Alc/ALu.c index fc0980e8..4a0d4d38 100644 --- a/Alc/ALu.c +++ b/Alc/ALu.c @@ -636,10 +636,16 @@ ALvoid CalcSourceParams(ALsource *ALSource, const ALCcontext *ALContext) } // Calculate Velocity - if(DopplerFactor > 0.0f && SpeedOfSound > 0.5f) + if(DopplerFactor > 0.0f) { ALfloat VSS, VLS; + if(SpeedOfSound < 1.0f) + { + DopplerFactor *= 1.0f/SpeedOfSound; + SpeedOfSound = 1.0f; + } + VSS = aluDotproduct(Velocity, SourceToListener) * DopplerFactor; VLS = aluDotproduct(ListenerVel, SourceToListener) * DopplerFactor;