the-infocom-files / seastalker

Seastalker
3 stars 3 forks source link

I-TIP-SAYS oddity, causing hint not to be displayed #48

Open eriktorbjorn opened 4 years ago

eriktorbjorn commented 4 years ago

This is the I-TIP-SAYS routine:

<ROUTINE I-TIP-SAYS ()
 <COND (<AND <==? ,TIP-SAYS-2 ,MAGAZINE> <FSET? ,MAGAZINE ,TOUCHBIT>>
    <RFALSE>)
       (<AND ,TIP-SAYS-1 <EQUAL? <META-LOC ,MAGAZINE> ,SUB ,CRAWL-SPACE>>
    <TELL-HINT ,TIP-SAYS-1 ,TIP-SAYS-2>)>>

It's supposed to give you a hint after a timeout. TIP-SAYS-1 is the hint number (e.g. 72 means "card 7, clue 2"), and TIP-SAYS-2 is the object to put in the blank space.

The way the routine is written, it's apparently only meant to give hints about the magazine. You don't get a hint if you've handled the magazine already (though see https://github.com/the-infocom-files/seastalker/issues/26 for a possible bug with that), and you only get it if the magazine is somewhere in the submarine.

So far, so good.

The I-TIP-SAYS timer is used twice. It's used for the magazine when you turn on the autopilot. But it's also used if you use the computestor to check the videophone. See COMPUTESTOR-F:

       (<AND <VERB? ASK-ABOUT> <DOBJ? COMPUTESTOR>>
    <COND (<AND <IOBJ? CIRCUIT-BREAKER> <FSET? ,CIRCUIT-BREAKER ,OPENBIT>>
           <TELL "\"A " D ,CIRCUIT-BREAKER " is open.\"" CR>)
          (<AND <IOBJ? VIDEOPHONE> <FSET? ,VIDEOPHONE ,MUNGBIT>>
           <SETG TIP-SAYS-1 32 ;4>
           <SETG TIP-SAYS-2 ,VIDEOPHONE>
           <ENABLE <QUEUE I-TIP-SAYS 3>>
           <TELL
"\"Symptoms: no picture, no sound.|

The only way that will cause the hint to be displayed is if you first went to the submarine, got the magazine and left it there.

(The timer is then disabled by SABOTAGE-F if you analyze the videophone for sabotage.)

So it seems to me that the intention here is that both of the special cases in I-TIP-SAYS are for the magazine only, and for anything else it should just display the hint straight away.

Mind you, personally I'm not a fan of those hints because I find them intrusive. But author intention trumps my personal feelings. :-)