trinity
trinity copied to clipboard
You can get rid of your hands
Some objects contain code like this:
<COND (<INTBL? ,PRSA ,PUTVERBS ,NUMPUTS>
<PRSO-SLIDES-OFF-PRSI>
<RTRUE>)>
Where PRSO-SLIDES-OFF-PRSI prints a message about how the object slides off the other object, and falls to the ground. (There is a surprising amount of details in the implementation of this, so I'm not going to paste the whole thing here.)
These are the PUTVERBS:
<GLOBAL PUTVERBS:TABLE
<PTABLE V?PUT V?PUT-ON V?PUT-UNDER V?PUT-BEHIND V?THROW
V?THROW-OVER V?EMPTY-INTO>>
Of these, PUT-UNDER and PUT-BEHIND do not have pre-actions to prevent them from being used on objects you can't drop. So...
>PUT HANDS UNDER WATCH
The your hand slides off the wristwatch and lands at your feet.
I think we can ignore the grammatical errors and focus on the main thing, i.e. that you no longer have any hands...
There are several objects you can use to trigger this bug. A quick search suggests:
WRISTWATCHBPRAM(the broken pram)HEAP(the glowing log after you've broken it)PAGES(the pages of the book in the cottage)
I don't know if pre-actions is the way to go, or if it should be fixed in PRSO-SLIDES-OFF-PRSI.
Another way of getting rid of your hands can be seen in https://github.com/the-infocom-files/trinity/issues/11
>EMPTY HANDS INTO POND
The your hand disappears in the dark water.
It's not just where it checks PUTVERBS. I just noticed that JEEP-F explicitly handles the EMPTY-INTO action:
>EMPTY HANDS INTO JEEP
You drop your hand into the jeep.
<COND (<VERB? PUT PUT-ON EMPTY-INTO>
<COND (<ZERO? .IN>
<MOVE ,PRSO ,IN-JEEP>
<SETG P-IT-OBJECT ,NOT-HERE-OBJECT>
<TELL "You drop " THEO
" into the jeep." CR>
<RTRUE>)>
<PERFORM ,V?DROP ,PRSO>
<RTRUE>)>
Here is a list of all objects I've been able to find so far. I've verified that all of these commands cause bad things to happen. Where possibly I've used your hands as the test case, but that's not the only bad case.
| Object | Example |
|---|---|
ANKLE-F |
WRAP HANDS AROUND ANKLE |
BPRAM-F |
PUT HANDS UNDER BROKEN PRAM |
CHARON-F |
SHOW POCKET TO CHARON |
CHASM-F |
PUT HANDS UNDER CHASM |
CRATER-F |
PUT HANDS UNDER CRATER |
GRASS-F |
PUT HANDS UNDER GRASS |
HANDLE-MOUNTAIN-WATER? |
PUT HANDS UNDER WATERFALL |
HANDLE-SOAPY-WATER? |
PUT ME UNDER WATER |
HANDLE-WATER? |
PUT HANDS UNDER POND |
HEAP-F |
PUT HANDS UNDER HEAP |
HEDGE-F |
PUT HANDS BEHIND HEDGE |
JEEP-F |
EMPTY HANDS INTO JEEP |
LAGOON-F |
PUT HANDS UNDER LAGOON |
MEEP-F |
ROADRUNNER, PUT HANDS UNDER ME |
PAGES-F |
PUT HANDS UNDER PAGES |
PIPES-F |
EMPTY ME INTO PIPES |
SLOPE-F |
PUT HANDS UNDER SLOPE |
STYX-F |
PUT HANDS UNDER RIVER |
SWALL-F |
PUT HANDS BEHIND STONE WALL |
TREE-F |
PUT HANDS UNDER TREE |
TSEA-F |
PUT HANDS UNDER OCEAN |
WIGHT-F |
HIT WIGHT WITH ME |
WRISTWATCH-F |
PUT HANDS UNDER WRISTWATCH |
HANDLE-SOAPY-WATER? and WIGHT-F make exceptions for HANDS and FEET. PIPES-Fchecks the object's size. They still allow you to get rid of objects you shouldn't be able to.
All of these cases have to be checked against objects you shouldn't be able to get rid of. Your hands, your feet, your pocket, yourself, ...
At least some of these cases won't check if the object is singular or plural, but I don't think there are any plural objects that you should be able to get rid of like this.