the-infocom-files / sorcerer

Sorcerer
3 stars 3 forks source link

Rope glitch if picked up while flying #39

Open eriktorbjorn opened 4 years ago

eriktorbjorn commented 4 years ago
>EXAMINE ROPE
The rope is tied to the beam and hangs into the chute.

>TAKE ROPE
Taken.

>EXAMINE ROPE
It is tied to the center of the timber.

But if you are flying...

>EXAMINE ROPE
The rope is tied to the beam and hangs into the chute.

>IZYUK ME
You are now floating serenely in midair.

>TAKE ROPE
You swoop low and pick it up.

>EXAMINE ROPE
The rope is tied to the beam and hangs into the chute.

So the rope remains hanging into the chute. That's because of this code in V-TAKE:

              (,FLYING
               <TELL "You swoop low and pick it up." CR>)
              (T
               <COND (<AND <EQUAL? ,PRSO ,ROPE>
                   <OR ,ROPE-PLACED ,ROPE-IN-LOWER-CHUTE>>
                  <SETG ROPE-PLACED <>>
                  <SETG ROPE-IN-LOWER-CHUTE <>>
                  <FCLEAR ,BEAM ,TRYTAKEBIT>
                  <FCLEAR ,ROPE ,TRYTAKEBIT>)>
               <TELL "Taken." CR>)>)>>

I.e. the whole rope logic is only handled in one of the two cases. I'm not sure of the exact implications of this, but it's bound to mess up something...