Oh, right. I was thinking about orders but not full viewpoint switching.
Of course, none of the zork games would need that, though others might if the PC can switch. (Some of the middle segments in Hitchhiker’s Guide to the Galaxy come to mind, for instance..)
@zarf If you’re still looking for things to comment on in the code, the balloon is fertile ground because it’s surprisingly buggy for an Infocom game. Particularly in how it handles the receptacle. Much of it is handled by BALLOON-FCN when RARG is M-BEG, i.e. it’s handled when you’re inside the basket but not when you’re outside.
So from inside the basket:
>PUT OPENER IN RECEPTACLE
Done.
>PUT MATCHBOOK IN RECEPTACLE
The receptacle is already occupied.
But from outside the basket…
>PUT OPENER IN RECEPTACLE
Done.
>PUT MATCHBOOK IN RECEPTACLE
Done.
But even from the inside, there are oddities:
>PUT NEWSPAPER IN RECEPTACLE
Done.
>LOOK IN RECEPTACLE
The receptacle is empty.
That’s because anything you put in the receptacle gets the NDESCBIT so that it’s not listed as a visible object (though it’s still in scope), because the description of the balloon already prints that “A newspaper is nestled inside.”
But it also sets NDESCBIT even if you fail to put an object inside:
>PUT SWORD IN RECEPTACLE
The receptacle isn't open.
>DROP SWORD
Dropped.
>LOOK
Volcano Bottom, in the basket
You are at the bottom of a large dormant volcano. High above you light enters
from the cone of the volcano. The only exit is to the north.
The cloth bag is draped over the side of the basket. Directly in the middle of
the basket is a metal receptacle which is closed. A braided wire is dangling
over the side of the basket.
The sword is there, but not visible. Another glitch is in the way it handles the “inflate” verb, because it doesn’t check what you’re trying to inflate:
>INFLATE BALLOON
(with the letter opener)
It takes more than words to inflate a balloon.
>INFLATE SWORD
(with the letter opener)
It takes more than words to inflate a balloon.
Or how it prevents you from picking up the individual parts of the balloon:
>PUT NEWSPAPER IN RECEPTACLE
Done.
>TAKE RECEPTACLE
The receptacle is an integral part of the basket and cannot be removed.
>TAKE NEWSPAPER FROM RECEPTACLE
The newspaper is an integral part of the basket and cannot be removed.
>TAKE NEWSPAPER
Taken.
That’s because the action routine for the receptacle gets called both when the receptacle is the primary object and when it’s the secondary object.
Some of these I already knew about, others I discovered (or maybe just rediscovered?) in the last few days.
They may have been planning ahead: see also the existence of the PLAYER global variable, which is set to ADVENTURER and never changed.