aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Horn2003-07-15 20:51:18 +0000
committerMax Horn2003-07-15 20:51:18 +0000
commit83a3afab42c2fe8fa9bf6c0713cd09302060feb2 (patch)
tree08e096194302399c40825c6018cee241512e2b9f
parentf60e8ff53e42efa564cdee5f5bc0e3d660e4b11b (diff)
downloadscummvm-rg350-83a3afab42c2fe8fa9bf6c0713cd09302060feb2.tar.gz
scummvm-rg350-83a3afab42c2fe8fa9bf6c0713cd09302060feb2.tar.bz2
scummvm-rg350-83a3afab42c2fe8fa9bf6c0713cd09302060feb2.zip
temporary fix for bug #771562, I am working on a proper one now
svn-id: r9044
-rw-r--r--scumm/sound.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/scumm/sound.cpp b/scumm/sound.cpp
index 096a8310f1..f766ae7bd9 100644
--- a/scumm/sound.cpp
+++ b/scumm/sound.cpp
@@ -562,7 +562,17 @@ void Sound::processSfxQueues() {
if (_scumm->VAR(_scumm->VAR_TALK_ACTOR)) { //_sfxMode & 2) {
act = _scumm->VAR(_scumm->VAR_TALK_ACTOR);
- finished = !_talkChannelHandle;
+
+ // FIXME: This was changed in the process of my COMI fixes.
+ // Problem is, 'finished' used to indicate if speech had
+ // been running but now is finished. But now, it'll be set
+ // even if there never has been any speech running (i.e. in
+ // all games which don't even use speech). This will have
+ // to be fixed properly! For now I am just disabling
+ // this for V2 games. A better fix would be to introduce a second
+ // variable which is set whenever speech is initiated, and reset
+ // when it stops (i.e. when _talkChannelHandle is 0).
+ finished = !_talkChannelHandle && (_scumm->_version > 2);
if (act != 0 && (uint) act < 0x80 && !_scumm->_string[0].no_talk_anim) {
a = _scumm->derefActor(act, "processSfxQueues");