Properly update the near water sound volume

This commit is contained in:
Chris Robinson 2017-09-12 17:00:39 -07:00
parent 0b720cd90c
commit 033303b911

View file

@ -931,11 +931,14 @@ namespace MWSound
mOutput->finishSound(mNearWaterSound); mOutput->finishSound(mNearWaterSound);
mNearWaterSound = nullptr; mNearWaterSound = nullptr;
} }
else if(LastCell != curcell) else
{ {
bool soundIdChanged = false; bool soundIdChanged = false;
Sound_Buffer* sfx = lookupSound(soundId); Sound_Buffer *sfx = lookupSound(soundId);
if(LastCell != curcell)
{
LastCell = curcell;
SoundMap::const_iterator snditer = mActiveSounds.find(MWWorld::Ptr()); SoundMap::const_iterator snditer = mActiveSounds.find(MWWorld::Ptr());
if(snditer != mActiveSounds.end()) if(snditer != mActiveSounds.end())
{ {
@ -947,9 +950,9 @@ namespace MWSound
if (pairiter != snditer->second.end() && pairiter->second != sfx) if (pairiter != snditer->second.end() && pairiter->second != sfx)
soundIdChanged = true; soundIdChanged = true;
} }
}
LastCell = curcell; if(soundIdChanged)
if (soundIdChanged)
{ {
mOutput->finishSound(mNearWaterSound); mOutput->finishSound(mNearWaterSound);
mNearWaterSound = playSound(soundId, volume, 1.0f, Play_TypeSfx, Play_Loop); mNearWaterSound = playSound(soundId, volume, 1.0f, Play_TypeSfx, Play_Loop);