There are code for three different cases when you first see the ruby:
If the ruby is in the pram, it will say "The ruby in the pram ...".
If the ruby is on the ground and you're not in the pram, it will say "The ruby at your feet ..."
If the ruby is on the ground and you are in the pram, it will say "The ruby on the ground ..."
So how does the ruby get into the pram? The only way is through BAG-F, which handles the EMPTY-INTO action:
(<PRSI? PRAM>
<CRUMBS-INTO-PRAM>
<RTRUE>)
The CRUMBS-INTO-PRAM will call <GET-RUBY T> - the only case where GET-RUBY is called with a parameter - which will move the ruby into the pram instead of to the room.
But it's all for nothing, because PRAM-F gets the first shot at handling the action:
And that will move the ruby to the ground. It seems odd to me that putting the bag in the pram works this way, and note that it does not check here if the pram is open or closed. And the "EMPTY" command is spectacularly buggy anyway, as described in https://github.com/the-infocom-files/trinity/issues/13
But I think it would be nice if the special case could be reinstated somehow.
There are code for three different cases when you first see the ruby:
So how does the ruby get into the pram? The only way is through
BAG-F
, which handles theEMPTY-INTO
action:The
CRUMBS-INTO-PRAM
will call<GET-RUBY T>
- the only case whereGET-RUBY
is called with a parameter - which will move the ruby into the pram instead of to the room.But it's all for nothing, because
PRAM-F
gets the first shot at handling the action:And that will move the ruby to the ground. It seems odd to me that putting the bag in the pram works this way, and note that it does not check here if the pram is open or closed. And the "EMPTY" command is spectacularly buggy anyway, as described in https://github.com/the-infocom-files/trinity/issues/13
But I think it would be nice if the special case could be reinstated somehow.