the-infocom-files / seastalker

Seastalker
3 stars 3 forks source link

Custom message for "FIND CRAWL SPACE" isn't printed (by design?) #82

Open eriktorbjorn opened 4 years ago

eriktorbjorn commented 4 years ago

It looks like there's supposed to be a custom message for "FIND CRAWL SPACE" in CRAWL-SPACE-F:

       (<VERB? FIND>
    <COND (<EQUAL? ,HERE ,CRAWL-SPACE> <TELL "You're in it!" CR>)
          (T <TELL
"It's located beyond an " D ,ENGINE-ACCESS-HATCH " in the bulkhead just
below and to the right of control panel." CR>)>)

But if you try it you'll get one of "(You'll find that information in your SEASTALKER package.)", "You are already here!" or "You should know - you've been there!"

That's because PRE-FIND handles the action before CRAWL-SPACE-F has the chance to. You can get around it by adding a special case:

     <COND (<IN? ,PRSO ,ROOMS>
        <COND (<==? ,PRSO ,HERE>
               <ALREADY ,PLAYER "here">)
              (<FSET? ,PRSO ,TOUCHBIT>
               <TELL "You should know - you've been there!" CR>)
              (<AND <==? ,PRSO ,CRAWL-SPACE>
                <==? ,HERE ,SUB>>
               <RFALSE>)
              (T
               <TELL <GETP ,LOCAL-SUB ,P?TEXT> CR>;"Use your maps!")>)

Though I'm not sure if we should, since it's correct that the information is in the documentation. Also, the custom message is missing a "the" in the "right of control panel" part.

eriktorbjorn commented 4 years ago

It also looks like you should be able to "LOOK IN CRAWL SPACE":

       (<VERB? OPEN LOOK-INSIDE>
    <COND (<DOBJ? CRAWL-SPACE>
           <PERFORM ,PRSA ,ENGINE-ACCESS-HATCH ,PRSI>
           <RTRUE>)>)

Again, the pre-action handles it before CRAWL-SPACE-F can. "LOOK IN ACCESS PANEL" still works, though.