aboutsummaryrefslogtreecommitdiff
path: root/engines/saga/script.cpp
diff options
context:
space:
mode:
authorMatthew Hoops2011-10-07 14:34:22 -0400
committerMatthew Hoops2011-10-07 14:34:22 -0400
commite1dc4db7aa53d1bbc4cdb03d1163c97d049702f5 (patch)
tree9d57b5fdd6737bc3449851a87e573abe7be984a6 /engines/saga/script.cpp
parentdeab5b28753155863062746ef1239535f562fd0b (diff)
parent842b471e45ae8b7c1b4516b9bd5bf39d61112077 (diff)
downloadscummvm-rg350-e1dc4db7aa53d1bbc4cdb03d1163c97d049702f5.tar.gz
scummvm-rg350-e1dc4db7aa53d1bbc4cdb03d1163c97d049702f5.tar.bz2
scummvm-rg350-e1dc4db7aa53d1bbc4cdb03d1163c97d049702f5.zip
Merge remote branch 'upstream/master' into pegasus
Conflicts: video/qt_decoder.cpp
Diffstat (limited to 'engines/saga/script.cpp')
-rw-r--r--engines/saga/script.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/engines/saga/script.cpp b/engines/saga/script.cpp
index f4902b6c11..96746b538c 100644
--- a/engines/saga/script.cpp
+++ b/engines/saga/script.cpp
@@ -26,6 +26,7 @@
#include "saga/gfx.h"
#include "saga/console.h"
+#include "saga/animation.h"
#include "saga/script.h"
#include "saga/interface.h"
#include "saga/itedata.h"
@@ -941,6 +942,18 @@ void Script::opSpeak(SCRIPTOP_PARAMS) {
return;
}
+#ifdef ENABLE_IHNM
+ // WORKAROUND for script bug #3358007 in IHNM. When the zeppelin is landing
+ // and the player attempts to exit from the right door in room 13, the game
+ // scripts change to scene 5, but do not clear the cutaway that appears
+ // before Gorrister's speech starts, resulting in a deadlock. We do this
+ // manually here.
+ if (_vm->getGameId() == GID_IHNM && _vm->_scene->currentChapterNumber() == 1 &&
+ _vm->_scene->currentSceneNumber() == 5 && _vm->_anim->hasCutaway()) {
+ _vm->_anim->returnFromCutaway();
+ }
+#endif
+
int stringsCount = scriptS->readByte();
uint16 actorId = scriptS->readUint16LE();
uint16 speechFlags = scriptS->readByte();