the-infocom-files / witness

The Witness
3 stars 4 forks source link

"TAKE CARVED CHAIR" is only a synonym for sitting in it while Mr Linder is alive #29

Open eriktorbjorn opened 4 years ago

eriktorbjorn commented 4 years ago

Both the wooden chair and the carved chair accept "TAKE CHAR" as a synonym for sitting in it (as long as it's the only object you're trying to take). But the carved chair only accepts it while Mr Linder is still alive. This is WOODEN-CHAIR-F:

<ROUTINE WOODEN-CHAIR-F ("OPTIONAL" (ARG <>))
 <COND (<AND <NOT .ARG>
         <VERB? CLIMB-ON SIT TAKE>
         <==? 1 <GET ,P-PRSO 0>>    ;"only one dir. object"
         <==? ,PRSO ,WOODEN-CHAIR>>
    <MOVE ,PLAYER ,WOODEN-CHAIR>
    <TELL "You are now sitting on the " D ,PRSO "." CR>
    <COND (<NOT ,LINDER-EXPLAINED> <I-LINDER-EXPLAIN>)>
    <RTRUE>)>>

And this is from CARVED-CHAIR-F. Note how it only handles "TAKE" if the corpse is still invisible.

       (<AND <FSET? ,CORPSE ,INVISIBLE> ;<IN? ,LINDER ,CARVED-CHAIR>
         <VERB? CLIMB-ON SIT TAKE>
         <==? 1 <GET ,P-PRSO 0>>    ;"only one dir. object"
         <==? ,PRSO ,CARVED-CHAIR>>
    <TELL "Linder glares at you. ">
    <COND (<IN? ,LINDER ,CARVED-CHAIR>
           <TELL
"\"I meant that you should sit in the customer's chair, not my lap!\" ">)
          (T <TELL
"\"That's my chair. You take the other one.\" ">)>
    <TELL "You are on your own feet again." CR>
    <RTRUE>)>>