From 40b8934487dc29612dbed77d42802fedc91e57f5 Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Sat, 18 Jun 2011 16:45:26 -0700 Subject: Calculate wet gain when needed --- Alc/ALu.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'Alc') diff --git a/Alc/ALu.c b/Alc/ALu.c index 6d7fdfe3..185f48c5 100644 --- a/Alc/ALu.c +++ b/Alc/ALu.c @@ -491,15 +491,13 @@ ALvoid CalcSourceParams(ALsource *ALSource, const ALCcontext *ALContext) break; } - // Source Gain + Attenuation - DryGain = SourceVolume * Attenuation; - for(i = 0;i < NumSends;i++) - WetGain[i] = SourceVolume * RoomAttenuation[i]; - EffectiveDist = 0.0f; if(MinDist > 0.0f && Attenuation < 1.0f) EffectiveDist = (MinDist/Attenuation - MinDist)*MetersPerUnit; + // Source Gain + Attenuation + DryGain = SourceVolume * Attenuation; + // Distance-based air absorption if(AirAbsorptionFactor > 0.0f && EffectiveDist > 0.0f) { @@ -554,6 +552,7 @@ ALvoid CalcSourceParams(ALsource *ALSource, const ALCcontext *ALContext) if(Slot->AuxSendAuto) { + WetGain[i] = SourceVolume * RoomAttenuation[i]; if(ALSource->WetGainAuto) WetGain[i] *= ConeVolume; if(ALSource->WetGainHFAuto) -- cgit v1.2.3