SCUMM: Fix randomly unreachable fire in DOTT (WORKAROUND) #4624
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This one was reported by NeoDement on Discord. Thanks!
Context
In DOTT, script 13-21 calls
startScript(1,106,[91,5])when Jefferson builds the fire, but this script continuously changes the state of the fire object to a random value between 1 and 5 (this stops when you exit his room), and so if Hoagie tries interacting with it, he'll say "I can't reach it." instead of the intended "No. Fire bad." line, most of the time.This also happens with the original DOS interpreter, the 2002 Aaron Giles Windows interpreter, and the Remastered version.
Script 13-21 (once Jefferson is done building the fire):
Script 61-106:
…which I believe is equivalent to the following C-like code:
Completely ignoring this script fixes this problem and it doesn't seem to cause any regression with the fire itself. My hypothesis is that the game designers wanted to have an "early fire" animation when the fire has just been lit by Jefferson, but then they dropped the idea and used the same unique fire animation but forgot to turn off this script.
(Even if this hypothesis is wrong, I can't see any visual or behavioral regression if I ignore this script… but tests are welcome.)
Test
555