diff options
Diffstat (limited to 'engines')
| -rw-r--r-- | engines/tsage/sound.cpp | 10 | ||||
| -rw-r--r-- | engines/tsage/sound.h | 1 | 
2 files changed, 10 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) { diff --git a/engines/tsage/sound.h b/engines/tsage/sound.h index 0da54fc179..9a8cfb3cfc 100644 --- a/engines/tsage/sound.h +++ b/engines/tsage/sound.h @@ -361,6 +361,7 @@ public:  	int _cueValue;  	ASound(); +	~ASound();  	virtual void synchronize(Serializer &s);  	virtual void dispatch();  | 
