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;