[Scummvm-git-logs] scummvm master -> cc034f60be6e5779a68f2d3f5a27215f97b22162
dwatteau
noreply at scummvm.org
Wed Mar 8 20:13:41 UTC 2023
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
cc034f60be SCUMM: DOTT: Add more context about bug no. 1831 (WORKAROUND)
Commit: cc034f60be6e5779a68f2d3f5a27215f97b22162
https://github.com/scummvm/scummvm/commit/cc034f60be6e5779a68f2d3f5a27215f97b22162
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2023-03-08T21:08:21+01:00
Commit Message:
SCUMM: DOTT: Add more context about bug no. 1831 (WORKAROUND)
More background about this original scripting issue was given by
Oliver Franzke from Double Fine during the GDC17 conference.
Documenting any upstream explanation about original bugs is probably
good for SCUMM historians!
https://www.p1xelcoder.com/resources/GDC_2017_Remastering_DotT_and_Grim.pdf
https://www.youtube.com/watch?v=HqWrdIf69M8&t=1340
Changed paths:
engines/scumm/room.cpp
diff --git a/engines/scumm/room.cpp b/engines/scumm/room.cpp
index e20b359d749..750ac85f07c 100644
--- a/engines/scumm/room.cpp
+++ b/engines/scumm/room.cpp
@@ -474,11 +474,17 @@ void ScummEngine::setupRoomSubBlocks() {
// WORKAROUND bug #1831: 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.
+ // Before the GDC17 conference where Oliver Franzke gave more
+ // background about this, it wasn't quite clear what caused this issue,
+ // but the effect is that object 182, the teeth, are still in class 32
+ // (kObjectClassUntouchable), when they shouldn't be. Luckily, bitvar69
+ // (teeth-caught) 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. This should match what the
+ // 2016 remaster did.
+ //
+ // Not using `_enableEnhancements` since leaving the room too quickly
+ // would just make this puzzle impossible to complete.
if (_game.id == GID_TENTACLE && _roomResource == 26 && readVar(0x8000 + 69)
&& getClass(182, kObjectClassUntouchable)) {
putClass(182, kObjectClassUntouchable, 0);
More information about the Scummvm-git-logs
mailing list