diff options
author | Max Horn | 2006-02-05 15:48:46 +0000 |
---|---|---|
committer | Max Horn | 2006-02-05 15:48:46 +0000 |
commit | b3e1252b02c63539bfbc42d67fa200a1602d6bb8 (patch) | |
tree | a4ef217c4e53918e0949fcf9a3ec4807d3bc427a | |
parent | 3915d4adb301091223aad5b961054ff592dc2753 (diff) | |
download | scummvm-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.cpp | 13 |
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); } |