the-infocom-files/planetfall

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.