aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/scumm/script_v5.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/engines/scumm/script_v5.cpp b/engines/scumm/script_v5.cpp
index cc92631b54..a2dd83ab28 100644
--- a/engines/scumm/script_v5.cpp
+++ b/engines/scumm/script_v5.cpp
@@ -420,6 +420,16 @@ void ScummEngine_v5::o5_actorFromPos() {
void ScummEngine_v5::o5_actorOps() {
static const byte convertTable[20] =
{ 1, 0, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20 };
+ // Fix for bug #2233 "MI2 FM-TOWNS: Elaine's mappiece directly flies to treehouse"
+ // There's extra code inserted in script 45 from room 45 that caused that behaviour,
+ // the code below just skips the extra script code.
+ if (_game.id == GID_MONKEY2 && _game.platform == Common::kPlatformFMTowns &&
+ vm.slot[_currentScript].number == 45 && _currentRoom == 45 &&
+ (_scriptPointer - _scriptOrgPointer == 0xA9)) {
+ _scriptPointer += 0xCF - 0xA1;
+ writeVar(32811, 0); // clear bit 43
+ return;
+ }
int act = getVarOrDirectByte(PARAM_1);
Actor *a = derefActor(act, "o5_actorOps");
int i, j;