aboutsummaryrefslogtreecommitdiff
path: root/engines/lure/scripts.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2010-10-02 00:08:13 +0000
committerPaul Gilbert2010-10-02 00:08:13 +0000
commitf94752f7528c406d68353dc75cad4047c4af86a2 (patch)
tree55d674bec4bb434b93099ba93f447bcea668e127 /engines/lure/scripts.cpp
parent1177692701ccfef3eee94ab092a606c0da631566 (diff)
downloadscummvm-rg350-f94752f7528c406d68353dc75cad4047c4af86a2.tar.gz
scummvm-rg350-f94752f7528c406d68353dc75cad4047c4af86a2.tar.bz2
scummvm-rg350-f94752f7528c406d68353dc75cad4047c4af86a2.zip
LURE: Partial fix for #3008511 Goewin getting stuck
This workaround prevents the Weregate from closing whilst Goewin is still within it svn-id: r52971
Diffstat (limited to 'engines/lure/scripts.cpp')
-rw-r--r--engines/lure/scripts.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/engines/lure/scripts.cpp b/engines/lure/scripts.cpp
index 20758466ad..20cbd328ce 100644
--- a/engines/lure/scripts.cpp
+++ b/engines/lure/scripts.cpp
@@ -901,6 +901,16 @@ uint16 Script::execute(uint16 startOffset) {
uint16 offset = startOffset;
bool breakFlag = false;
+ // WORKAROUND: Prevents the Weregate door closing prematurely
+ if (startOffset == 3941) {
+ Hotspot *goewinHotspot = r.getActiveHotspot(GOEWIN_ID);
+ if (!goewinHotspot->doorCloseCheck(10025)) {
+ // Goewin is still blocking the door, so reschedule the closing
+ r.delayList().add(1, startOffset, false);
+ return 0;
+ }
+ }
+
param = 0;
fields.setField(SEQUENCE_RESULT, 0);