diff options
author | Max Horn | 2004-01-15 20:39:24 +0000 |
---|---|---|
committer | Max Horn | 2004-01-15 20:39:24 +0000 |
commit | b38f773e0f01604aba7a8c2750a5c3c2b2fd4a2b (patch) | |
tree | 8c697a9fbfde55a45adc6c2ae0b185101151bcd4 /scumm/string.cpp | |
parent | c14e7a02594c1842942108ea8425980638ea9320 (diff) | |
download | scummvm-rg350-b38f773e0f01604aba7a8c2750a5c3c2b2fd4a2b.tar.gz scummvm-rg350-b38f773e0f01604aba7a8c2750a5c3c2b2fd4a2b.tar.bz2 scummvm-rg350-b38f773e0f01604aba7a8c2750a5c3c2b2fd4a2b.zip |
fixed COMI speech behaviour
svn-id: r12415
Diffstat (limited to 'scumm/string.cpp')
-rw-r--r-- | scumm/string.cpp | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/scumm/string.cpp b/scumm/string.cpp index 7456f23bcb..12116a02bd 100644 --- a/scumm/string.cpp +++ b/scumm/string.cpp @@ -166,13 +166,6 @@ void ScummEngine::CHARSET_1() { if (_talkDelay) return; - if ((_gameId == GID_CMI || _gameId == GID_DIG) && (_imuseDigital) - && _sound->isSoundRunning(kTalkSoundID)) { - // Keep the 'speech' flag in _sound->_sfxMode set as long as the - // sound kTalkSoundID is playing. - _sound->_sfxMode |= 2; - } - if (_haveMsg == 1) { if ((_sound->_sfxMode & 2) == 0) stopTalk(); @@ -892,8 +885,14 @@ const byte *ScummEngine::translateTextAndPlaySpeech(const byte *ptr) { // Play speech if (!(_features & GF_DEMO) && (_gameId == GID_CMI)) // CMI demo does not have .IMX for voice strcat(pointer, ".IMX"); -// _imuseDigital->stopSound(kTalkSoundID); - _imuseDigital->startVoice(kTalkSoundID, pointer); + // FIXME: This is a hack to distinguish between 'real' actor speech and + // some odd (?) other strings... there is probably a better way to do this. + // I just don't know which (yet). + if (ptr[i+1] != 0 && ptr[i+1] != 255) { + _sound->stopTalkSound(); + _imuseDigital->startVoice(kTalkSoundID, pointer); + _sound->talkSound(0, 0, 2, -1); + } ptr = _transText; } |