aboutsummaryrefslogtreecommitdiff
path: root/engines/mads/nebular/nebular_scenes3.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2015-03-14 18:34:26 -0400
committerPaul Gilbert2015-03-14 18:34:26 -0400
commit9eb342615c4cdbc1f38374b9a7808dc54bfb7ad9 (patch)
treef45511cb510c09cfff0b00fdd97fb2775e07515e /engines/mads/nebular/nebular_scenes3.cpp
parentfa7dfc396a2ca33e01a0151f63857dd64406502c (diff)
downloadscummvm-rg350-9eb342615c4cdbc1f38374b9a7808dc54bfb7ad9.tar.gz
scummvm-rg350-9eb342615c4cdbc1f38374b9a7808dc54bfb7ad9.tar.bz2
scummvm-rg350-9eb342615c4cdbc1f38374b9a7808dc54bfb7ad9.zip
MADS: Fix frequently getting endless wait cursor after doctor hits you
Diffstat (limited to 'engines/mads/nebular/nebular_scenes3.cpp')
-rw-r--r--engines/mads/nebular/nebular_scenes3.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/engines/mads/nebular/nebular_scenes3.cpp b/engines/mads/nebular/nebular_scenes3.cpp
index 383f5b509f..4e7781e7a2 100644
--- a/engines/mads/nebular/nebular_scenes3.cpp
+++ b/engines/mads/nebular/nebular_scenes3.cpp
@@ -3313,7 +3313,7 @@ void Scene319::step() {
switch (_game._trigger) {
case 70:
- case 71:
+ case 71: {
_animMode = 1;
_nextAction1 = _nextAction2;
_animFrame = 0;
@@ -3336,7 +3336,14 @@ void Scene319::step() {
_scene->_sequences.updateTimeout(_globals._sequenceIndexes[i], oldIdx);
}
_scene->_sequences.addSubEntry(_globals._sequenceIndexes[0], SEQUENCE_TRIGGER_EXPIRE, 0, 74);
+
+ // WORKAROUND: This fixes the game sometimes going into an endless waiting
+ // loop even after the doctor has finished hitting Rex. Note sure if it's due
+ // to a bug in room script or in the engine, but this at least fixes it
+ int seqIndex = _scene->_sequences.findByTrigger(2);
+ _scene->_sequences[seqIndex]._doneFlag = false;
break;
+ }
case 72:
_vm->_palette->setColorFlags(0xFF, 0, 0);