diff options
-rw-r--r-- | scumm/script_v2.cpp | 13 |
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) { |