aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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) {