the-infocom-files / hollywoodhijinx

Hollywood Hijinx
3 stars 2 forks source link

You can "touch" objects under the dome even when they're not there #25

Open eriktorbjorn opened 2 years ago

eriktorbjorn commented 2 years ago

The truck and the rocket in the Tokyo model are pseudo objects that are always there. They just catch the EXAMINE action to give you the appropriate message:

<ROUTINE TRUCK-PSEUDO ()
         <COND (<VERB? EXAMINE>
        <COND (<EQUAL? ,TRUCK-LOC 33>  ;"OFF STAGE"
               <TELL "You can't see any tiny truck here." CR>)
              (<EQUAL? ,TRUCK-LOC 30>
               <TELL
"The tiny truck is smashed into tiny bits and pieces." CR>)
                  (T
               <TELL
"It's a tiny truck with a small radar dish which is pointing at" TR ,DOG>)>)
           (<TOUCHING? ,PSEUDO-OBJECT>
        <TELL
"You can't reach the tiny truck. It's under the plastic dome." CR>)>>

<ROUTINE ROCKET-PSEUDO ()
         <COND (<VERB? EXAMINE>
        <COND (<EQUAL? ,ROCKET-LOC 33>
               <TELL "You can't see any rocket here." CR>)
              (<EQUAL? ,ROCKET-LOC 30>
               <TELL
"You can't see any rocket here. It has been destroyed." CR>)
                  (T
               <TELL
"The rocket is circling around" TR ,DOG>)>)
           (<TOUCHING? ,PSEUDO-OBJECT>
        <TELL
"You can't reach the rocket. It's under the plastic dome." CR>)>>

The "off stage" check should apply to the TOUCHING? case as well, but doesn't.

eriktorbjorn commented 2 years ago

This also affects TANK-F and PLANE-F. These are real objects, rather than pseudo objects, because their name changes depending on how many tanks and planes there are.