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
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"
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
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?
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?