hollywoodhijinx/parlor.zil
2019-04-14 02:06:26 -04:00

1162 lines
36 KiB
Plaintext

"PARLOR for ANTHILL (C)1986 Infocom Inc. All rights reserved."
<OBJECT FILM
(IN PROJECTION-BOOTH)
(DESC "strip of film")
(SYNONYM FILM STRIP)
(ADJECTIVE FILM)
(SIZE 1)
(FLAGS TAKEBIT)
(ACTION FILM-F)>
;<TELL
"You expertly splice the two ends of the film together (This kind of
work is in your blood)." CR>
<ROUTINE FILM-F ()
<COND (<VERB? EXAMINE>
<COND (<AND <IN? ,FILM ,FILM-PROJECTOR>
<FSET? ,FILM-PROJECTOR ,ONBIT>>
<PERFORM ,V?EXAMINE ,PROJECTION-SCREEN>
<RTRUE>)
(T
<FILM-SLIDE-DESC ,FILM "six-foot long ">)>)
;(<VERB? SPLICE>
<COND (<NOT <FSET? ,FILM ,FILM-LOOPED-BIT>>
<COND (<IN? ,FILM ,SPLICER>
<TELL
"You expertly splice the two ends of the film together (This kind of
work is in your blood)." CR>
<PUTP ,FILM ,P?SDESC "loop of film">
<FSET ,FILM ,FILM-LOOPED-BIT>)
(T
<TELL
"You'll have to put" T ,FILM " in the splicer first." CR>)>)
(T
<TELL "You already did that." CR>)>)
(<VERB? TAKE>
<COND (<AND <IN? ,FILM ,FILM-PROJECTOR>
<FSET? ,FILM-PROJECTOR ,ONBIT>>
<TELL
"Even a nonunion projectionist like yourself should know how dangerous
it is to try to take film from" A ,FILM-PROJECTOR " while it's running."
CR>)>)
(<AND <VERB? PUT>
<FSET? ,FILM-PROJECTOR ,ONBIT>
<PRSI? ,FILM-PROJECTOR>>
<TELL
"You start to put" T ,FILM " in" T ,FILM-PROJECTOR ", but glance up at a sign
on the wall. The sign states: Remember, Perry Projectionist sez, \"Never
try to put film in" A ,FILM-PROJECTOR " that's turned on.\"" CR>)
(<AND <VERB? PUT>
<PRSI? ,SLIDE-PROJECTOR>>
<TELL "The " D ,FILM " won't fit in" TR ,PRSI>)>>
<OBJECT SLIDE
(IN PROJECTION-BOOTH)
(DESC "slide")
(SYNONYM SLIDE TRANSPARENCY)
(SIZE 1)
(FLAGS TAKEBIT TRANSBIT ;NDESCBIT)
(ACTION SLIDE-F)>
<ROUTINE SLIDE-F ()
<COND (<VERB? EXAMINE>
<FILM-SLIDE-DESC ,SLIDE>)
;(<VERB? PUT>
<COND (<EQUAL? ,PRSO ,SLIDE>
<TELL "You drop" T ,SLIDE " in" TR ,SLIDE-PROJECTOR>
<MOVE ,SLIDE ,SLIDE-PROJECTOR>)
(T
<TELL "That won't fit in" TR ,SLIDE-PROJECTOR>)>)>>
<ROUTINE FILM-SLIDE-DESC (OBJ "OPTIONAL" (STRING <>))
<COND (<OR <IN? .OBJ ,FILM-PROJECTOR>
<IN? .OBJ ,SLIDE-PROJECTOR>>
<TELL "It's in" T <LOC .OBJ> "." CR>)
(T
<TELL "You examine the ">
<COND (.STRING
<TELL .STRING>)>
<TELL
D .OBJ " closely. Whatever is on it is too small for you to make out." CR>)>>
;<OBJECT SPLICER
(IN PROJECTION-BOOTH)
(DESC "film splicer")
(SYNONYM SPLICE)
(ADJECTIVE FILM)
(FLAGS CONTBIT OPENBIT SEARCHBIT TRYTAKEBIT)
(CAPACITY 1)
(ACTION SPLICER-F)>
;<ROUTINE SPLICER-F ()
<COND (<VERB? TAKE>
<TELL "You can't. It's fastened to the workbench." CR>)
(<VERB? READ>
<PERFORM ,V?READ ,DIRECTIONS>
<RTRUE>)
(<VERB? EXAMINE>
<TELL
"It's your average film splicer with operating instructions
printed right on it. ">
<RFALSE>)>>
;<OBJECT DIRECTIONS
(IN PROJECTION-BOOTH)
(DESC "directions for film splicer")
(SYNONYM DIRECTION INSTRUCTIONS)
(ADJECTIVE OPERATING)
(FLAGS READBIT NDESCBIT)
(ACTION DIRECTIONS-F)>
;<ROUTINE DIRECTIONS-F ()
<COND (<VERB? EXAMINE READ>
<TELL
" OPERATING INSTRUCTIONS~
~
1. Place film to be spliced into splicer.~
2. Type SPLICE FILM." CR>)>>
<OBJECT FILM-PROJECTOR
(IN PROJECTION-BOOTH)
(DESC "film projector")
(SYNONYM PROJEC)
(ADJECTIVE FILM SIMPLEX)
(FLAGS CONTBIT OPENBIT SEARCHBIT LIGHTBIT)
(CAPACITY 13)
(ACTION FILM-PROJECTOR-F)>
<ROUTINE FILM-PROJECTOR-F ()
<COND (<VERB? EXAMINE>
<TELL
"It's a large, black, Simplex 70, 35mm " D ,FILM-PROJECTOR ". In the front it
has a short lens. ">
<COND (<IN? ,LENS-CAP ,FILM-PROJECTOR>
<TELL "There's a lens cap on the lens. ">)>
<TELL "The " D ,FILM-PROJECTOR>
<COND (<IN? ,FILM ,FILM-PROJECTOR>
<TELL " has" A ,FILM " in it, and">)
(<IN? ,CORPSE-LINE ,FILM-PROJECTOR>
<TELL " has" A ,CORPSE-LINE " in it, and">)>
<TELL " is turned o">
<COND (<FSET? ,FILM-PROJECTOR ,ONBIT>
<TELL "n">)
(T
<TELL "ff">)>
<TELL "." CR>)
(<AND <VERB? LAMP-ON>
<NOT <FSET? ,FILM-PROJECTOR ,ONBIT>>>
<TELL "Immediately the projector begins to roll">
<FSET ,FILM-PROJECTOR ,ONBIT>
<COND (<OR <IN? ,FILM ,FILM-PROJECTOR>
<IN? ,CORPSE-LINE ,FILM-PROJECTOR>>
<COND (<IN? ,FILM ,FILM-PROJECTOR>
<QUEUE I-FILM-DROP 2>)>
<TELL ". The film starts to run through the projector">
<COND (<FSET? ,LENS-CAP ,LENS-CAP-OFF-BIT>
<FSET ,SCREENING-ROOM ,ONBIT>
<TELL
" and a stream of colored light shoots out of the lens onto the screen in the
screening room">
<COND (<IN? ,CORPSE-LINE ,FILM-PROJECTOR>
<TELL "." CR>
<CORPSE-LINE-DEATH>)>)>)
(T ;"no film in projector"
<COND (<FSET? ,LENS-CAP ,LENS-CAP-OFF-BIT>
<FSET ,SCREENING-ROOM ,ONBIT>
<TELL
". A stream of white light shoots out of the lens of" T ,FILM-PROJECTOR " onto
the screen in the screening room">)
;"semied to fix period bug" ;(T ;"lens cap on"
<CRLF>)>)>
<TELL "." CR>)
(<VERB? OPEN CLOSE>
<CANT-OPEN-CLOSE>)
(<AND <VERB? LAMP-OFF>
<FSET? ,FILM-PROJECTOR ,ONBIT>>
<FCLEAR ,FILM-PROJECTOR ,ONBIT>
<COND (<NOT <FSET? ,SLIDE-PROJECTOR ,ONBIT>>
<FCLEAR ,SCREENING-ROOM ,ONBIT>)>
<TELL
"You hear" T ,FILM-PROJECTOR "'s whining trail off as it rolls to a stop." CR>)
(<AND <VERB? PUT PUT-ON>
<PRSI? ,FILM-PROJECTOR>>
<COND (<NOT <EQUAL? ,PRSO ,FILM ,CORPSE-LINE>>
<WASTE-OF-TIME>)
(<OR <IN? ,FILM ,FILM-PROJECTOR>
<IN? ,CORPSE-LINE ,FILM-PROJECTOR>>
<TELL
"You'll have to take" T <FIRST? ,FILM-PROJECTOR> " out first." CR>)>)>>
<ROUTINE CORPSE-LINE-DEATH ()
<TELL CR "Your eyes are immediately drawn to the screen. ">
<COND (<FSET? ,SLIDE-PROJECTOR
,ONBIT>
<TELL
"Although it's a little distorted by the slide projector, you">)
(T
<TELL "You">)>
<JIGS-UP
" quickly realize why \"A Corpse Line\" could never be released: From
the back of a large theatre the camera slowly pans in. The camera
moves forward and you are able to make out a dozen or more figures lying
side-by-side on the stage in glittering top hats. Then the music starts
and the figures rise to their feet. The camera is now close enough to
see more detail. The figures are corpses, some badly decayed, clad in
top hats. They begin to dance in unison as the music swells. For a
moment you forget they are corpses and begin to enjoy their mastery of
the art.~
~
Then the horror begins, just as it must have for Uncle Buddy. The line
does a kick, and several legs fly into the audience. You feel your heart
pounding as never before. The corpses, gripping each other's shoulders,
turn at the same time and a half-dozen arms are pulled from their
sockets. You can't seem to catch your breath. It's as if a pile of
bricks were stacked on your chest. As the number ends, the corpses
(what's left of them) remove their hats to take a bow. The camera moves
in close as they bend over and you see the tops of their heads have been
removed. You begin to shake uncontrollably, then you feel what seems
like an explosion in your chest. The last thing you see is the corpses'
brains plop onto the stage as they take their bow. You collapse.">>
<ROUTINE I-FILM-DROP ()
<MOVE ,FILM ,PROJECTION-BOOTH>
<COND (<EQUAL? ,HERE ,PROJECTION-BOOTH>
<TELL CR
"The " D ,FILM " runs out of" T ,FILM-PROJECTOR " and onto the floor." CR>)>>
<ROUTINE PROJECTORS-DESC (OBJ "OPTIONAL" (STRING <>))
<TELL "It's" A .OBJ>
<COND (.STRING
<TELL .STRING>)>
<TELL ". The " D .OBJ " ">
<COND (<FIRST? .OBJ>
<TELL "has" A <FIRST? .OBJ> " in it">)
(T
<TELL "is empty">)>
<TELL " and is turned o">
<COND (<FSET? .OBJ ,ONBIT>
<TELL "n">)
(T
<TELL "ff">)>
<TELL "." CR>>
<OBJECT SLIDE-PROJECTOR
(IN PROJECTION-BOOTH)
(DESC "slide projector")
(SYNONYM PROJEC)
(ADJECTIVE SLIDE)
(CAPACITY 1)
(FLAGS CONTBIT OPENBIT SEARCHBIT LIGHTBIT)
(ACTION SLIDE-PROJECTOR-F)>
<ROUTINE SLIDE-PROJECTOR-F ()
<COND (<VERB? EXAMINE>
<PROJECTORS-DESC ,SLIDE-PROJECTOR " with a lens">)
(<AND <VERB? LAMP-ON>
<NOT <FSET? ,SLIDE-PROJECTOR ,ONBIT>>>
<FSET ,SLIDE-PROJECTOR ,ONBIT>
<FSET ,SCREENING-ROOM ,ONBIT>
<TELL "A stream of ">
<COND (<IN? ,SLIDE ,SLIDE-PROJECTOR>
<TELL "colored">)
(T
<TELL "white">)>
<TELL
" light shoots out of the lens of" T ,SLIDE-PROJECTOR " onto the screen in the
screening room." CR>)
(<VERB? FOCUS>
<PERFORM ,V?FOCUS ,SLIDE-PROJECTOR-LENS>
<RTRUE>);"add unfocus here"
(<VERB? OPEN CLOSE>
<CANT-OPEN-CLOSE>)
(<AND <VERB? LAMP-OFF>
<FSET? ,SLIDE-PROJECTOR ,ONBIT>>
<FCLEAR ,SLIDE-PROJECTOR ,ONBIT>
<COND (<OR <NOT <FSET? ,FILM-PROJECTOR ,ONBIT>>
<NOT <FSET? ,LENS-CAP ,LENS-CAP-OFF-BIT>>>
<FCLEAR ,SCREENING-ROOM ,ONBIT>)>
<TELL
"You turn off" T ,SLIDE-PROJECTOR " and the light from the lens
fades away." CR>)>>
<OBJECT PROJECTED-IMAGE
(IN LOCAL-GLOBALS)
(DESC "image")
(SYNONYM IMAGE WORDS BITS PIECES)
(ADJECTIVE BLURRED WASHED)
(FLAGS NDESCBIT)
(ACTION PROJECTED-IMAGE-F)>
<ROUTINE PROJECTED-IMAGE-F ()
<COND (<EQUAL? ,PRSI ,PROJECTED-IMAGE>
<PERFORM ,PRSA ,PRSO ,PROJECTION-SCREEN>
<RTRUE>)
(<EQUAL? ,PRSO ,PROJECTED-IMAGE>
<PERFORM ,PRSA ,PROJECTION-SCREEN ,PRSI>
<RTRUE>)>>
<OBJECT PROJECTION-SCREEN
(IN LOCAL-GLOBALS)
(DESC "viewing screen")
(SYNONYM SCREEN)
(ADJECTIVE VIEWING MOVIE)
(FLAGS NDESCBIT)
(ACTION PROJECTION-SCREEN-F)>
<GLOBAL WHITE-LIGHT "filled with white light">
<GLOBAL BITS-&-PIECES "filled with bits and pieces of colored words">
<GLOBAL WASHED-OUT-BITS "filled with washed-out bits of colored words">
<GLOBAL PROJECTOR-POINTS <>> ;"true if you solved projector puzzle"
<ROUTINE PROJECTION-SCREEN-F ()
<COND (<VERB? EXAMINE READ>
<TELL "The " D ,PROJECTION-SCREEN " is ">
<COND (<AND <FSET? ,FILM-PROJECTOR ,ONBIT>
<FSET? ,LENS-CAP ,LENS-CAP-OFF-BIT>>
<COND (<IN? ,FILM ,FILM-PROJECTOR>
<COND (<FSET? ,SLIDE-PROJECTOR ,ONBIT>
<COND (<IN? ,SLIDE ,SLIDE-PROJECTOR>
<COND (<FSET?
,SLIDE-PROJECTOR-LENS
,FOCUS-BIT>
<TELL
"showing a message saying:~
~
PLAY \"" <GET ,SONGS ,SONG-NUMBER> ".\"~
Love,~
Aunt Hildegarde">
<COND (<NOT
,PROJECTOR-POINTS>
<SETG SCORE
<+ ,SCORE 10>>
<SETG
PROJECTOR-POINTS T>)>)
;"slide projector lens not focused" (T
<TELL
"filled with bits of colored words and a blur of colored light">)>)
;"no slide in slide projector" (T
<TELL ,WASHED-OUT-BITS>)>)
;"slide projector isn't turn on" (T
<TELL ,BITS-&-PIECES>)>)
;"projector on but no film" (T
<COND (<FSET? ,SLIDE-PROJECTOR ,ONBIT>
<COND (<IN? ,SLIDE ,SLIDE-PROJECTOR>
<COND (<FSET? ,SLIDE-PROJECTOR-LENS
,FOCUS-BIT>
<TELL ,WASHED-OUT-BITS>)
(T
<TELL
;"a washed-out blur of colored light" ,WASHED-OUT-BITS>)>)
;"both projectors on and empty" (T
<TELL ,WHITE-LIGHT>)>)
;"film proj on but not slide proj" (T
<TELL ,WHITE-LIGHT>)>)>)
(T ;"film projector is doing nothing to screen"
<COND (<FSET? ,SLIDE-PROJECTOR ,ONBIT>
<COND (<IN? ,SLIDE ,SLIDE-PROJECTOR>
<COND (<FSET? ,SLIDE-PROJECTOR-LENS
,FOCUS-BIT>
<TELL ,BITS-&-PIECES>)
(T
<TELL "a blur of colored light">)>)
(T
<TELL ,WHITE-LIGHT>)>)
(T ;"neither projector doing anything to screen"
<TELL "blank">)>)>
<TELL "." CR>)>>
<OBJECT LENS-CAP
(IN FILM-PROJECTOR)
(DESC "lens cap")
(SYNONYM CAP COVER)
(ADJECTIVE LENS FILM PROJEC)
(FLAGS TRYTAKEBIT TAKEBIT NDESCBIT) ;"that's why"
(SIZE 3)
(ACTION LENS-CAP-F)>
<ROUTINE LENS-CAP-F ()
<COND (<AND <VERB? PUT-ON>
<EQUAL? ,PRSI ,FILM-PROJECTOR ,FILM-PROJECTOR-LENS>>
<FCLEAR ,LENS-CAP ,LENS-CAP-OFF-BIT>
<FSET ,LENS-CAP ,NDESCBIT>
<FSET ,LENS-CAP ,TRYTAKEBIT>
<MOVE ,LENS-CAP ,FILM-PROJECTOR>
<COND (<AND <NOT <FSET? ,SLIDE-PROJECTOR ,ONBIT>>
<FSET? ,FILM-PROJECTOR ,ONBIT>>
<FCLEAR ,SCREENING-ROOM ,ONBIT>)>
<TELL "You place" T ,LENS-CAP " over" TR ,FILM-PROJECTOR-LENS>)
(<AND <VERB? PUT-ON>
<EQUAL? ,PRSI ,SLIDE-PROJECTOR ,SLIDE-PROJECTOR-LENS>>
<TELL "The " D ,LENS-CAP " won't fit on" TR ,PRSI>)
(<AND <VERB? TAKE-OFF UNTIE> ;"UNATTACH"
<NOT <FSET? ,LENS-CAP ,LENS-CAP-OFF-BIT>>>
<PERFORM ,V?TAKE ,LENS-CAP>
<RTRUE>)
(<AND <VERB? TAKE>
<PRSO? ,LENS-CAP>
<NOT <FSET? ,LENS-CAP ,LENS-CAP-OFF-BIT>>>
<COND (<NOT <ITAKE>>
<RTRUE>)>
<FSET ,LENS-CAP ,LENS-CAP-OFF-BIT>
<FCLEAR ,LENS-CAP ,NDESCBIT>
<FCLEAR ,LENS-CAP ,TRYTAKEBIT>
<COND (<FSET? ,FILM-PROJECTOR ,ONBIT>
<FSET ,SCREENING-ROOM ,ONBIT>
<TELL "As you remove" T ,LENS-CAP " a stream of ">
<COND (<OR <IN? ,FILM ,FILM-PROJECTOR>
<IN? ,CORPSE-LINE ,FILM-PROJECTOR>>
<TELL "colored">)
(T
<TELL "white">)>
<TELL
" light shoots from" T ,FILM-PROJECTOR "'s lens." CR>
<COND (<IN? ,CORPSE-LINE ,FILM-PROJECTOR>
<CORPSE-LINE-DEATH>)>
<RTRUE>)
(T
<RFALSE>)>)>>
<OBJECT FILM-PROJECTOR-LENS
(IN PROJECTION-BOOTH)
(DESC "film projector lens")
(SYNONYM LENS)
(ADJECTIVE FILM PROJEC)
(FLAGS NDESCBIT)
(ACTION FILM-PROJECTOR-LENS-F)>
<ROUTINE FILM-PROJECTOR-LENS-F ()
<COND (<VERB? EXAMINE>
<TELL
"It's a hand-ground, all-aluminum, Bierman 500 " D ,FILM-PROJECTOR-LENS>
<COND (<NOT <FSET? ,LENS-CAP ,LENS-CAP-OFF-BIT>>
<TELL " with" A ,LENS-CAP " on it">)
(T
<COND (<FSET? ,FILM-PROJECTOR ,ONBIT>
<TELL ", with a spray of ">
<COND (<IN? ,FILM ,FILM-PROJECTOR>
<TELL "colored">)
(T
<TELL "white">)>
<TELL " light coming out of it">)>)>
<TELL "." CR>)
(<VERB? FOCUS ;UNFOCUS TURN>
<TELL
,YOU-CANT "adjust" T ,FILM-PROJECTOR-LENS ". It's preset for Uncle Buddy's
screening room." CR>)
(<VERB? TAKE UNTIE> ;"UNATTACH"
<TELL ,LENS-ATTACHED CR>)>>
<GLOBAL LENS-ATTACHED "The lens is firmly attached to the projector.">
<OBJECT SLIDE-PROJECTOR-LENS
(IN PROJECTION-BOOTH)
(DESC "slide projector lens")
(SYNONYM LENS)
(ADJECTIVE SLIDE PROJEC)
(FLAGS NDESCBIT)
(ACTION SLIDE-PROJECTOR-LENS-F)>
<ROUTINE SLIDE-PROJECTOR-LENS-F ()
<COND (<VERB? EXAMINE>
<TELL
"It's a fairly expensive, focusable " D ,SLIDE-PROJECTOR-LENS>
<COND (<FSET? ,SLIDE-PROJECTOR ,ONBIT>
<TELL ". A stream of ">
<COND (<IN? ,SLIDE ,SLIDE-PROJECTOR>
<TELL "colored">)
(T
<TELL "white">)>
<TELL " light sprays from the lens">)>
<TELL "." CR>)
(<VERB? FOCUS TURN>
<COND (<NOT <FSET? ,SLIDE-PROJECTOR ,ONBIT>>
<TELL
"How can you focus" T ,SLIDE-PROJECTOR " when it's not turned on?" CR>)
(<FSET? ,SLIDE-PROJECTOR-LENS ,FOCUS-BIT>
<YOU-ALREADY>) ;"pass a string- focused the prso?"
(<NOT <IN? ,SLIDE ,SLIDE-PROJECTOR>>
<TELL
"How can you focus" T ,SLIDE-PROJECTOR " when there's nothing in it?" CR>)
(T
<TELL "You twist" TR ,SLIDE-PROJECTOR-LENS>
;"say more here?"
<FSET ,SLIDE-PROJECTOR-LENS ,FOCUS-BIT>)>)
;(<VERB? UNFOCUS> ;"say more here?"
<TELL "You twist" TR ,SLIDE-PROJECTOR-LENS>
<FCLEAR ,SLIDE-PROJECTOR-LENS ,FOCUS-BIT>)
(<VERB? TAKE>
<TELL ,LENS-ATTACHED CR>)>>
<ROOM PROJECTION-BOOTH
(IN ROOMS)
(DESC "Projection Booth")
(LDESC
"This cramped area is just big enough for one person and all the equipment.
A thick glass window overlooks the screening room to the north.")
(NORTH TO SCREENING-ROOM)
(FLAGS RLANDBIT)
(GLOBAL PROJECTION-SCREEN PROJECTED-IMAGE WINDOW)
(CAPACITY 10) ;"don't light room when sun comes up"
(THINGS <PSEUDO (SCREEN ROOM SCREENING-ROOM-PSEUDO-F)>)
(ACTION PROJECTION-BOOTH-F)>
<ROUTINE PROJECTION-BOOTH-F (RARG)
<COND (<AND <EQUAL? .RARG ,M-ENTER>
<NOT <FSET? ,PROJECTION-BOOTH ,EVERYBIT>>>
<FSET ,PROJECTION-BOOTH ,EVERYBIT>
<SETG SONG-NUMBER <- <RANDOM 10> 1>>)>>
<ROUTINE SCREENING-ROOM-PSEUDO-F ()
<COND (<VERB? EXAMINE>
<PERFORM ,V?LOOK-INSIDE ,WINDOW>
<RTRUE>)>>
;<ROUTINE TO-SCREENING-ROOM ()
<COND (<AND <IN? ,CORPSE-LINE ,FILM-PROJECTOR>
<FSET? ,FILM-PROJECTOR ,ONBIT>
<FSET? ,LENS-CAP ,LENS-CAP-OFF-BIT>>
<CORPSE-LINE-DEATH>)
(T
,SCREENING-ROOM)>>
<GLOBAL SONG-NUMBER 10>
<GLOBAL SONGS
<TABLE
;"0" "Yesterday"
;"1" "Greensleeves"
;"2" "Camelot"
;"3" "Stardust"
;"4" "Misty"
;"5" "People"
;"6" "Feelings"
;"7" "Tomorrow"
;"8" "Tonight"
;"9" "Oklahoma">>
<ROOM SCREENING-ROOM
(IN ROOMS)
(DESC "Screening Room")
(LDESC
"This is the screening room where Uncle Buddy died. He had a massive
heart attack while viewing the final cut of his first horror musical, \"A
Corpse Line.\" The film was never released and no one knows what
happened to the only full-length version, worth a fortune today. Rumor
has it that as he was dying he proclaimed \"A Corpse Line\" to be his
masterwork of horror. Other rumors say the film was so bad that, if it
had been released and he hadn't died, someone would have killed him.
Several rows of plush theatre-like seats face a movie screen. Doorways
lead south and west.")
(SOUTH TO PROJECTION-BOOTH)
(WEST TO SHORT-HALL)
(FLAGS RLANDBIT)
(CAPACITY 10) ;"don't light room when sun comes up"
(GLOBAL ;BOOTH-DOOR SEAT PROJECTION-SCREEN PROJECTED-IMAGE WINDOW)>
<ROOM OUTSIDE-PARLOR
(IN ROOMS)
(DESC "Hallway")
(EAST TO PARLOR)
(WEST TO FOYER)
(GLOBAL WINDOW)
(FLAGS RLANDBIT LOCKEDBIT) ;"FOR SAFE"
(CAPACITY 20) ;"Tell--sun coming up"
(ACTION OUTSIDE-PARLOR-F)>
<ROUTINE OUTSIDE-PARLOR-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"This is a long hall stretching east and west.">
<COND (<FSET? ,WALL-SAFE ,INVISIBLE>
<TELL
" There is a painting hanging here.">)
(T
<TELL
" There is a painting swung away from the wall. Next
to the painting is a">
<COND (<FSET? ,WALL-SAFE ,OPENBIT>
<TELL "n open">)
(T
<TELL " closed">)>
<TELL" wall safe.">)>)>>
<ROOM PARLOR
(IN ROOMS)
(DESC "Parlor")
(WEST TO OUTSIDE-PARLOR)
(DOWN PER TO-CRAWL-SPACE-NORTH)
(FLAGS RLANDBIT)
(GLOBAL CRAWL-SPACE-DOOR SEAT)
(CAPACITY 10) ;"DON'T LIGHT THIS ROOM WHEN SUN COMES UP"
(THINGS <PSEUDO (PIANO CASTERS CASTERS-PSEUDO)>)
(ACTION PARLOR-F)>
<ROUTINE PARLOR-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<COND (,TIPPED
<TELL
"This room is askew with the floor tilting down in the ">
<COND (<EQUAL? ,TIPPED ,CRAWL-SPACE-NORTH>
<TELL "north and up in the south">)
(T
<TELL "south and up in the north">)>
<TELL ". The piano is ">)
(T
<TELL
"This is the parlor where Uncle Buddy would bring potential investors.
He would break out his finest scotch and Cuban cigars. Once the
\"guests\" were tight he would present his latest movie idea. (You've
seen his movies, so you know anyone who would agree to invest in one of
them had to have been drinking.) Strange, you notice all the furniture
in this room is bolted to the floor, except for the piano ">)>
<COND (<EQUAL? ,PIANO-LOC 1>
<TELL "against the northern wall">)
(<EQUAL? ,PIANO-LOC 2>
<TELL "in the middle of the room">)
(T
<TELL "against the southern wall">)>
<COND (<FSET? ,CRAWL-SPACE-DOOR ,OPENBIT>
<TELL
". There is an open door in the floor">)>
<TELL ". A doorway leads west.">)>>
<ROUTINE TO-CRAWL-SPACE-NORTH ()
<COND (<FSET? ,CRAWL-SPACE-DOOR ,OPENBIT>
<COND (<FSET? ,SKIS ,WORNBIT>
<TELL
"You can't fit through the opening wearing the skis." CR>
<RFALSE>) ;"ADDED 10-31"
(<EQUAL? ,TIPPED ,CRAWL-SPACE-NORTH>
<TELL
"Now that the parlor is tilted, you can't fit into the crawl space." CR>
<RFALSE>)
(T
,CRAWL-SPACE-NORTH)>)
(T
<TELL "You can't go that way." CR>
<RFALSE>)>>
"--- Crawl Space ---"
<OBJECT CRAWL-SPACE-DOOR
(IN LOCAL-GLOBALS)
(DESC "crawl space door")
(SYNONYM DOOR)
(ADJECTIVE CRAWL SPACE) ;"will open crawl space door work"
(FLAGS DOORBIT NDESCBIT)
(ACTION CRAWL-SPACE-DOOR-F)>
<GLOBAL SONG-PLAYED <>>
<ROUTINE CRAWL-SPACE-DOOR-F ()
<COND (<VERB? OPEN>
<COND (<EQUAL? ,HERE ,PARLOR>
<COND (<AND ,SONG-PLAYED
<NOT <FSET? ,CRAWL-SPACE-DOOR ,OPENBIT>>>
<FSET ,CRAWL-SPACE-DOOR ,OPENBIT>
<TELL "Opened." CR>)
(T
<TELL "You can't seem to open it." CR>)>)>)>>
<ROOM CRAWL-SPACE-NORTH
(IN ROOMS)
(DESC "Crawl Space, North")
(FLAGS RLANDBIT)
(UP TO PARLOR IF CRAWL-SPACE-DOOR IS OPEN)
(SOUTH PER TO-CRAWL-SPACE-SOUTH)
(NORTH PER TO-FIRST-SECRET-ROOM)
(GLOBAL CRAWL-SPACE-DOOR)
(CAPACITY 10) ;"don't light room when sun comes up"
(ACTION CRAWL-SPACE-NORTH-F)
(THINGS <PSEUDO (WOODEN BEAM BEAM-PSEUDO)
(THICK BEAM BEAM-PSEUDO)>)>
<ROUTINE CRAWL-SPACE-NORTH-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"This is the northern half of an uncomfortably warm crawl space beneath the
parlor. It appears as though this room is under construction.">
<DESCRIBE-CRAWL-SPACE-BEAM "south">
<TELL
" To the north, about a foot above the floor, you see an entrance to
a passage.">
<COND (<NOT ,TIPPED>
<TELL
" The entrance is partially blocked by the floor of the room above.">)>
<DESCRIBE-NICHE ,NORTH-NICHE>
<TELL " There is a">
<COND (<FSET? ,CRAWL-SPACE-DOOR ,OPENBIT>
<TELL "n open">)
(T
<TELL" closed">)>
<TELL " door above you.">)>>
<ROUTINE TO-CRAWL-SPACE-SOUTH ()
<COND (<EQUAL? ,TIPPED ,CRAWL-SPACE-SOUTH>
<TELL
"You won't fit in the southern half of the crawl space. The ceiling shifted
and now fills the space." CR>
<RFALSE>)
(T
,CRAWL-SPACE-SOUTH)>>
<ROUTINE TO-FIRST-SECRET-ROOM ()
<COND (<EQUAL? ,TIPPED ,CRAWL-SPACE-SOUTH>
,FIRST-SECRET-ROOM)
(T
<TELL
"You can't fit through the passage. It's partially blocked by the floor
of the room above." CR>
<RFALSE>)>>
<ROOM FIRST-SECRET-ROOM
(IN ROOMS)
(DESC "Small Passage")
(LDESC
"This is a small passage which ends here. It looks as if the
construction of this room was never completed.")
(FLAGS RLANDBIT)
(CAPACITY 10) ;"don't light room when sun comes up"
(SOUTH TO CRAWL-SPACE-NORTH)>
<OBJECT PARKING-METER
(IN FIRST-SECRET-ROOM)
(DESC "parking meter")
(SYNONYM METER)
(ADJECTIVE PARKING)
(FLAGS TAKEBIT)
(SIZE 10)
(VALUE 10)
(ACTION PARKING-METER-F)>
<ROUTINE PARKING-METER-F ()
<COND (<VERB? EXAMINE>
<TELL
"This is the parking meter that was the final frustration for budding
actor Alan Chaplin in Uncle Buddy's \"You Can't Fight City Hall, But You
Can Blow It Up!\"" CR>)>>
<ROUTINE DESCRIBE-NICHE (NICHE)
<TELL " There is a niche in the ceiling here.">
<COND (<FIRST? .NICHE>
<TELL
" In" T .NICHE " there is" A <FIRST? .NICHE> " supporting the ceiling.">)>
<RTRUE>
;<CRLF>>
<ROUTINE BEAM-PSEUDO ()
<COND (<VERB? EXAMINE>
<TELL
"The thick, wooden beam runs across the ceiling of the crawl space." CR>)>>
<ROUTINE DESCRIBE-CRAWL-SPACE-BEAM (STRING)
<TELL
" A wooden beam runs east-west across the ceiling, forming the boundary between
this side of the crawl space and the other half to the " .STRING ".">>
<ROOM CRAWL-SPACE-SOUTH
(IN ROOMS)
(DESC "Crawl Space, South")
(FLAGS RLANDBIT)
(NORTH TO CRAWL-SPACE-NORTH)
;(GLOBAL DANK-NICHE SOUTH-NICHE)
(CAPACITY 10) ;"don't light room when sun comes up"
(ACTION CRAWL-SPACE-SOUTH-F)
(THINGS <PSEUDO (WOODEN BEAM BEAM-PSEUDO)
(THICK BEAM BEAM-PSEUDO)>)>
<ROUTINE CRAWL-SPACE-SOUTH-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"This is the southern half of an uncomfortably warm crawl space beneath the
parlor.">
<DESCRIBE-CRAWL-SPACE-BEAM "north">
<DESCRIBE-NICHE ,SOUTH-NICHE>
;<CRLF>)>>
<OBJECT SQUARE-POST
(IN SOUTH-NICHE)
(DESC "dirty pillar")
(SYNONYM PILLAR)
(ADJECTIVE DIRTY WOODEN)
(SIZE 10)
(FLAGS NDESCBIT TAKEBIT TRYTAKEBIT CANT-MOVE-POST-BIT)
(ACTION POST-F)>
<OBJECT ROUND-POST
(IN NORTH-NICHE)
(DESC "dusty pillar")
(SYNONYM PILLAR)
(ADJECTIVE DUSTY WOODEN)
(SIZE 10)
(FLAGS TAKEBIT NDESCBIT TRYTAKEBIT CANT-MOVE-POST-BIT)
(ACTION POST-F)>
<ROUTINE POST-F ("OPTIONAL" OARG "AUX" POST-LOC)
<SET POST-LOC <LOC ,PRSO>>
<COND ;(.OARG
<COND (<EQUAL? .POST-LOC ,NORTH-NICHE ,SOUTH-NICHE>
<COND (<EQUAL? .OARG ,M-OBJDESC?>
<RTRUE>)
(T
<TELL
"A " D ,PRSO " is standing vertically from floor to ceiling, its top
stuck in" A .POST-LOC ".">)>)
(T
<RFALSE>)>)
(<AND <VERB? TAKE MOVE>
<FSET? ,PRSO ,CANT-MOVE-POST-BIT>>
<TELL "The pillar won't budge from the niche." CR>)
(<VERB? EXAMINE>
<COND (<EQUAL? .POST-LOC ,NORTH-NICHE ,SOUTH-NICHE>
<TELL "It's in" TR <LOC ,PRSO>>) ;"SEM"
(T
<TELL
"The " D ,PRSO " is made of wood and is about two feet tall." CR>)>)
(<AND <VERB? PUT>
<EQUAL? ,PRSI ,NORTH-NICHE ,SOUTH-NICHE>>
<COND (,TIPPED
<TELL
"The post won't go in the niche now that the ceiling is tilted." CR>)
(<OR <AND <PRSI? ,NORTH-NICHE>
<EQUAL? ,PIANO-LOC 1>>
<AND <PRSI? ,SOUTH-NICHE>
<EQUAL? ,PIANO-LOC 3>>
<AND <EQUAL? ,PIANO-LOC 2>
<OR <PRSI? ,NORTH-NICHE>
<PRSI? ,SOUTH-NICHE>>>>
<TELL
"Because of the weight from above you can't put the pillar back in the
niche." CR>)>)
(<VERB? BURN>
<TELL ,PYRO>)>>
<GLOBAL PIANO-LOC 2>
<GLOBAL TIPPED <>>
<OBJECT PIANO
(IN PARLOR)
(DESC "piano")
(SYNONYM PIANO LID)
(FLAGS NDESCBIT SEARCHBIT CONTBIT)
(CAPACITY 75)
(ACTION PIANO-F)>
<ROUTINE PIANO-F ()
<COND (<AND <VERB? PUSH-TO>
<PRSI? ,INTDIR>>
<COND (<NOT <EQUAL? ,TIPPED ,CRAWL-SPACE-NORTH
,CRAWL-SPACE-SOUTH>>
<COND (<AND <EQUAL? ,P-DIRECTION ,P?NORTH>
<EQUAL? ,PIANO-LOC 1>>
<TELL
"It's already up against the wall." CR>)
(<AND <EQUAL? ,P-DIRECTION ,P?NORTH>
<EQUAL? ,PIANO-LOC 2>>
<COND (<IN? ,ROUND-POST ,NORTH-NICHE>
<FCLEAR ,SQUARE-POST
,CANT-MOVE-POST-BIT>
<SETG PIANO-LOC 1>
<TELL
"The hearty breakfast you had this morning pays off as you push
the piano north against the wall." CR>)
(T
<SETG TIPPED ,CRAWL-SPACE-NORTH>
<SETG PIANO-LOC 1>
<TELL
"You push the piano north a couple of feet and the room begins to tip. As the
north side of the parlor tips down, the piano rolls across the floor and
against the north wall with an atonal banging of the keys. The south side
of the floor tilts up." CR>)>)
(<AND <EQUAL? ,P-DIRECTION ,P?NORTH>
<EQUAL? ,PIANO-LOC 3>>
<COND (<IN? ,ROUND-POST ,NORTH-NICHE>
<FSET ,ROUND-POST
,CANT-MOVE-POST-BIT>)>
<COND (<IN? ,SQUARE-POST ,SOUTH-NICHE>
<FSET ,SQUARE-POST
,CANT-MOVE-POST-BIT>)>
<SETG PIANO-LOC 2>
<TELL
"You push the piano north to the center of the room." CR>)
(<AND <EQUAL? ,P-DIRECTION ,P?SOUTH>
<EQUAL? ,PIANO-LOC 1>>
<COND (<IN? ,ROUND-POST ,NORTH-NICHE>
<FSET ,ROUND-POST
,CANT-MOVE-POST-BIT>)>
<COND (<IN? ,SQUARE-POST ,SOUTH-NICHE>
<FSET ,SQUARE-POST
,CANT-MOVE-POST-BIT>)>
<SETG PIANO-LOC 2>
<TELL
"You push the piano south to the center of the room." CR>)
(<AND <EQUAL? ,P-DIRECTION ,P?SOUTH>
<EQUAL? ,PIANO-LOC 2>>
<COND (<IN? ,SQUARE-POST ,SOUTH-NICHE>
<FCLEAR ,ROUND-POST
,CANT-MOVE-POST-BIT>
<SETG PIANO-LOC 3>
<TELL
"The hearty breakfast you had this morning pays off as you push
the piano south against the wall." CR>)
(T
<MOVE ,ROUND-POST ,CRAWL-SPACE-NORTH>
<FCLEAR ,ROUND-POST ,NDESCBIT>
<FCLEAR ,ROUND-POST
,CANT-MOVE-POST-BIT>
<SETG TIPPED ,CRAWL-SPACE-SOUTH>
<SETG PIANO-LOC 3>
<TELL
"You push the piano south a couple of feet and the room begins to tip. As the
south side of the parlor tips down the piano rolls across the floor and
slams against the south wall. The north side of the floor tilts up." CR>)>)
(<AND <EQUAL? ,P-DIRECTION ,P?SOUTH>
<EQUAL? ,PIANO-LOC 3>>
<TELL
"It's already up against the wall." CR>)
(<EQUAL? ,P-DIRECTION ,P?EAST ,P?WEST
,P?NE ,P?NW
,P?SE ,P?SW>
<TELL "You try pushing the piano ">
<COND (<EQUAL? ,P-DIRECTION ,P?EAST>
<TELL "east">)
(<EQUAL? ,P-DIRECTION ,P?WEST>
<TELL "west">)
(<EQUAL? ,P-DIRECTION ,P?NE>
<TELL "northeast">)
(<EQUAL? ,P-DIRECTION ,P?NW>
<TELL "northwest">)
(<EQUAL? ,P-DIRECTION ,P?SE>
<TELL "southeast">)
(<EQUAL? ,P-DIRECTION ,P?SW>
<TELL "southwest">)>
<TELL
" but the casters it rides on are old and worn.
They're stuck, so" T ,PIANO " will only move north and south." CR>)>)
(T
<TELL
"Now that the room is tipped, the piano is too heavy to move." CR>)>)
(<VERB? PUSH MOVE>
<TELL "Did you have a direction in mind?" CR>)
(<VERB? RAISE>
<PERFORM ,V?OPEN ,PIANO>
<RTRUE>)
(<VERB? LOWER>
<PERFORM ,V?CLOSE ,PIANO>
<RTRUE>)
(<VERB? EXAMINE>
<TELL
"It's the baby grand that Aunt Hildegarde bought for you and Herman.
Though neither of you practiced as you should, you've managed to
maintain a shaky repertoire of standards. The casters on the piano's
legs have seen better days. The piano lid is ">
<COND (<FSET? ,PIANO ,OPENBIT>
<TELL "open">)
(T
<TELL "closed">)>
<TELL "." CR>)>>
;<OBJECT CASTERS
(IN PARLOR)
(DESC "CASTERS")
(SYNONYM CASTERS)
(ADJECTIVE PIANO)
(FLAGS NDESCBIT)
(ACTION CASTERS-F)>
<ROUTINE CASTERS-PSEUDO ()
<COND (<VERB? EXAMINE>
<TELL
"The casters look old and worn, as if they have seen better days." CR>)>>
<OBJECT NORTH-NICHE
(IN CRAWL-SPACE-NORTH)
(DESC "niche")
(SYNONYM NICHE)
(FLAGS NDESCBIT CONTBIT OPENBIT SEARCHBIT)
(CAPACITY 10)
(ACTION NICHE-F)>
<OBJECT SOUTH-NICHE
(IN CRAWL-SPACE-SOUTH)
(DESC "niche")
(SYNONYM NICHE)
(FLAGS NDESCBIT CONTBIT OPENBIT SEARCHBIT)
(CAPACITY 10)
(ACTION NICHE-F)>
<ROUTINE NICHE-F ()
<COND (<VERB? EXAMINE LOOK-INSIDE>
<TELL "You see">
<COND (<NOT <FIRST? ,PRSO>>
<TELL " nothing">)
(T
<TELL A <FIRST? ,PRSO>>)>
<TELL " in" TR ,PRSO>)
(<AND <VERB? PUT>
<PRSI? NORTH-NICHE SOUTH-NICHE>
<NOT <PRSO? ROUND-POST SQUARE-POST>>>
<WASTE-OF-TIME>)
;(<VERB? PUT> ;"HUH? SEM"
<COND (<PRSO? ,ROUND-POST ,SQUARE-POST>
<RFALSE>)>
<TELL "Putting" T ,PRSO " in the corner is useless." CR>)
(<VERB? OPEN CLOSE>
<CANT-OPEN-CLOSE>)>>
"--- Noise ---"
<ROUTINE I-NOISE ()
<COND (<FSET? ,HERE ,CAVEBIT>
<QUEUE I-NOISE 5>
<RFALSE>)>
<CRLF>
<COND (<FSET? ,HERE ,OUTDOORSBIT>
<TELL <PICK-ONE ,OUTDOOR-NOISE>>)
(T
<TELL <PICK-ONE ,INDOOR-NOISE>>)>
<CRLF>
<QUEUE I-NOISE <+ 30 <RANDOM 20>>>
<RFALSE>>
<GLOBAL INDOOR-NOISE
<LTABLE 0
"Somewhere in the house you hear the thud of something falling on the floor."
;"Nearby you hear the scraping noise of something being dragged across the floor."
;"Without warning, a door slams shut."
"You hear the eerie whistling of wind coming down the chimney."
"Somewhere in the house you hear the creaking of floorboards."
;"Suddenly the antique music box begins to play an old melody."
;"There is a faint tapping on the window."
;"Suddenly, maniacal laughter fills the house.">>
<GLOBAL OUTDOOR-NOISE
<LTABLE 0
;"You hear the thunder of waves crashing on the rocks."
"You can hear dogs howling in the distance."
;"All around the house you can hear the shrieking of seagulls."
;"In the distance you hear the ominous rumbling of thunder."
;"Suddenly overhead there is a loud bang of thunder."
"Somewhere nearby several of Morgan Fairchild's cats begin crying."
;"You can hear somewhere a door banging against the house."
"From the ocean there is the distant ringing of warning buoys."
;"The foghorn begins warning any boats still in the area."
"Shadows pour over you as grey clouds sweep past the night's full moon."
>>
"--- Leftovers ---"
; <OBJECT INDENT
(IN CRAWL-SPACE)
(DESC "slight indentation")
(SYNONYM INDENT NICHE)
(ADJECTIVE SLIGHT)
(FLAGS NDESCBIT CONTBIT SEARCHBIT)
(CAPACITY 50)>
;<ROUTINE STUCK-POST-F ()
<COND (<VERB? MOVE REMOVE TAKE>
<TELL
"You push, pull and tug but cannot remove the post. There is too much weight
on the post from the room above." CR>)>>
;<ROUTINE THICK-POST-F ()
<COND (<VERB? MOVE TAKE>
<COND (<NOT <EQUAL? ,THICK-POST-LOC ,LOCAL-GLOBALS>>
<MOVE-THICK-POST>)>)>>
;<ROUTINE MOVE-THICK-POST ()
<TELL "When you remove the post, ">
<COND (<NOT <EQUAL? ,THIN-POST-LOC ,LOCAL-GLOBALS>>
<TELL
"the corner of the ceiling that it was holding up begins to sag noticably.
Luckily, the other post still supports a corner of the ceiling"
CR>
;<MOVE ,THICK-POST ,PLAYER>
;<SETG THICK-POST-LOC ,LOCAL-GLOBALS>
<RFATAL>)
(T
<JIGS-UP
"the ceiling collapses onto you, crushing you.">)>>
;<ROUTINE THIN-POST-F ()
<COND (<VERB? MOVE TAKE>
<COND (<NOT <EQUAL? ,THIN-POST-LOC ,LOCAL-GLOBALS>>
<MOVE-THIN-POST>)>)>>
;<ROUTINE MOVE-THIN-POST ()
<TELL "When you remove the post, ">
<COND (<NOT <EQUAL? ,THICK-POST-LOC ,LOCAL-GLOBALS>>
<TELL
"the corner of the ceiling that it was holding up begins to sag noticably.
Luckily, the other post still supports a corner of the ceiling"
CR>
<MOVE ,THIN-POST ,PLAYER>
<SETG THIN-POST-LOC ,LOCAL-GLOBALS>
<RFATAL>)
(T
<JIGS-UP
"the ceiling collapses onto you, crushing you.">)>>
<ROOM P-DEBUG
(IN ROOMS)
(DESC "Work Room")
(LDESC
"~
Cellar ~
Cannon | Crawl Space North ~
Emplacement | / ~
____|___/ ~
| | ~
Boat Dock ----| Work |----Heart of Maze ~
| Room | ~
|_______| ~
/ | . ~
/ | . ~
Attic Upstairs Bomb Shelter ~
Hall Middle
~")
(UP PER OUT-OF-P-DEBUG)
(NORTH PER OUT-OF-P-DEBUG)
(WEST PER OUT-OF-P-DEBUG)
(EAST PER OUT-OF-P-DEBUG)
(SOUTH PER OUT-OF-P-DEBUG)
(SE PER OUT-OF-P-DEBUG)
(SW PER OUT-OF-P-DEBUG)
(NE PER OUT-OF-P-DEBUG)
(NW PER OUT-OF-P-DEBUG)
(FLAGS RLANDBIT ONBIT TOUCHBIT)>
<ROUTINE OUT-OF-P-DEBUG ()
<FSET ,FLASHLIGHT ,ONBIT>
<MOVE ,GREEN-MATCH ,PLAYER>
<MOVE ,FLASHLIGHT ,PLAYER>
<TELL
"Your flashlight comes on and a green match appears in your hand as you exit
the work room." CR CR>
<COND (<EQUAL? ,P-WALK-DIR ,P?NORTH>
,CELLAR)
(<EQUAL? ,P-WALK-DIR ,P?SW>
,ATTIC)
(<EQUAL? ,P-WALK-DIR ,P?WEST>
,BOAT-DOCK)
(<EQUAL? ,P-WALK-DIR ,P?EAST>
,HEART-OF-MAZE)
(<EQUAL? ,P-WALK-DIR ,P?SOUTH>
,UPSTAIRS-HALL-MIDDLE)
(<EQUAL? ,P-WALK-DIR ,P?SE>
,BOMB-SHELTER)
(<EQUAL? ,P-WALK-DIR ,P?NE>
,CRAWL-SPACE-NORTH)
(<EQUAL? ,P-WALK-DIR ,P?NW>
,CANNON-EMPLACEMENT)>>