aboutsummaryrefslogtreecommitdiff
path: root/engines/agi/op_cmd.cpp
diff options
context:
space:
mode:
authorFilippos Karapetis2007-05-07 19:42:59 +0000
committerFilippos Karapetis2007-05-07 19:42:59 +0000
commit50800d596973d5bf5a21f92f8f196c2103b9900e (patch)
treedadcc32e6fca11b2140e24a9a0d7aa9d09afb8fc /engines/agi/op_cmd.cpp
parent3a4c4fa181ef4a1cfe0cb0ef3ef0becd6db3f651 (diff)
downloadscummvm-rg350-50800d596973d5bf5a21f92f8f196c2103b9900e.tar.gz
scummvm-rg350-50800d596973d5bf5a21f92f8f196c2103b9900e.tar.bz2
scummvm-rg350-50800d596973d5bf5a21f92f8f196c2103b9900e.zip
Fixed bug #1658514: AGI: SQ1 (2.2 DOS ENG) bizzare exploding roger
svn-id: r26782
Diffstat (limited to 'engines/agi/op_cmd.cpp')
-rw-r--r--engines/agi/op_cmd.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/engines/agi/op_cmd.cpp b/engines/agi/op_cmd.cpp
index 0011f40d00..ef09b319fa 100644
--- a/engines/agi/op_cmd.cpp
+++ b/engines/agi/op_cmd.cpp
@@ -589,6 +589,21 @@ cmd(draw_pic) {
g_sprites->blitBoth();
game.pictureShown = 0;
debugC(6, kDebugLevelScripts, "--- end of draw pic %d ---", _v[p0]);
+
+ // WORKAROUND for a script bug which exists in SQ1, logic scripts
+ // 20 and 110. Flag 103 is not reset correctly, which leads to erroneous
+ // behavior from view 46 (the spider droid). View 46 is supposed to
+ // follow ego and explode when it comes in contact with him. However, as
+ // flag 103 is not reset correctly, when the player goes down the path
+ // and back up, the spider is always at the base of the path (since it
+ // can't go up) and kills the player when he goes down at ground level
+ // (although the spider droid sprite itself seems to be correctly positioned).
+ // With this workaround, when the player goes back to picture 20 (1 screen
+ // above the ground), flag 103 is reset, thereby fixing this issue. Note
+ // that this is a script bug and occurs in the original interpreter as well.
+ // Fixes bug #1658514: AGI: SQ1 (2.2 DOS ENG) bizzare exploding roger
+ if (g_agi->getGameID() == GID_SQ1 && _v[p0] == 20)
+ g_agi->setflag(103, false);
}
cmd(show_pic) {