diff options
author | James Brown | 2002-10-20 16:25:43 +0000 |
---|---|---|
committer | James Brown | 2002-10-20 16:25:43 +0000 |
commit | f9c94f476ab609f7a5951d910239d2c0e2098b17 (patch) | |
tree | 419e6d9c22ee94c9df9a9188f3d9316b46c8f9ac | |
parent | abf1cf2f13c7f025b490b0862878045cb8767529 (diff) | |
download | scummvm-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.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) { |