the-infocom-files / witness

The Witness
3 stars 4 forks source link

V-KICK can respond a bit oddly #9

Open eriktorbjorn opened 5 years ago

eriktorbjorn commented 5 years ago
>KICK HOUSE
Kicking the radio has no effect.

>TAUNT RADIO
Kicking the radio has no effect.

>BITE RADIO
Kicking the radio has no effect.

That's because "taunt" and "bite" are synonyms for "kick", as far as the game is concerned, so they get the same default response.

Note that the default response for persons still works though:

>KICK MR LINDER
"I get no kick from shampoo..." -- Cole Flathead

>TAUNT MR LINDER
"I get no taunt from shampoo..." -- Cole Flathead

>BITE MR LINDER
"I get no bite from shampoo..." -- Cole Flathead

That's because this part of V-KICK uses VERB-PRINT instead of hard-coding the word:

<ROUTINE V-KICK ()
     <COND (<FSET? ,PRSO ,PERSON>
        <TELL "\"I get no ">
        <VERB-PRINT>
        <TELL " from shampoo...\" -- Cole Flathead" CR>)
           (T <HACK-HACK "Kicking">)>>

You can almost fix it by changing the default case to:

           (T
            <CAPITALIZE <GET ,P-ITBL ,P-VERBN>>
            <HACK-HACK "ing">)>>

But then it will reply "Biteing the house has no effect." which isn't quite right.