aboutsummaryrefslogtreecommitdiff
path: root/engines/tsage/sound.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2011-06-22 18:58:59 +1000
committerPaul Gilbert2011-06-22 18:58:59 +1000
commitf67f069e3f830b824f1f61db03ebbe7bddb9c19f (patch)
treeb14884b2d98da7ff70393b771670987201dc8949 /engines/tsage/sound.cpp
parent7ef6bea74ef157d57c75cf3d582c838dbc651b87 (diff)
downloadscummvm-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.cpp10
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) {