Opening a container with only one obejct inside prints the object's FDESC, whether or not it's appropriate
Opened this issue · 4 comments
This bug is in several games, so maybe I should stop reporting it in every single game?
V-OPEN
contains this code:
(<AND <SET F <FIRST? ,PRSO>>
<NOT <NEXT? .F>>
<SET STR <GETP .F ,P?FDESC>>>
<TELL "The " D ,PRSO " opens." CR>
<TELL .STR CR>)
So if a container contains only one object, and it has an FDESC
, it prints that FDESC
. Which can lead to inappropriate messages like this:
>OPEN DESK
The small desk opens.
On an upper shelf is a metal bar, curved into a U-shape.
It should probably only do that if the object doesn't have TOUCHBIT
, or something like that?
No, it should be reported in every game, so that someone fixing bugs in an individual game knows about it. Thanks for this great work!
Problem is, I may not always remember to look for it.
From a quick search, it seems like Infocom dropped the feature at some point (it's commented out in a number of games), and in some they did add a check for if the object has TOUCHBIT
. (It's always nice when you suggest a possible solution, and find that Infocom already used that solution later.)
The ones where I think it's been commented out:
- A Mind Forever Voyaging
- Bureaucracy
- Hitchhiker's Guide to the Galaxy (both versions)
- Hollywood Hijinx
- Moonmist
- Sorcerer
- Spellbreaker
- Trinity
- Wishbringer (both versions)
The ones where I think it's still there:
- Cutthroats
- Deadline
- Enchanter
- Infidel
- The Lurking Horror
- Planetfall (both versions)
- Seastalker
- Shogun
- Starcross
- The Witness
- Mini-Zork I (beta)
The ones where I think it's been modified to only print FDESC
if the object is untouched:
- Zork I (German)
- Zork I-III (through zork-substrate)
- Zork I (Solid Gold)
- Mini-Zork I
So now I just have to check the games I've already tested, and remember to check this list in the future. :-)
Apparently I had already made a list for an earlier bug report. See the-infocom-files/starcross#29
But it's good to see that I came up with pretty much the same list both times. (Not all games in the new list had had their source code uploaded here yet when I made the old one.)
As far as I can tell/remember:
- I don't think I've reported the bug in Cutthroats. It seems hard to reproduce since there doesn't seem to be a whole lot of containers that can be used.
- I have reported it in Deadline: the-infocom-files/deadline#30
- I haven't yet reported it in Enchanter, though I can see now that it can be reproduced. The oven near the start of the game is a useful container.
- I haven't yet reported it in Infidel. I'm not sure it can be triggered there. You can't use the crate or the trunk, since they print their own messages when being opened.
- I haven't reported it in The Lurking Horror. I haven't gotten to that game yet.
- I have reported it in Planetfall (duh!), but not the Solid Gold version since I haven't gotten to that one yet.
- I haven't reported it in Seastalker. I'm not sure it can be triggered there. The microphone may be the only portable object with an
FDESC
, and it's not all that portable. - I haven't reported it in Shogun. I haven't gotten to that game yet.
- I have reported it in Starcross. See the-infocom-files/starcross#29
- I haven't reported it in The Witness. I can't think of any container I could use.
- I haven't reported it in Mini-Zork I (beta). Last time I checked it wasn't anywhere near completable.