diff options
author | Paul Gilbert | 2011-06-22 18:58:59 +1000 |
---|---|---|
committer | Paul Gilbert | 2011-06-22 18:58:59 +1000 |
commit | f67f069e3f830b824f1f61db03ebbe7bddb9c19f (patch) | |
tree | b14884b2d98da7ff70393b771670987201dc8949 /engines/tsage/sound.cpp | |
parent | 7ef6bea74ef157d57c75cf3d582c838dbc651b87 (diff) | |
download | scummvm-rg350-f67f069e3f830b824f1f61db03ebbe7bddb9c19f.tar.gz scummvm-rg350-f67f069e3f830b824f1f61db03ebbe7bddb9c19f.tar.bz2 scummvm-rg350-f67f069e3f830b824f1f61db03ebbe7bddb9c19f.zip |
TSAGE: Fix sounds not getting registered in Globals::_sounds
This fixes a problem in Scene 20 where the scene wasn't ending after a sound fade
Diffstat (limited to 'engines/tsage/sound.cpp')
-rw-r--r-- | engines/tsage/sound.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/engines/tsage/sound.cpp b/engines/tsage/sound.cpp index 980e080e73..d57aa876e2 100644 --- a/engines/tsage/sound.cpp +++ b/engines/tsage/sound.cpp @@ -302,7 +302,8 @@ void SoundManager::addToPlayList(Sound *sound) { } void SoundManager::removeFromPlayList(Sound *sound) { - _sfRemoveFromPlayList(sound); + if (_soundManager) + _sfRemoveFromPlayList(sound); } bool SoundManager::isOnPlayList(Sound *sound) { @@ -2246,6 +2247,13 @@ int Sound::_soFindSound(VoiceTypeStruct *vtStruct, int channelNum) { ASound::ASound(): EventHandler() { _action = NULL; _cueValue = -1; + if (_globals) + _globals->_sounds.push_back(this); +} + +ASound::~ASound() { + if (_globals) + _globals->_sounds.remove(this); } void ASound::synchronize(Serializer &s) { |