aboutsummaryrefslogtreecommitdiff
path: root/engines/tsage/sound.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2011-08-01 22:36:21 +1000
committerPaul Gilbert2011-08-01 22:36:21 +1000
commit8f70ee9afc877b22123269669d155e710a467c4b (patch)
tree6a5cfc1754122a797f5d127c373238e0e08e2f31 /engines/tsage/sound.cpp
parent10033ca976feabf365c9378f4156724d76fe64c5 (diff)
downloadscummvm-rg350-8f70ee9afc877b22123269669d155e710a467c4b.tar.gz
scummvm-rg350-8f70ee9afc877b22123269669d155e710a467c4b.tar.bz2
scummvm-rg350-8f70ee9afc877b22123269669d155e710a467c4b.zip
TSAGE: Wait for fading sounds to completely fade when changing scenes
Diffstat (limited to 'engines/tsage/sound.cpp')
-rw-r--r--engines/tsage/sound.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/engines/tsage/sound.cpp b/engines/tsage/sound.cpp
index d054949f2d..1754bd71b9 100644
--- a/engines/tsage/sound.cpp
+++ b/engines/tsage/sound.cpp
@@ -451,6 +451,22 @@ void SoundManager::_sfProcessFading() {
}
}
+bool SoundManager::isFading() {
+ Common::StackLock slock(sfManager()._serverSuspendedMutex);
+
+ // Loop through any active sounds to see if any are being actively faded
+ Common::List<Sound *>::iterator i = sfManager()._playList.begin();
+ while (i != sfManager()._playList.end()) {
+ Sound *s = *i;
+ ++i;
+
+ if (s->_fadeDest != -1)
+ return true;
+ }
+
+ return false;
+}
+
void SoundManager::_sfUpdateVoiceStructs() {
for (int voiceIndex = 0; voiceIndex < SOUND_ARR_SIZE; ++voiceIndex) {
VoiceTypeStruct *vs = sfManager()._voiceTypeStructPtrs[voiceIndex];