the-infocom-files/trinity

You can put very small objects in non-containers

Opened this issue · 0 comments

>PUT SMALL COIN ON ROCKER SWITCH
There's no good surface on the rocker switch.

>PUT SMALL COIN IN ROCKER SWITCH
You put the small coin on the rocker switch.

>TAKE SMALL COIN FROM ROCKER SWITCH
You can't see any small coin here.

First of all, the small coin (SCOIN) is indeed very small:

<OBJECT SCOIN
	(DESC "small coin")
	(FLAGS TAKEABLE)
	(SIZE 0)
	(MASS 0)
	(VALUE 0)
	(SYNONYM COIN P PENCE MONEY CHANGE)
	(ADJECTIVE MY SMALL TINY TWENTY)
	(ACTION SCOIN-F)>

Other objects I've found that also have 0 both as SIZE and MASS:

  • COIN
  • CREDIT-CARD
  • BCOIN
  • PHOTO

The rocker switch (RSWITCH) isn't a CONTAINER, nor is it a SURFACE, but it is OPENED:

<OBJECT WSWITCH
	(LOC WTK)
	(DESC "rocker switch")
	(FLAGS NODESC TRYTAKE NOALL OPENED)
	(SYNONYM SWITCH)
	(ADJECTIVE ROCKER)
	(ACTION WSWITCH-F)>

And that is enough for V-PUT to allow it.

This is going to be awful, isn't it? Other objects I was able to put the coin in:

  • LWDOOR (which, unlike other such doors, does not put the object on the other side)
  • TSWITCH
  • IBUTTON
  • OBUTTON
  • SDOORS
  • COTTAGE-DOOR
  • GARDEN-DOOR
  • ANTENNA
  • JDOOR
  • RSWITCH
  • SEGATE
  • BROOM-DOOR
  • NROOM-DOOR
  • LEFT-DOOR
  • RIGHT-DOOR
  • NEROOM-DOOR
  • SEROOM-DOOR
  • CLOSET-DOOR
  • SWROOM-DOOR
  • NWGATE
  • SWGATE

And I may still have missed a couple. (I was looking for any DOORLIKE object, and any that uses OPENED to keep track of its status.) It's possible to retrieve the object from most of these, but for some it seems to be impossible.

I don't know what's the best approach here is. The simplest way, by far, is probably to give the sizeless, massless objects a size. But then maybe the player won't be able to carry as much as he could before, and that could be bad.