I have a strange question.
I’m looking into Mystery House (Sierra, Ken and Roberta Williams) and am having trouble understanding a piece of the parser logic. Specifically, when typing LOOK NOTE
in a place where there is no note and the player doesn’t have one in inventory.
The response from the game is IM NOT CARRYING THAT
However, that phrase does not show up in messages.txt
in the .dsk file.
As part of their archeological study Inspecting the Foundation of Mystery House, Aycock and Biittner posted some tools and logic extractions to github: GitHub - aycock/mh: Analysis tools for the 1980 Apple II game Mystery House
In dumpgame.out
we see the following logic
if VERB = "LOOK" and NOUN = "NOTE" and OBJECT "NOTE" CARRIED then
print "THERE IS WRITING ON IT"
if VERB = "LOOK" and NOUN = "NOTE" and OBJECT "NOTE" CARRIED then
print "THERE IS WRITING ON IT"
if VERB = "LOOK" and NOUN = "NOTE" and OBJECT "NOTE" CARRIED then
print "THERE IS WRITING ON IT"
if VERB = "LOOK" and NOUN = "NOTE" then
print "YOU DONT HAVE IT"
But YOU DONT HAVE IT
doesn’t appear when LOOK NOTE
is performed. So something is overriding that case, but doesn’t override other, similar cases.
In “Mystery House Taken Over” mhto.inf
file I see that “note” and “read” have IM NOT CARRYING THAT
and not YOU DONT HAVE IT
. However, YOU DONT HAVE IT
does show in mhto.inf
when trying to burn the candle when it isn’t in the player’s possession (which is slightly different than the original’s apostrophe’d YOU DON'T HAVE IT
)
So, it doesn’t seem to me that the original ever bothers with any proper “is the noun in question in scope” issues. The “light a candle you don’t possess” logic works as expected, based on dumpgame.out
(i.e. IM NOT CARRYING THAT
doesn’t jump in and override things). You can also LOOK GUN
at any time to see the bullet count, even if you’ve never seen the gun at all. Why wouldn’t those cases have also been overridden with the IM NOT CARRYING THAT
message?
Admittedly, dumpgame.out
doesn’t contain EVERYTHING from the game, but I would have expected IM NOT CARRYING THAT
to show up in messages.txt
at the very least.
Does anyone have any insight into this message and what exact condition triggers the display of IM NOT CARRYING THAT
? (maybe it’s a simple as there is some secret code somewhere that overrides only for notes? ) Are there any other known cases of
IM NOT CARRYING THAT
displaying? Is there any known way to trigger the YOU DONT HAVE IT
message that the original game logic indicates should happen?