the-infocom-files / leathergoddesses

Leather Goddesses of Phobos
4 stars 3 forks source link

"TAKE BUOY" / "OPEN BUOY" inconsistency #21

Open eriktorbjorn opened 3 years ago

eriktorbjorn commented 3 years ago

There is a Zork I joke in BUOY-F:

           (<VERB? TAKE OPEN>
        <TELL ,YOU-CANT>
        <COND (<VERB? TAKE>
               <TELL "take">)
              (T
               <TELL "open">)>
        <TELL " a buoy! Where'd you get such a silly idea?" CR>)

But the behavior is inconsistent if you are in the barge (and presumably the raft?):

>TAKE BUOY
You can't take a buoy! Where'd you get such a silly idea?

>OPEN BUOY
You can't reach the buoy from the royal barge.

That's because "OPEN" has a pre-action, PRE-TOUCH:

<ROUTINE PRE-TOUCH ()
     <COND (<UNTOUCHABLE? ,PRSO>
        <CANT-REACH ,PRSO>)>>

It should be possible to add an exception to UNTOUCHABLE?, even though the buoy is a pseudo-object, the same way is apparently already done for the straps when you are on the slab:

           (<AND <IN? ,PROTAGONIST ,FIRST-SLAB>
             <OR <NOUN-USED ,W?STRAP ,PSEUDO-OBJECT>
             <NOUN-USED ,W?STRAPS ,PSEUDO-OBJECT>>>
        <RFALSE>)

Whether or not it's actually worth it... well...

eriktorbjorn commented 3 years ago

Such an exception might look something like this:

           (<AND <EQUAL? <LOC ,PROTAGONIST> ,BARGE, RAFT>
             <OR <NOUN-USED ,W?BUOY ,PSEUDO-OBJECT>
             <ADJ-USED ,A?WARNING>>>
        <RFALSE>)

Though don't ask me how it determined that "warning" was an adjective, not a noun. So don't take my word for it...

eriktorbjorn commented 3 years ago

And I just noticed that the buoy pseudo object is slightly inconsistently defined. In WATTZ-UPP-DOCK:

      (THINGS <PSEUDO (RED BUOY BUOY-F)
              (WARNING BUOY BUOY-F)>)>

In CANAL:

      (THINGS <PSEUDO (RED BUOY BUOY-F)
              (WARNING BUOY BUOY-F)
              (SWAYING BUOY BUOY-F)

So I guess "SWAYING" should be in that exception as well?

It's also interesting that I can't find any obvious textual reference to the buoy in Wattz-Upp Dock. (Though it makes sense that you can see it from there, I guess.) Only in the Canal, where it's described as:

Martian Canal, in the royal barge
   The royal barge rocks gently in the current of a wide canal. A dock is
visible on the western shore. A red warning buoy is anchored nearby. A sign atop
the swaying buoy shows a skull and crossbones. You spy a metallic glint, far
ahead.