diff --git a/code/nel/src/sound/driver/source.cpp b/code/nel/src/sound/driver/source.cpp index a35698d1c..6ef5e420c 100644 --- a/code/nel/src/sound/driver/source.cpp +++ b/code/nel/src/sound/driver/source.cpp @@ -89,9 +89,17 @@ float ISource::computeManualRolloff(double alpha, float sqrdist, float distMin, float rolloff = distMin / dist; if (alpha <= -1.0f) return rolloff; - double mb = mbMin * (dist - distMin) / (distMax - distMin); - float mbrolloff = (float)pow(10.0, (double)mb / 2000.0); - return ((1.0 + alpha) * mbrolloff - alpha * rolloff); + if (dist > distMax) + { + // full attenuation of mbrolloff + return (-alpha * rolloff); + } + else + { + double mb = mbMin * (dist - distMin) / (distMax - distMin); + float mbrolloff = (float)pow(10.0, (double)mb / 2000.0); + return ((1.0 + alpha) * mbrolloff - alpha * rolloff); + } } else {