the-infocom-files / suspended

Suspended
8 stars 3 forks source link

Bad handling of ON-WEDGE when pushing a defunct robot onto the walkway #61

Open eriktorbjorn opened 4 years ago

eriktorbjorn commented 4 years ago

From V-PUSH-UP:

           (<AND <IN? ,WINNER ,REPAIR1>
             <EQUAL? ,WEDGE-PLACED 1>>
        <ROBOT-TELL "Umph! Hard work, but consider it done!">
        <MOVE ,PRSO ,CONVEYERBELTA> <SETG ON-WEDGE ,WINNER>
        <SETG BELT-ON T>
        <COND (<EQUAL? <GET <INT I-BELT> ,C-ENABLED?> 0>
               <ENABLE <QUEUE I-BELT 2>>)>
        <FSET ,PRSO ,FIXABLEBIT>)

The <SETG ON-WEDGE ,WINNER> looks like it's supposed to move you onto the wedge. But it doesn't work, because ON-WEDGE is supposed to hold an offset, not an object. See WEDGE2-FCN.

Though in that case, the command should also check if another robot is standing on the wedge first.