the-infocom-files / hollywoodhijinx

Hollywood Hijinx
3 stars 2 forks source link

Inconsistent BLOW-OUT-MATCH behavior (by design?) #24

Open eriktorbjorn opened 2 years ago

eriktorbjorn commented 2 years ago

The BLOW-OUT-MATCH routine handles the matches burning out:

<ROUTINE BLOW-OUT-MATCH (OBJ "OPTIONAL" (ADD-CR <>))
     <FCLEAR .OBJ ,ONBIT>
     <FCLEAR .OBJ ,FLAMEBIT>
     <COND (<AND <NOT <FSET? ,RED-MATCH ,ONBIT>>
             <NOT <FSET? ,GREEN-MATCH ,ONBIT>>>
        <DEQUEUE I-MATCH-BURN>)>
     <COND (<VISIBLE? .OBJ>
        <COND (.ADD-CR
               <CRLF>)>
        <TELL
"The " D .OBJ " goes out, turns to ashes, falls to the
ground and disappears." CR>
        <SAY-IF-NOT-LIT>
                <REMOVE .OBJ>)>>

There are two things that strike me as odd here:

This isn't much of a problem, since you can't re-light the burned-out match, but still...

eriktorbjorn commented 2 years ago

Another slight inconsistency is in CHIMNEY-F. Putting a burning candle in the chimney will blow it out:

           (<AND <VERB? PUT>
             <PRSI? ,CHIMNEY>>
        <COND (<EQUAL? ,HERE ,FIREPLACE>
               <TELL "You're at the bottom of the chimney!" CR>)
              (T
               <TELL "You drop" T ,PRSO " down the chimney." CR> 
               <COND (<EQUAL? ,HERE ,ROOF-1 ,CHIMNEY-1 ,CHIMNEY-2>
                  <COND (<AND <PRSO? RED-CANDLE WHITE-CANDLE
                         BLUE-CANDLE>
                      <FSET? ,PRSO ,FLAMEBIT>>
                     <BLOW-OUT-CANDLE ,PRSO>)

But putting a burning match in the chimney will not blow it out. Of course, it will probably burn out on its own (and remain on the ground) before you catch up with it.

eriktorbjorn commented 2 years ago

On the other hand, SACK-WINDOW-F doesn't blow out matches either so maybe it's deliberate.