aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Horn2006-02-05 15:48:46 +0000
committerMax Horn2006-02-05 15:48:46 +0000
commitb3e1252b02c63539bfbc42d67fa200a1602d6bb8 (patch)
treea4ef217c4e53918e0949fcf9a3ec4807d3bc427a
parent3915d4adb301091223aad5b961054ff592dc2753 (diff)
downloadscummvm-rg350-b3e1252b02c63539bfbc42d67fa200a1602d6bb8.tar.gz
scummvm-rg350-b3e1252b02c63539bfbc42d67fa200a1602d6bb8.tar.bz2
scummvm-rg350-b3e1252b02c63539bfbc42d67fa200a1602d6bb8.zip
WORKAROUND bug #1074444 (DOTT: Can't get teeth)
svn-id: r20406
-rw-r--r--scumm/room.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/scumm/room.cpp b/scumm/room.cpp
index 6ae4fdd7ee..cc59c28706 100644
--- a/scumm/room.cpp
+++ b/scumm/room.cpp
@@ -415,6 +415,19 @@ void ScummEngine::loadRoomSubBlocks() {
_HEV7ActorPalette[i] = i;
}
}
+
+
+ // WORKAROUND bug #1074444: The dreaded DOTT "Can't get teeth" bug
+ // makes it impossible to go on playing w/o cheating in some way.
+ // It's not quite clear what causes it, but the effect is that object
+ // 182, the teeth, are still in class 32 (kObjectClassUntouchable),
+ // when they shouldn't be. Luckily, bitvar69 is set to 1 if and only if
+ // the teeth are trapped and have not yet been taken by the player. So
+ // we can make use of that fact to fix the object class of obj 182.
+ if (_gameId == GID_TENTACLE && _roomResource == 26 && readVar(0x8000 + 69)
+ && getClass(182, kObjectClassUntouchable)) {
+ putClass(182, kObjectClassUntouchable, 0);
+ }
gdi.roomChanged(roomptr, _IM00_offs, trans);
}