the-infocom-files / suspended

Suspended
8 stars 3 forks source link

You can leave objects in Skywalks Alpha, Beta and Gamma #28

Open eriktorbjorn opened 5 years ago

eriktorbjorn commented 5 years ago
>LOOK
Internal map reference -- Skywalk Alpha
Sensory receptors detect incredible electrical and ionic disturbances coming
from the north of here.

>THROW WEDGE
Thrown.

>LOOK
Internal map reference -- Skywalk Alpha
Sensory receptors detect incredible electrical and ionic disturbances coming
from the north of here.
There is a dense wedge here.

>GET WEDGE
Taken.

>DROP WEDGE
Dropped.
The dense wedge is whisked up by the force of the tube.

>LOOK
Internal map reference -- Skywalk Alpha
Sensory receptors detect incredible electrical and ionic disturbances coming
from the north of here.

This is because SKY-FCN only checks for the DROP action:

<ROUTINE SKY-FCN ("OPTIONAL" (RARG <>))
     <COND (<EQUAL? .RARG M-END>
        <COND (<VERB? DROP>
               <ROBOT-TELL "The " <>>
               <TELL D ,PRSO " is whisked up by the force of the tube."
                 CR>
               <COND (<IN? ,PRSO ,SKY1>
                  <MOVE ,PRSO ,WEATHER>)
                 (<IN? ,PRSO ,SKY2>
                  <MOVE ,PRSO ,HYDRO>)
                 (<IN? ,PRSO ,SKY3>
                  <MOVE ,PRSO ,RTD>)>)>)>>

Maybe it should loop through the objects and move anything that isn't a robot instead? After all, giving objets to another robot can also leave them on the ground if IDROP succeeded and ITAKE failed. I don't know if there are other ways objects could end up on the floor.