aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Brown2002-10-20 16:25:43 +0000
committerJames Brown2002-10-20 16:25:43 +0000
commitf9c94f476ab609f7a5951d910239d2c0e2098b17 (patch)
tree419e6d9c22ee94c9df9a9188f3d9316b46c8f9ac
parentabf1cf2f13c7f025b490b0862878045cb8767529 (diff)
downloadscummvm-rg350-f9c94f476ab609f7a5951d910239d2c0e2098b17.tar.gz
scummvm-rg350-f9c94f476ab609f7a5951d910239d2c0e2098b17.tar.bz2
scummvm-rg350-f9c94f476ab609f7a5951d910239d2c0e2098b17.zip
Prevent The Dig from overlapping talk sounds
svn-id: r5201
-rw-r--r--scumm/script_v2.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/scumm/script_v2.cpp b/scumm/script_v2.cpp
index 10839d0c87..ad3e5f067b 100644
--- a/scumm/script_v2.cpp
+++ b/scumm/script_v2.cpp
@@ -2549,6 +2549,10 @@ void Scumm::o6_talkActor()
}
pointer[j] = 0;
+ // Stop any talking that's still going on
+ if (_sound->_talkChannel > -1)
+ _mixer->stop(_sound->_talkChannel);
+
_sound->_talkChannel = _sound->playBundleSound(pointer);
_messagePtr = (byte*)&transText;
setStringVars(0);
@@ -2577,6 +2581,10 @@ void Scumm::o6_talkEgo()
}
pointer[j] = 0;
+ // Stop any talking that's still going on
+ if (_sound->_talkChannel > -1)
+ _mixer->stop(_sound->_talkChannel);
+
_sound->_talkChannel = _sound->playBundleSound(pointer);
_messagePtr = (byte*)&transText;
setStringVars(0);
@@ -3191,7 +3199,12 @@ void Scumm::decodeParseString2(int m, int n)
}
pointer[j] = 0;
+ // Stop any talking that's still going on
+ if (_sound->_talkChannel > -1)
+ _mixer->stop(_sound->_talkChannel);
+
_sound->_talkChannel = _sound->playBundleSound(pointer);
+ printf("Talkchannel for %s is %d\n", transText, _sound->_talkChannel);
_messagePtr = (byte*)&transText;
switch (m) {