"PLACES for WITNESS
Copyright (C) 1983 Infocom, Inc. All rights reserved."
"Other possible generics: cabinet counter footprints hallway shelf"
"Directions"
<GLOBAL DIR-STRINGS
<ROUTINE DIR-PRINT (DIR "AUX" (CNT 0))
#DECL ((DIR CNT) FIX)
<REPEAT ()
<COND (T
<TELL "the ">)>
<RTRUE>)>
<SET CNT <+ .CNT 1>>>>
"The usual globals"
<OBJECT ROOMS>
<OBJECT GLOBAL-ROOM
(SYNONYM ROOM PLACE WALL WALLS)
(DESC "place" )
<ROUTINE GLOBAL-ROOM-F ("AUX" TIM VAL)
<COND (<VERB? KNOCK>
<TELL "Knocking on the walls reveals nothing unusual." CR>)
(<VERB? SEARCH EXAMINE>
<SET TIM 10>)
<SET TIM 3>)
<TELL
"(You'd do better to examine or search one thing at a time. Searching a
whole room or area thoroughly would take hours. A cursory search would take
about " N .TIM " minutes, and it might not reveal much. Would you like
to do it anyway?)">
<RTRUE>)
(.VAL
<TELL
"Your cursory search revealed nothing new." CR>)
(T
<TELL
"You didn't get a chance to finish looking over the place." CR>)>)
(T <TELL "Okeh." CR>)>)>>
<OBJECT WINDOW
(DESC "window")
(SYNONYM WINDOW PANE PANES FRAME)
<COND (<VERB? BRUSH>
<TELL
"The window is clean enough without your interference." CR>)
(<VERB? EXAMINE>
<TELL
"The window is a simple wooden sash, locked tight against the cold.">
<TELL
" There's some sort of electric relay on one edge, with white wires
attached.">)>
<CRLF>)
(<VERB? LOOK-INSIDE LOOK-OUTSIDE>
<COND (.RM
<TELL"The window is damp and foggy, but you can see">
<COND (<0? .POP> T)
(<1? .POP> <TELL " someone in">)
(T <TELL " some people in">)>
<TELL " " D .RM " "
"in")
(T "out")>
"side." CR>)
(T
<TELL "The window is too foggy to see through." CR>)>
<RTRUE>)
(<VERB? KNOCK>
<TELL "There's no answer." CR>)>)
(<VERB? MUNG>
<TELL "Vandalism is for private ">
(T <TELL "dick">)>
<TELL "s, not famous police detectives!" CR>)
(<VERB? OPEN CLOSE LOCK UNLOCK>
<TELL "It's really broken. ">)>
<TELL "You can't." CR>)>>
<ROUTINE GENERIC-WINDOW-F (OBJ)
(<VERB? ASK-ABOUT ASK-CONTEXT-ABOUT FIND TELL-ME WHAT>
(T
<TELL "(You can't see any " "window" " here!)" CR>
<ROUTINE WINDOW-KNOCK (RM)
<TELL "Someone looks up at you inquisitively." CR>)>>
<ROUTINE WINDOW-IN? (RM)
>
<OBJECT SINK
(DESC "sink")
(SYNONYM SINK BASIN FAUCET SPIGOT)
<OBJECT TOILET
(DESC "toilet")
(SYNONYM TOILET)
<ROUTINE TOILET-F ("OPTIONAL" (RARG 100))
<COND (<NOT <==? .RARG 100>> <RFALSE>)
(<VERB? EXAMINE LOOK-INSIDE>
<TELL
"You have stooped to a new low by snooping around toilet bowls." CR>)
>>
<OBJECT GENERIC-BATHROOM-DOOR
(DESC "bathroom door")
(SYNONYM $GNRC)>
<ROUTINE GENERIC-BATH-DOOR-F (OBJ)
(<VERB? ASK-ABOUT ASK-CONTEXT-ABOUT FIND TELL-ME WHAT>
(T
<TELL "(You can't see any " "bathroom door" " here!)" CR>
<OBJECT GENERIC-BEDROOM
(DESC "bedroom")
(SYNONYM $GNRC)>
<ROUTINE GENERIC-BEDROOM-F (OBJ)
(<VERB? ASK-ABOUT ASK-CONTEXT-ABOUT FIND TELL-ME WHAT>
(T
<TELL "(You can't see any " "bedroom" " here!)" CR>
<OBJECT GENERIC-BEDROOM-DOOR
(DESC "bedroom door")
(SYNONYM $GNRC)>
<ROUTINE GENERIC-BEDROOM-DOOR-F (OBJ)
(<VERB? ASK-ABOUT ASK-CONTEXT-ABOUT FIND TELL-ME WHAT>
(T
<TELL "(You can't see any " "bedroom door" " here!)" CR>
<OBJECT GENERIC-BACK-DOOR
(DESC "back door")
(SYNONYM $GNRC)>
<ROUTINE GENERIC-BACK-DOOR-F (OBJ)
<COND (<AND <VERB? SHOOT>
(<VERB? ASK-ABOUT ASK-CONTEXT-ABOUT FIND TELL-ME WHAT>
(T
<TELL "(You can't see any " "back door" " here!)" CR>
<OBJECT GENERIC-BATHROOM
(DESC "bathroom")
(SYNONYM $GNRC)>
<ROUTINE GENERIC-BATHROOM-F (OBJ)
(<VERB? ASK-ABOUT ASK-CONTEXT-ABOUT FIND TELL-ME WHAT>
(T
<TELL "(You can't see any " "bathroom" " here!)" CR>
<ROUTINE NULL-F ("OPTIONAL" A1 A2)
<RFALSE>>
<ROUTINE DDESC (STR1 DOOR STR2)
#DECL ((STR1) <OR STRING ZSTRING> (DOOR) OBJECT
(STR2) <OR FALSE STRING ZSTRING>)
<TELL .STR1>
<COND (<FSET? .DOOR ,OPENBIT> <TELL "open">)
(T <TELL "closed">)>
<TELL .STR2 CR>>
<ROUTINE DOOR-ROOM (RM DR "AUX" (P 0) TBL)
#DECL ((RM DR) OBJECT (P) FIX)
<REPEAT ()
<COND (<OR <0? <SET P <NEXTP .RM .P>>>
<L? .P ,LOW-DIRECTION>>
<RFALSE>)
(<AND <==? ,DEXIT <PTSIZE <SET TBL <GETPT .RM .P>>>>
<RETURN <GETB .TBL ,REXIT>>)>>>
<ROUTINE FIND-FLAG (RM FLAG "OPTIONAL" (EXCLUDED <>) "AUX" (O <FIRST? .RM>))
<REPEAT ()
<COND (<NOT .O> <RETURN <>>)
(<AND <FSET? .O .FLAG> <NOT <==? .O .EXCLUDED>>>
<RETURN .O>)
(T <SET O <NEXT? .O>>)>>>
<OBJECT GLOBAL-HERE
(DESC "here")
(SYNONYM HERE)
<ROUTINE GLOBAL-HERE-F ("AUX" (FLG <>) F HR)
<COND (<VERB? WHAT ASK-ABOUT>
<REPEAT ()
<COND (<NOT .F> <RETURN>)
<SET FLG T>
<GLOBAL-HERE-F>
<SET FLG T>
<SET F <NEXT? .F>>>
<COND (<NOT .FLG> <TELL "There's nobody else here." CR>)>
<RTRUE>)>>
<ROUTINE LOCKED-F (OBJ)
<COND (<VERB? EXAMINE LOOK-INSIDE SEARCH SEARCH-OBJECT-FOR THROUGH>
(T <RFALSE>)>)
(<AND <VERB? SHOOT>
<ROUTINE META-LOC (OBJ)
<REPEAT ()
<COND (<NOT <LOC .OBJ>>
<RFALSE>)>
<RETURN <LOC .OBJ>>)>
<RETURN .OBJ>)
(ELSE
<SET OBJ <LOC .OBJ>>)>>>
<ROUTINE OUTSIDE? (RM)
<ROUTINE PHONE-IN? (RM)
<ROUTINE WINDOW-ROOM (RM WINDOW "AUX" (P 0) L)
#DECL ((RM WINDOW) OBJECT (P L) FIX)
"Grounds of Linder House"
<ROUTINE GROUND-SURFACE ()
"gravel")
"peastone")
(T "dirt")>>
<ROOM FRONT-YARD
(DESC "front yard")
(LDESC
"You are in the front yard of the Linder property. Most of the space is
occupied by a kitchen garden full of vegetables and herbs. A wooden
fence surrounds the yard on the west and north sides. To the east is the
house, with a French door and two windows. To the south is a gate that
leads to the front porch.")
(WEST "A wooden fence blocks your way.")
(NORTH "A wooden fence blocks your way.")
(UP "You can't go that way.")
(DOWN "You can't go that way.")
(LINE 4)
(STATION FRONT-YARD)>
<OBJECT KITCHEN-GARDEN
(ADJECTIVE KITCHEN)
(SYNONYM GARDEN VEGETABLE HERB HERBS)
(DESC "kitchen garden")
<OBJECT FRONT-GATE
(ADJECTIVE FRONT )
(SYNONYM GATE)
(DESC "front gate")
>
Big chunks of this file are enclosed with square brackets. (Here to here, for example.) Why?
The brackets don’t seem to affect compilation at all. Our best guess is that they were a text editor convenience, allowing the developer to jump across groups of related rooms to the matching bracket.
It’s also possible that the developer wanted to comment out groups of rooms. In ZIL, a semicolon in front of a pair of delimiters would have commented out everything between them.
[
<ROOM FRONT-PORCH
(DESC "front porch")
(WEST "A wooden fence blocks your way.")
(LINE 4)
(STATION FRONT-PORCH)
(CORRIDOR 4)>
<ROUTINE FRONT-PORCH-F ("OPTIONAL" (RARG <>))
"The front porch is in an alcove, sheltered from the weather by the
walls and overhanging roof. A yellowish electric light hangs near
the " ,FRONT-DOOR " front door to the east, giving you a
dim view of the
driveway to the south and the front yard behind a gate to the north.">
". A door bell glows at you, almost daring you to ring it.">
<OBJECT DOORBELL
(DESC "door bell")
(ADJECTIVE DOOR)
(SYNONYM BELL DOORBELL)
<ROUTINE DOORBELL-F ()
<COND (<VERB? PUSH RING>
<TELL "The door bell rings, loud and clear." CR>)>
<RTRUE>)>>
]
<ROOM DRIVEWAY
(DESC "driveway")
(LDESC
"The driveway, paved with peastone, runs from the entrance at the south
end in a curve to a two-car garage at the east end. North of you is the
front porch, the entrance to the house.")
(WEST "A wooden fence blocks your way.")
(LINE 4)
(STATION DRIVEWAY)
(CORRIDOR 12)>
<OBJECT DRIVEWAY-OBJECT
(DESC "driveway")
(LDESC
"The driveway, paved with peastone, runs from the entrance at the south
end in a curve to a two-car garage at the east end.")
(ADJECTIVE DRIVE)
(SYNONYM DRIVEWAY WAY)
<ROUTINE DRIVEWAY-F ("OPTIONAL" (ARG <>))
(T <TELL "It's not clear which direction you mean." CR>)>)>>
<ROOM DRIVEWAY-ENTRANCE
(DESC "driveway entrance")
(FDESC
"You are standing at the foot of the driveway, the entrance to the
Linder property. The entire lot is screened from the street and the
neighbors by a wooden fence, except on the east
side, which fronts on dense bamboo woods. The house looks like a mixture of
a California bungalow and East Asian influences. From here you can
see the driveway leading north and, beyond that, the front door.")
(LDESC
"This is the entrance to the driveway from the street, which lies to the
south. To the north is the driveway, and to the east is the side yard.")
(WEST "A wooden fence blocks your way.")
(SOUTH
"You can't leave the property yet. It would mean your job.")
(LINE 4)
(STATION DRIVEWAY-ENTRANCE)
(CORRIDOR 6)>
<ROOM LIMBO
(DESC "limbo")
(LINE 4)
[
<ROOM SIDE-YARD
(DESC "side yard")
(NORTH "You can't enter the house from here.")
(SOUTH "A wooden fence blocks your way.")
(LINE 4)
(STATION SIDE-YARD)
(CORRIDOR 2)>
<ROUTINE SIDE-YARD-F ("OPTIONAL" (RARG <>))
<TELL
"This is a little-used side yard, hidden from the street by the fence.
The back yard lies to the east and the driveway to the west." CR>)
<VERB? WALK FOLLOW>>
<RFALSE>)>>
<OBJECT SIDE-FOOTPRINTS
(DESC "set of footprints")
(ADJECTIVE FOOT)
(SYNONYM FOOTPRINTS PRINTS SET)
<GLOBAL SIDE-FOOTPRINTS-CONFUSED <>>
<ROUTINE SIDE-FOOTPRINTS-F ("OPTIONAL" (ARG <>))
<TELL
"Fresh foot prints go here and there in the yard." CR>)
(T
<TELL
"You notice fresh foot prints going here and there in the yard."
CR>)>)
(T
<TELL
"A fresh row of foot prints goes from the back yard to the driveway." CR>)
(T
<TELL
"You notice a fresh row of foot prints going from the back yard to the
driveway." CR>)>)>)
<TELL "There are too many foot prints here now." CR>)
(<VERB? EXAMINE>
<TELL
"The prints are lined up in an even row, as if made by a careful walker." CR>)
(<VERB? ANALYZE>
<TELL "You already did that!" CR>)
<RTRUE>)
(<VERB? FOLLOW>
<RTRUE>)
(<AND <VERB? MAKE>
<RTRUE>)>>
<OBJECT SIDE-FOOTPRINTS-CAST
(DESC "side-yard cast")
(ADJECTIVE SIDE-YARD SIDE)
(SYNONYM CAST)
(SIZE 9)
<ROUTINE SIDE-FOOTPRINTS-CAST-F ()
<COND (<AND <VERB? COMPARE>
<TELL "The two sets of foot prints don't seem to match up." CR>)>>
<ROUTINE ANAFOOT ()
<TELL
"Sgt. Duffy appears with his kit for casting with plaster of Paris.
He quickly makes a cast of the foot prints and hands it to you,
saying \"I hope you find this as useful as it is heavy.\"" CR>>
][
<ROOM OFFICE-PATH
(DESC "office path")
(LDESC
"You are on a path made of stepping stones, which leads from the back
gate at the south to Linder's office at the north. In the east you
can see a thick woods. To the west is the side yard.")
(EAST "You would probably get lost in the woods.")
(SOUTH
"You can't leave the property yet. It would mean your job.")
(LINE 4)
(STATION OFFICE-PATH)
(CORRIDOR 3)>
<OBJECT WOODS
(DESC "bamboo woods")
(ADJECTIVE DENSE THICK DARK BAMBOO)
(SYNONYM WOODS FOREST THICKET)
(TEXT
"Bamboo, thick and tall, screens the entire lot on the east side.")
>
<OBJECT BACK-GATE
(ADJECTIVE BACK OFFICE)
(SYNONYM GATE)
(DESC "back gate")
>
][
<ROOM OFFICE-PORCH
(DESC "office porch")
(EAST "You would probably get lost in the woods.")
(LINE 4)
(STATION OFFICE-PORCH)
(CORRIDOR 1)>
<ROUTINE OFFICE-PORCH-F ("OPTIONAL" (RARG <>))
<TELL
"You are standing on a small concrete slab outside Linder's office. A sign
between the door and the window reads \"PACIFIC TRADE ASSOCIATES\". To the
north is a tidy lawn, extending east to the edge of the woods. A path of
stepping stones leads south to the back gate." CR>)
<OBJECT BACK-FOOTPRINTS
(DESC "set of footprints")
(ADJECTIVE FOOT)
(SYNONYM FOOTPRINTS PRINTS SET)
(FDESC "You notice some fresh foot prints heading east.")
(LDESC "Fresh foot prints head east.")
"<GLOBAL BACK-FOOTPRINTS-CONFUSED <>>"
<ROUTINE BACK-FOOTPRINTS-F ()
<COND
(<VERB? EXAMINE>
<TELL
"The prints are uneven and widely spaced, as if made by someone running." CR>)
(<VERB? ANALYZE>
<TELL "You already did that!" CR>)
<RTRUE>)
(<VERB? FOLLOW>
<TELL "You would probably get lost in the woods."
" Even with a path to follow." CR>)
(<AND <VERB? MAKE>
<RTRUE>)>>
<ROUTINE GENERIC-FOOTPRINTS-F (OBJ)
(T
<TELL "(You can't see any " "foot prints" " here!)" CR>
<OBJECT BACK-FOOTPRINTS-CAST
(DESC "back-yard cast")
(ADJECTIVE BACK-YARD BACK)
(SYNONYM CAST)
(SIZE 9)
>
<ROUTINE GENERIC-CAST-F (OBJ)
<COND (<VERB? ASK-ABOUT ASK-CONTEXT-ABOUT FIND TELL-ME WHAT>
<OBJECT GENERIC-CAST
(DESC "cast")
(SYNONYM $GNRC)>
]
<OBJECT OFFICE-WINDOW
(DESC "office window")
(ADJECTIVE OFFICE)
(SYNONYM WINDOW PANE PANES FRAME)
<COND
(<VERB? EXAMINE>
<TELL
"All the panes of the window are cracked, and many are in pieces on the ">
<COND
(T <TELL "floor.">)>
<TELL
" A chunk of putty dangles like a wax bean.">)>
<TELL
" Along one edge of the window you can see the end of a piece of green wire."
>)>)>
<CRLF>)
You originally had to examine the window CAREFULLY to discover the green wire, but this requirement has been commented out.
(<AND
<TELL
"There's also a piece of green wire running from the frame to the putty."
CR>)>
<RTRUE>)
(<AND <VERB? LOOK-INSIDE LOOK-OUTSIDE>
<TELL "Through the broken window you can see">
<TELL " " D .RM " "
(T "out")>
"side." CR>
<RTRUE>)
<TELL "You would probably cut yourself on the broken glass." CR>)
<ROUTINE GO-AWAY ()
<COND (<AND <VERB? KNOCK>
<TELL
"Someone peeks through the window at you, then disappears and"
" shouts \"Go away!\"" CR>)>>
<OBJECT PIECE-OF-WIRE
(DESC "green wire piece")
(ADJECTIVE GREEN WIRE)
(SYNONYM WIRE PIECE)
(SIZE 1)
<ROUTINE PIECE-OF-WIRE-F ()
<TELL "The wire goes into the window frame and disappears." CR>)
<TELL "You can't." " It's stuck tight." CR>)>>
<OBJECT PIECE-OF-PUTTY
(DESC "chunk of putty")
(SYNONYM CHUNK PUTTY)
(SIZE 1)
<ROUTINE PIECE-OF-PUTTY-F ()
<TELL "You can't." " It's stuck tight." CR>)>>
<OBJECT OFFICE-BACK-DOOR
(ADJECTIVE BACK OUTSIDE)
(SYNONYM DOOR LOCK)
(DESC "back door")
<ROUTINE OFFICE-BACK-DOOR-F ()
(<AND <VERB? GIVE SGIVE>
<RTRUE>)
(T <TELL "It's too late to give Linder anything." CR>)>)>>
<ROOM BACK-YARD
(DESC "back yard")
(LDESC
"You are on a neatly manicured lawn, east of Monica's bedroom. The lawn
extends east to the edge of the woods. From here you can go to a rock
garden in the north or the entrance to Linder's office in the south.
There's a door into the house, and a window.")
(EAST "You would probably get lost in the woods.")
(LINE 4)
(STATION BACK-YARD)
(CORRIDOR 1)>
<OBJECT LAWN
(DESC "lawn")
(SYNONYM LAWN GRASS)
(ADJECTIVE GREEN)
<ROUTINE LAWN-F ()
<COND (<VERB? EXAMINE>
<TELL "The lawn is well manicured." CR>)>>
<OBJECT MONICA-BACK-DOOR
(ADJECTIVE BACK OUTSIDE)
(SYNONYM DOOR LOCK)
(DESC "back door")
>
<ROOM ROCK-GARDEN
(DESC "rock garden")
(LDESC
"This is a rock garden in the Japanese style, east of Linder's bedroom.
A few smooth round boulders lie partly buried in a bed of gravel,
which is carefully raked to be reminiscent of flowing water.
A sequence of smaller rocks forms a zig-zag path from the bedroom door to
the south edge of the garden, where the lawn begins.
There's a door into the house, and a couple of windows.")
(NORTH "A wooden fence blocks your way.")
(EAST "You would probably get lost in the woods.")
(LINE 4)
(STATION ROCK-GARDEN)
(CORRIDOR 1)>
<OBJECT ROCKS
(DESC "rocks")
(ADJECTIVE SMOOTH ROUND)
(SYNONYM ROCKS ROCK BOULDER)
(CAPACITY 150)
>
"? <OBJECT BENCH ...>"
<OBJECT LINDER-BACK-DOOR
(SYNONYM DOOR LOCK)
(ADJECTIVE BACK OUTSIDE)
(DESC "back door")
>
"Inside the house"
The )> characters on this line are unbalanced; they do not match any earlier syntax.
Any modern language would scream bloody murder about this kind of mistake, but apparently Infocom’s ZIL compiler silently ignored it. So did the MDL compiler that it was based on. See discussion.
(The [ character is not a mistake; it’s paired with a ] character here. See the note about brackets.)
)>[
<ROOM MONICA-ROOM
(DESC "Monica's bedroom")
(LINE 3)
(STATION MONICA-ROOM)>
<ROUTINE MONICA-ROOM-F ("OPTIONAL" (RARG <>))
<TELL
"On one side is a modern-style bed, with piles of well-thumbed detective
stories stacked on the table beside it. Opposite the bed is a long
dressing table that seems to serve also as desk and workbench. In the
corner sits a small table for a portable phonograph and records, and a
book case with more books and pulps. Movie posters cover the walls. A
handsome door with cedar veneer leads north, and a door and window face
outside." CR>)>>
<OBJECT MONICA-TABLE
(ADJECTIVE DRESSING WORK)
(SYNONYM TABLE DESK BENCH)
(DESC "dressing table")
(CAPACITY 50)
<ROUTINE MONICA-TABLE-F ()
<COND (<VERB? EXAMINE LOOK-INSIDE LOOK-ON SEARCH>
<TELL
"Among make-up, letters, and tools, you find a medical report." CR>)
(T <TELL
"This table is pretty messy. Anyone but Monica would have a tough time
finding anything on it." CR>)>)>>
<OBJECT MONICA-TABLE-STUFF
(SYNONYM MAKE-UP STUFF LETTER TOOLS)
(DESC "stuff on the table")
<OBJECT MOVIE-POSTERS
(DESC "bunch of movie posters")
(ADJECTIVE MOVIE)
(SYNONYM POSTER)
(TEXT "These are posters for many of Clark Gable's movies.")
<OBJECT BOOK-CASE
(ADJECTIVE BOOK)
(SYNONYM BOOKCASE CASE BOOK BOOKS)
(DESC "book case")
(TEXT "Good idea! But one important book isn't in the book case.")>
<GLOBAL TUNE-ON <>>
<ROUTINE CAN-HEAR-RECORD? ()
<RTRUE>)>>
<OBJECT RECORDS
(DESC "record collection")
(SYNONYM RECORD MUSIC)
<ROUTINE RECORDS-F ("AUX" TUNE)
<COND (<VERB? PLAY LISTEN>
<TELL
"You pick a record at random and start it playing. It's \"">
<REPEAT ()
(T <RETURN>)>>
(<VERB? EXAMINE>
<TELL
"It's a large and varied record collection. Monica's not very
choosy about her music." CR>)>>
<ROUTINE I-TUNE-OFF ("AUX" TBL)
<TELL
"The record is over, and not too soon." CR>
<TELL
"Monica walks over to the phonograph and puts the record away. Then she
chooses another one and starts it up. It's \"">
<ENABLE <QUEUE I-TUNE-OFF 4>>)>
<RTRUE>)
<ENABLE <QUEUE I-TUNE-OFF 4>>
<RFALSE>)>>
<GLOBAL SONG-TABLE
<PLTABLE "Alexander's Ragtime Band"
"I'm an Old Cowhand"
"Mexicali Rose"
"Pennies from Heaven"
"Sweet Leilani"
"When I Grow Too Old to Dream">>
]
<OBJECT MONICA-DOOR
(SYNONYM DOOR)
(ADJECTIVE BEDROOM)
(DESC "bedroom door")
>
<OBJECT MONICA-BATH-DOOR
(ADJECTIVE CEDAR BATH BATHROOM)
(SYNONYM DOOR)
(DESC "cedar door")
>
[
<ROOM BATHROOM
(DESC "bathroom")
(LDESC
"This room has only a large cabinet with counter, sink and mirror.
On the counter are a shaver, toothpaste, and so on.
The tub and toilet must be in separate rooms.
There are doors on all four walls: the one to the north looks like redwood,
the one to the south like cedar, and the other two like ordinary doors.")
(LINE 3)
(STATION BATHROOM)>
<OBJECT MASTER-BATH-COUNTER
(DESC "counter")
(ADJECTIVE LONG BATH BATHROOM)
(SYNONYM COUNTER PULLMAN)
(CAPACITY 50)
<ROUTINE MASTER-BATH-COUNTER-F ()
<COND (<VERB? EXAMINE LOOK-INSIDE>
<TELL "On the counter are a shaver, tooth paste, and so on." CR>)>>
<OBJECT TUB-DOOR
(SYNONYM DOOR)
(ADJECTIVE TUB BATHTUB BATH)
(DESC "tub door")
>
][
<ROOM TUB-ROOM
(DESC "tub room")
(LDESC
"This is a separate room, completely lined with tile, for bathing in the
Japanese style. On one side is a shower head and drain, where you could
wash away surface dirt. On the other side is a deep tub, to be filled
with steaming water up to your neck. Potted plants give the room a
tropical air. A window looks over the rock garden outside, and a door
leads west.")
(LINE 3)
<OBJECT BATH-WINDOW
(DESC "bath window")
(ADJECTIVE BATH)
(SYNONYM WINDOW PANE PANES FRAME)
<OBJECT POTTED-PLANTS
(DESC "potted plants")
(SYNONYM PLANT PLANTS)
(ADJECTIVE POTTED)
For efficiency, the game defines a single bathtub which is shared between the TUB-ROOM and the BUTLER-BATH. If you put an object in the tub, you can EXAMINE TUB in either location and see it.
(But you can’t do anything with it. The parser doesn’t recognize the contents of a floating container. So much for the magical teleporting tub portal.)
(contrib: Torbjörn Andersson)
<OBJECT BATHTUB
(DESC "bathtub")
(SYNONYM TUB BATHTUB)
(ADJECTIVE BATH)
(CAPACITY 50)>
<OBJECT SHOWER
(ADJECTIVE SHOWER)
(SYNONYM SHOWER HEAD)
(DESC "shower")
<ROUTINE SHOWER-F ()
<COND (<AND <==? 1 <GET ,P-PRSO 0>>
<VERB? TAKE THROUGH>>
<TELL
"Anyone can see that you really need a shower. In fact, this is
one of your better ideas so far on this case. But your clothes would get
awful wet, and you must have better things to do." CR>)>>
]
<OBJECT TOILET-DOOR
(SYNONYM DOOR)
(ADJECTIVE TOILET)
(DESC "toilet door")
>
<ROOM TOILET-ROOM
(DESC "toilet room")
(ADJECTIVE TOILET)
(SYNONYM ROOM)
(LDESC
"This is a separate room for a toilet only."
)
(LINE 3)
<OBJECT LINDER-BATH-DOOR
(ADJECTIVE REDWOOD BATH BATHROOM)
(SYNONYM DOOR)
(DESC "redwood door")
>
[
<ROOM LINDER-ROOM
(DESC "Linder's bedroom")
(ADJECTIVE MASTER LINDER BED HIS)
(SYNONYM BEDROOM ROOM)
(LINE 1)
(STATION LINDER-ROOM)>
<ROUTINE LINDER-ROOM-F ("OPTIONAL" (ARG <>))
<TELL
"The bedroom is elegant but not tidy. A four-poster bed, chair and
dresser, made of teak and mahogany, look hand-crafted. There are doors
on the west and south walls, and a door and window to the east look
outside. Clothes and newspapers are scattered about. It seems that
Linder misse"
" the woman's touch." CR>)>>
<OBJECT LINDER-WINDOW
(DESC "Linder's window")
(ADJECTIVE LINDER HIS)
(SYNONYM WINDOW PANE PANES FRAME)
<OBJECT LINDER-ROOM-STUFF
(SYNONYM CLOTHES NEWSPAPERS PAPERS STUFF)
(DESC "stuff in the room")
<OBJECT FOUR-POSTER
(DESC "four-poster bed")
(ADJECTIVE FOUR FOUR-POSTER)
(SYNONYM BED POSTER FOUR-POSTER)
(CAPACITY 30)
>
<OBJECT MASTER-BEDROOM-DRESSER
(DESC "dresser")
(SYNONYM DRESSER)
(CAPACITY 30)
<ROUTINE MASTER-BEDROOM-DRESSER-F ()
<COND (<VERB? EXAMINE>
<TELL
"The dresser is a beautiful piece of cabinetry." CR>)
(<VERB? LOOK-INSIDE SEARCH OPEN>
<TELL
"You open all the drawers and find only shirts, socks, underwear, hankies,
and so on. What a disappointment." CR>)>>
]
<OBJECT LINDER-DOOR
(SYNONYM DOOR)
(ADJECTIVE BEDROOM)
(DESC "bedroom door")
>
[
<ROOM LIVING-ROOM
(DESC "living room")
(ADJECTIVE LIVING)
(SYNONYM ROOM PARLOR PARLOUR)
(LINE 1)
(STATION LIVING-ROOM)
>
<ROUTINE LIVING-ROOM-F ("OPTIONAL" (RARG <>))
<COND
<TELL
"A huge fieldstone fireplace on the south wall holds a blazing fire,
filling the living room with warmth and light. Grouped in front of the
fire are a glass-topped coffee table and a rattan davenport and club
chair, with cushions covered in a print showing bamboo plants in the
style of Japanese brush-painting. A lamp with a printed shade and a
telephone sit on the table." CR>
<TELL
"On the north wall are a liquor cabinet and a console radio made of
light-colored wood. ">
<COND (,RADIO-ON <TELL "The radio is playing. ">)>
and at the west end of the room is a double door.">)>>
<OBJECT FIREPLACE
(DESC "fieldstone fireplace")
(ADJECTIVE FIELDS STONE )
(SYNONYM FIREPLACE )
<OBJECT FIRE
(DESC "fire")
(SYNONYM FIRE)
<OBJECT WOOD-PILE
(DESC "wood pile")
(ADJECTIVE WOOD)
(SYNONYM PILE)
<OBJECT SOFA
(DESC "davenport")
(SYNONYM COUCH SOFA DAVENPORT DIVAN)
(CAPACITY 30)
<OBJECT CLUB-CHAIR
(DESC "club chair")
(ADJECTIVE CLUB)
(SYNONYM CHAIR)
(CAPACITY 20)
<OBJECT COFFEE-TABLE
(DESC "coffee table")
(ADJECTIVE COFFEE)
(SYNONYM TABLE)
(CAPACITY 50)>
<OBJECT RADIO
(DESC "radio")
(ADJECTIVE CONSOLE)
(SYNONYM RADIO VOLUME MUSIC PROGRAM )
(TEXT
"It's a Stromberg-Carlson triple-range console. The exit in the bottom
is evidence of the Acoustical Labyrinth inside.")
<GLOBAL RADIO-ON T>
<ROUTINE CAN-HEAR-RADIO? ()
<RTRUE>)>>
<GLOBAL RADIO-TABLE
<PLTABLE "an Amos 'n' Andy serial"
"a Lum & Abner serial"
"the Paul Whiteman orchestra"
"the Paul Whiteman orchestra"
"Nick Harris's \"Camera Clue Murder\""
"the March of Progress"
"Kay Kyser's orchestra"
"Kay Kyser's orchestra"
"the L.A. Times news program"
"Ozzie Nelson's orchestra"
"the Montoya Orchestra"
"Phil Harris's orchestra"
"the Duchin orchestra"
"a balalaika orchestra"
"Ozzie Nelson's orchestra"
"Ozzie Nelson's orchestra"
"\"Rhapsody in Wax\""
"\"Rhapsody in Wax\""
"\"Rhapsody in Wax\""
"\"Rhapsody in Wax\""
"a revival meeting with Oral Roberts"
"a revival meeting with Oral Roberts"
"a revival meeting with Oral Roberts"
"a revival meeting with Oral Roberts"
"the Philadelphia Orchestra, conducted by Leopold Stokowski"
"the Philadelphia Orchestra, conducted by Leopold Stokowski"
"the Philadelphia Orchestra, conducted by Leopold Stokowski"
"the Philadelphia Orchestra, conducted by Leopold Stokowski"
"Lowell Thomas, Radio Commentator"
"Lowell Thomas, Radio Commentator"
"a program of classical music"
"a program of classical music"
"a revival meeting with Aimee Semple McPherson"
"a revival meeting with Aimee Semple McPherson"
"a revival meeting with Aimee Semple McPherson"
"a revival meeting with Aimee Semple McPherson"
"a program of classical music"
"a program of classical music"
"a program of classical music"
"a program of classical music"
"Boake Carter, Philco News Commentator"
"Boake Carter, Philco News Commentator"
"a program of classical music"
"a program of classical music"
"\"Rise and Shine\""
"\"Rise and Shine\""
"\"Rise and Shine\""
"\"Rise and Shine\""
"\"Between You, Me, and the Fence Post\"">>
<ROUTINE RADIO-F ("OPTIONAL" (ARG <>) "AUX" PGM)
<TELL "You can hardly avoid it. ">
<COND (<==? .PGM ,RADIO-ON> <TELL "It's ">)
(T <TELL "You" " spin the dial and find ">)>
(<VERB? LAMP-ON PLAY LISTEN>
<COND (,RADIO-ON <TELL "It's already on. You">)
(T <TELL "You turn on the radio,">)>
<TELL " spin the dial and find " ,RADIO-ON "." CR>)
(<VERB? LAMP-OFF>
<TELL
"Monica looks at you with disgust as you turn off the radio." CR>)
(T <TELL "The radio is now off." CR>)>
<RTRUE>)
(<VERB? TURN-UP>
<TELL
"The radio is already pretty loud. Any louder would probably
make the neighbors complain." CR>)
(T <TELL "It's not on!" CR>)>)
(<VERB? TURN-DOWN>
<TELL
"Monica stops you from turning down the volume. She seems strangely
interested in the radio program." CR>)
(T <TELL "You can't." CR>)>)
(T <TELL "It's not on!" CR>)>)>>
<OBJECT LIQUOR-CABINET
(DESC "liquor cabinet")
(ADJECTIVE LIQUOR)
(SYNONYM CABINET)
(CAPACITY 20)>
]
<OBJECT LIVING-DINING-DOOR
(ADJECTIVE DOUBLE)
(SYNONYM DOOR)
(DESC "double door")
>
[
<ROOM DINING-ROOM
(DESC "dining room")
(LDESC
"A table and benches, built out of blond wood for six people, sit in the
middle of the room. On the south wall is a swinging door that leads to
the kitchen, and on the east wall a double door to the living room.
Through a French door on the west wall you can see the front yard.")
(ADJECTIVE DINING)
(SYNONYM ROOM)
(LINE 1)
>
<OBJECT DINING-ROOM-TABLE
(DESC "dining table")
(ADJECTIVE LONG DINING)
(SYNONYM TABLE)
(CAPACITY 50)>
<OBJECT DINING-ROOM-BENCH
(DESC "dining bench")
(ADJECTIVE DINING)
(SYNONYM BENCH BENCHES)
(CAPACITY 50)>
<OBJECT DINING-DOOR
(ADJECTIVE DINING ROOM FRENCH)
(SYNONYM DOOR LOCK)
(DESC "French door")
>
]
<OBJECT KITCHEN-DINING-DOOR
(ADJECTIVE SWINGING)
(SYNONYM DOOR)
(DESC "swinging door")
>
[
<ROOM KITCHEN
(DESC "kitchen")
(LDESC
"The Linder kitchen is full of electric appliances: range and hood,
refrigerator, mixer, toaster, clock, and so on. Several white steel
cabinets make for plenty of storage space. To the north is the dining
room, to the east the hall.")
(SYNONYM KITCHEN)
(LINE 1)
<OBJECT KITCHEN-WINDOW
(DESC "kitchen window")
(ADJECTIVE KITCHEN)
(SYNONYM WINDOW PANE PANES FRAME)
[
<OBJECT K-CABINETS
(DESC "cabinet")
(SYNONYM CABINET)
(CAPACITY 50)
>
<OBJECT SILVERWARE
(DESC "set of silverware")
(SYNONYM SILVER SET)
<ROUTINE SILVERWARE-F ()
<COND
(<VERB? TAKE>
<TELL
"You could probably hock this stuff for a bundle, but you'd never get
away with it, since the butler will no doubt count it again when
you leave." CR>)>>
<OBJECT GLASSES
(DESC "glass collection")
(SYNONYM GLASS GLASSES)
<OBJECT CHINA
(SYNONYM CHINA SET)
(DESC "set of china")
][
<OBJECT K-CUPBOARD
(DESC "cupboard")
(SYNONYM CUPBOARD)
(CAPACITY 50)
>
<OBJECT FOODS
(DESC "bunch of canned food")
(ADJECTIVE CANNED )
(SYNONYM FOOD FOODS BUNCH)
<ROUTINE FOODS-F ()
<COND (<VERB? EAT TAKE>
<TELL
"Your parents must have taught you better manners than that." CR>)>>
]
<OBJECT K-CLOCK
(ADJECTIVE KITCHEN)
(SYNONYM CLOCK)
(DESC "kitchen clock")
<ROUTINE K-CLOCK-F ()
<COND (<VERB? EXAMINE>
<TELL "The time on the kitchen clock is ">
<CRLF>)
(<VERB? LISTEN>
<TELL "The clock is humming electrically." CR>)>>
[
<OBJECT REFRIGERATOR
(DESC "refrigerator")
(ADJECTIVE ELECTRIC)
(SYNONYM APPLIANCE REFRIGERATOR FRIDGE )
(CAPACITY 22)
<OBJECT COLD-FOODS
(DESC "bunch of cold food")
(ADJECTIVE COLD)
(SYNONYM FOOD FOODS BUNCH)
]
<OBJECT RANGE
(DESC "range")
(ADJECTIVE ELECTRIC)
(SYNONYM RANGE)
<OBJECT HOOD
(DESC "range hood")
(ADJECTIVE ELECTRIC RANGE)
(SYNONYM HOOD)
<OBJECT MIXER
(DESC "mixer")
(ADJECTIVE ELECTRIC)
(SYNONYM MIXER)
<OBJECT TOASTER
(DESC "toaster")
(ADJECTIVE ELECTRIC)
(SYNONYM TOASTER)
<ROUTINE APPLIANCE-F ()
<COND (<VERB? EXAMINE>
<TELL
"It's as modern as yesterday, like everything in the kitchen." CR>)
(<VERB? LAMP-OFF LAMP-ON USE>
<TELL
"The butler is probably very proud and jealous of these sparkling
modern gadgets, and he wouldn't like you using them." CR>)>>
]
<OBJECT KITCHEN-HALL-DOOR
(ADJECTIVE KITCHEN )
(SYNONYM DOOR)
(DESC "kitchen door")
>
<ROOM HALL-1
(DESC "hallway")
(LINE 1)
(STATION HALL-1)
(CORRIDOR 16)>
<ROUTINE HALL-1-F ("OPTIONAL" RARG)
<COND (<EQUAL? .RARG ,M-LOOK >
<TELL
"This is the north end of the central hallway.
Just to the north, you can see warm yellow light in the living room.">
<TELL " You can hear voices talking excitedly.">)>
<CRLF>)>>
<ROOM HALL-2
(DESC "hallway")
(LINE 1)
(STATION HALL-2)
(CORRIDOR 16)>
<ROUTINE HALL-2-F ("OPTIONAL" (RARG <>))
<TELL
"This is near the middle of the central hallway.
At the north end, you can see the living room; to the east and west are
bedroom doors. ">
<TELL "Both doors are open." CR>)
(T <TELL "The door to the east is open." CR>)>)
<TELL "The door to the west is open." CR>)
(T <TELL "Both doors are closed." CR>)>)>>
<OBJECT BUTLER-DOOR
(SYNONYM DOOR)
(ADJECTIVE BUTLER HIS)
(DESC "butler's door")
>
[
<ROOM BUTLER-ROOM
(DESC "butler's room")
(ADJECTIVE BUTLER HIS BED SERVANT)
(SYNONYM BEDROOM ROOM)
(LINE 1)
<ROUTINE BUTLER-ROOM-F ("OPTIONAL" (RARG <>))
"This is the bedroom of the butler, Mr. Phong, and is very simply
furnished. A single bed, flanked by bare wooden end tables, sits below a
closed window on the west end of the room. The floor is hardwood, with no
rug. The only exit is a door to the east, which is " ,BUTLER-DOOR ".">
<OBJECT BUTLER-TABLE
(ADJECTIVE BARE WOOD WOODEN END)
(SYNONYM TABLE TABLES)
(DESC "end table")
(CAPACITY 15)>
<OBJECT BUTLER-BATH-DOOR
(ADJECTIVE BATH BATHROOM)
(SYNONYM DOOR)
(DESC "bathroom door")
>
<OBJECT BUTLER-WINDOW
(DESC "bedroom window")
(SYNONYM WINDOW PANE PANES FRAME)
(ADJECTIVE BUTLER HIS BEDROOM BED ROOM)
][
<ROOM BUTLER-BATH
(DESC "butler's bathroom")
(ADJECTIVE BUTLER HIS BATH SERVANT)
(SYNONYM ROOM BATHROOM)
<ROUTINE BUTLER-BATH-F ("OPTIONAL" (RARG <>))
<COND (<OR <==? .RARG ,M-LOOK>
<AND <NOT .RARG> <VERB? EXAMINE>>>
"This is Mr. Phong's bathroom, with the usual plumbing and not much
]
<ROOM HALL-3
(DESC "hallway")
(LDESC
"This hallway seems to run the length of the house, from the garage
at the south end to the living room at the north. There is enough warm yellow
light flooding from the living room for you to see a few doors on each side
of the hall.")
(LINE 1)
(STATION HALL-3)
(CORRIDOR 16)>
[
<ROOM ENTRY
(DESC "entry")
(SYNONYM ENTRY FOYER)
(LINE 1)
(STATION ENTRY)>
<ROUTINE ENTRY-F ("OPTIONAL" (RARG <>))
<COND
"Here in the entry is a small Shinto shrine, with a hanging scroll and
an arrangement of flowers, as well as a coat closet and a platform for
storing shoes. You can see a hallway to the east. The front door, on the
<OBJECT FLOWER-ARRANGEMENT
(DESC "flower arrangement")
(ADJECTIVE FLOWER)
(SYNONYM ARRANGEMENT)
<ROUTINE FLOWER-F ()
<COND (<VERB? PICK>
<TELL "What? And spoil the arrangement?!" CR>)
(<VERB? SMELL>
<TELL
"Someone chose these flowers for looks, not aroma." CR>)>>
<OBJECT SCROLL
(DESC "scroll")
(LDESC "A lovely calligraphed scroll hangs on the wall.")
(ADJECTIVE LOVELY CALLIGRAPHED)
(SYNONYM SCROLL SHRINE)
<ROUTINE SCROLL-F ()
<COND (<VERB? EXAMINE READ>
<TELL
"The scroll is written with a fine brush. Freely translated, it reads:|
|
">
<PUT 0 8 <BOR <GET 0 8> 2>>
<TELL
"The WITNESS: An INTERLOGIC Mystery|
from Infocom, Inc.|
by Stu Galley|
based on an idea by|
Marc Blank and Dave Lebling|
Copyright (c) 1983 Infocom, Inc.|
All rights reserved.|
WITNESS and INTERLOGIC|
are trademarks of Infocom, Inc.|
" CR>
<PUT 0 8 <BAND <GET 0 8> -3>>
<RTRUE>)>>
<OBJECT SHOE-PLATFORM
(DESC "shoe platform")
(ADJECTIVE SHOE)
(SYNONYM PLATFORM)
(CAPACITY 10)
<ROUTINE SHOE-PLATFORM-F ()
<COND (<VERB? EXAMINE LOOK-INSIDE SEARCH>
<TELL
"Several pairs of shoes are in a row, ready for inspection.">
<TELL " One pair of boots would not pass.">)>
<CRLF>)>>
<OBJECT OTHER-SHOES
(DESC "other shoes")
(ADJECTIVE OTHER)
(SYNONYM SHOE SHOES )
<ROUTINE OTHER-SHOES-F ()
<COND (<VERB? EXAMINE>
<TELL
"They're just ordinary shoes, nothing to get excited about." CR>)
(<VERB? TAKE>
<TELL "That wouldn't do you any good." CR>)>>
]
<OBJECT FRONT-DOOR
(ADJECTIVE FRONT )
(SYNONYM DOOR LOCK)
(DESC "front door")
<ROUTINE FRONT-DOOR-F ("AUX" (VAL <>))
<COND (<VERB? KNOCK>
(T <TELL "You can't reach the front door."CR>)>)
<TELL "A muffled voice says, \"Come in!\"" CR>)
(T
<TELL "There is no answer at the door." CR>)>)
(<VERB? WALK-TO>
.VAL)>>
[
<ROOM STORAGE-CLOSET
(DESC "storage closet")
(LDESC
"This is a little-used storage closet containing odds and ends of no interest
whatsoever. The exit is to the east.")
(ADJECTIVE STORAGE)
(SYNONYM CLOSET)
(SIZE 1)
(LINE 2)
<OBJECT STORAGE-DOOR
(SYNONYM DOOR)
(ADJECTIVE STORAGE CLOSET)
(DESC "storage door")
>
<OBJECT LINENS
(DESC "linens")
(SYNONYM LINENS SHEETS LINEN)
<OBJECT TOWELS
(DESC "towel")
(SYNONYM TOWEL TOWELS)
<ROUTINE CLOSET-STUFF-F ()
<COND (<VERB? TAKE MOVE USE>
<TELL "You have no need for them." CR>)
(<VERB? READ SEARCH EXAMINE>
<TELL
"You go through" THE-PRSO " and find nothing of interest." CR>)>>
]
<ROOM HALL-4
(DESC "hallway")
(LDESC
"This is the south end of a hallway that runs the length of the house.
At the far end, to the north, you can see the living room; immediately
to the south is a door. Other doors on both sides lead to other rooms.")
(LINE 2)
(STATION HALL-4)
(CORRIDOR 16)>
<OBJECT OFFICE-DOOR
(SYNONYM DOOR)
(ADJECTIVE OFFICE)
(DESC "office door")
>
[
<ROOM OFFICE
(DESC "office")
(SYNONYM OFFICE)
(LINE 2)
(STATION OFFICE)>
<ROUTINE OFFICE-F ("OPTIONAL" (RARG <>))
<COND (<AND <==? .RARG ,M-BEG>
<VERB? WALK FOLLOW HIDE-BEHIND THROUGH>>
<TELL
"Linder says with frustration, \"I wish you wouldn't try to go off while
we're trying to talk.\"" CR>
<RTRUE>)
<TELL
"This is obviously the office of Mr. Linder's company, Pacific Trade
Associates. ">
<TELL
"Behind it is a large ornately-carved chair, like a cruiser escorting a
battle ship">
<TELL ", where Linder sits imperiously">)>
<TELL
". A simple wooden chair, polished smooth by visitors,
flanks the desk on the other side. On the north wall is a lounge,
upholstered in green velvet and a bit lumpy, with a framed wood-block
picture hanging over it. On the outside wall, next to a door and window,
stands a grandfather clock, ticking relentlessly. A file cabinet stands
in the corner." CR>
<TELL
"The door to the interior hallway is open." CR>)>
<TELL
"The door leading outside is open." CR>)>
<TELL
"The window facing the back yard is open." CR>)>
<RTRUE>)>>
<OBJECT OFFICE-DESK
(ADJECTIVE LARGE MASSIVE OFFICE)
(SYNONYM DESK)
(DESC "desk")
(CAPACITY 25)>
<ROUTINE OFFICE-DESK-F ("OPTIONAL" (ARG <>))
<AND <NOT .ARG> <VERB? EXAMINE LOOK-INSIDE LOOK-ON>>>
<TELL
"At the west end of the office, a massive desk of teak and mahogany
faces toward the window. It has no drawers, but the top is covered with
piles of letters, some newspapers, a telephone, and various souvenirs
from the Far East.">
<TELL
<CRLF>
<RTRUE>)
(<VERB? LOOK-UNDER>
<TELL
"You can see dirt and grime, old chewing gum in various colors, and a pair of
black wires going from a button into the floor." CR>)
(<VERB? OPEN CLOSE>
<TELL "You can't. It doesn't have drawers." CR>)>>
<OBJECT OFFICE-DESK-STUFF
(SYNONYM PILES LETTER SOUVENIR STUFF)
(DESC "stuff on the desk")
<OBJECT NEWSPAPERS
(SYNONYM NEWSPAPERS )
(DESC "newspaper")
<ROUTINE NEWSPAPERS-F ()
<COND (<VERB? TAKE MOVE USE>
<TELL "You have no need for them." CR>)
(<VERB? READ SEARCH EXAMINE>
<TELL
"Today's L.A. Times has the usual sort of stories: secret records of the
police intelligence squad were seized in connection with an attempt to
assassinate private detective Harry Raymond; \"Two Officers Die in Battle
With Maniac\"; \"Slayer of Tijuana Girl Executed under Fugitive Law\"; and
\"Austria Near Hitler Yoke.\"" CR>)>>
<OBJECT CARVED-CHAIR
(DESC "carved chair")
(ADJECTIVE CARVED OFFICE ORNATE ARM LARGE)
(SYNONYM CHAIR THRONE)
(CAPACITY 30)
<ROUTINE CARVED-CHAIR-F ("OPTIONAL" (ARG <>))
(.ARG <RFALSE>)
(<OR <VERB? EXAMINE>
<AND <VERB? SEARCH-OBJECT-FOR> >>
<COND
(T
<TELL
"The chair looks like teak, covered with carvings of vines and slithery
creatures that you wouldn't like to meet in a jungle." CR>
<RTRUE>)>)
<VERB? CLIMB-ON SIT TAKE>
<TELL "Linder glares at you. ">
<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>)>>
Early versions of the game had an EASIER mode, in which you could find the bullet-hole and figure out the angle of the shot. The idea was dropped during development. See DIFFICULTY.
<OBJECT WOODEN-CHAIR
(DESC "wooden chair")
(ADJECTIVE SIMPLE WOODEN WOOD CUSTOMER)
(SYNONYM CHAIR)
(CAPACITY 20)
<ROUTINE WOODEN-CHAIR-F ("OPTIONAL" (ARG <>))
<COND (<AND <NOT .ARG>
<VERB? CLIMB-ON SIT TAKE>
<TELL "You are now sitting on the " D ,PRSO "." CR>
<RTRUE>)>>
<OBJECT GENERIC-CHAIR
(DESC "chair")
(SYNONYM $GNRC)>
<ROUTINE GENERIC-CHAIR-F (OBJ)
<COND (<AND <VERB? DISEMBARK> <NOT <IN? <LOC ,WINNER> ,ROOMS>>>
(<VERB? ASK-ABOUT ASK-CONTEXT-ABOUT FIND TELL-ME WHAT>
<TELL "(You can't see any " "chair" " here!)" CR>
<OBJECT FILE-CABINET
(DESC "file cabinet")
(ADJECTIVE FILE OFFICE)
(SYNONYM CABINET)
(CAPACITY 33)>
<OBJECT PAPERS
(DESC "lot of business papers")
(FDESC "The cabinet is filled with a lot of business papers.")
(ADJECTIVE BUSINESS OFFICE)
(SYNONYM LOT PAPERS PAPER)
<ROUTINE PAPERS-F ()
<COND (<VERB? EXAMINE LOOK-INSIDE READ TAKE>
(T
<TELL "You look ">
<TELL "more thoroughly through the files and still">)
(T <TELL "quickly through the files but">)>
<TELL
" find nothing suspicious, so you decide to leave them alone." CR>)>)>>
<OBJECT OFFICE-PICTURE
(DESC "picture")
(ADJECTIVE FRAMED WOOD BLOCK OFFICE)
(SYNONYM PICTURE)
>
<OBJECT CLOCK
(ADJECTIVE TALL GRANDFATHER CLOCK )
(SYNONYM CLOCK CASE LOCK DOOR)
(DESC "grandfather clock")
(SIZE 99)
(CAPACITY 9)
<ROUTINE CLOCK-F ()
<NOT <VERB? ASK-ABOUT ASK-CONTEXT-ABOUT>>
<NOT <VERB? FIND TELL-ME WHAT>>>
<TELL "(You can't see any " "clock" " here!)" CR>)
(<VERB? EXAMINE>
<TELL
"This is a full-blown \"grandfather\" clock, seven feet tall, run by
weights and regulated by a pendulum, whose dial shows day, date, and
phase of the moon besides the time. According to the dial, today is ">
(T <TELL "Saturday the 19">)>
<TELL "th, the moon is just past full, and the time is now ">
<TELL
" There is some kind of powder around the keyhole.">)
(T <TELL
" And you notice that the keyhole looks darker than normal.">)>)>
<CRLF>)
(<VERB? LISTEN>
<TELL "The clock is ticking relentlessly." CR>)
(<AND <VERB? LOOK-INSIDE OPEN SEARCH>
<COND (<AND <VERB? LOOK-INSIDE SEARCH> <NOT <FSET? ,CLOCK ,OPENBIT>>>
<TELL "You'll have to open it first." CR>
<RTRUE>)>
<TELL "As you'd expect, the case holds a long pendulum.">
<TELL
" The surprise is a hand gun, pointing out into the room.">)>
<TELL " You can also see some relays and things." CR>)
(<VERB? LOOK-UNDER>
<TELL
"All you see is a pair of green wires going from the case into
the floor." CR>)
<TELL "The door of the clock is now locked." CR>)
(T <TELL "You don't have the right key." CR>)>
<RTRUE>)
<TELL "The door of the clock is now unlocked." CR>)
(T <TELL "You don't have the right key." CR>)>)
(<VERB? PUSH MOVE>
<TELL "It seems to be bolted to the floor." CR>)>>
<OBJECT KEY-HOLE
(DESC "keyhole")
(SYNONYM KEYHOLE )
(CAPACITY 1)
<ROUTINE KEY-HOLE-F ()
<VERB? BRUSH EXAMINE KISS LOOK-INSIDE PUT RUB RUB-OVER SMELL>>
<COND (<VERB? EXAMINE>
<TELL
"It's an impressive keyhole, wrapped in a fine brass escutcheon.">
<TELL " There is some kind of powder around it.">)>
<CRLF>)
<TELL "You can't see anything in there but darkness." CR>)
<TELL
"Linder says, \"I wish you'd pay attention to me instead of that clock.\""
CR>)>>
<OBJECT POWDER
(ADJECTIVE GUN)
(SYNONYM POWDER GUNPOWDER)
(DESC "powder")
>
<OBJECT CLOCK-POWDER
(ADJECTIVE CLOCK GUN)
(SYNONYM SAMPLE POWDER)
(DESC "sample of powder")
(SIZE 1)
<ROUTINE CLOCK-POWDER-F ()
<COND (<VERB? ANALYZE>
(<VERB? EXAMINE>
<TELL "It looks like cheap gunpowder." CR>)
(<VERB? SMELL>
<TELL "It has a pungent smell, like cheap gunpowder." CR>)
<VERB? TAKE>>
<RFALSE>)>>
<OBJECT CLOCK-WIRES
(DESC "pair of green wires")
(ADJECTIVE GREEN)
(SYNONYM PAIR WIRES)
<ROUTINE CLOCK-WIRES-F ()
<COND (<VERB? FOLLOW>
<TELL "The wires go into the floor and disappear." CR>)
(<VERB? TAKE>
<TELL "You can't." " They're stuck tight." CR>)>>
<OBJECT OFFICE-BUTTON
(ADJECTIVE BUTLER HIS OFFICE)
(SYNONYM BUTTON)
(DESC "butler's button")
<GLOBAL SHOT-FIRED <>>
<GLOBAL BUTTON-FIXED <>>
<GLOBAL PLAYER-PUSHED-BUTTON <>>
<ROUTINE OFFICE-BUTTON-F ()
<COND (<VERB? FIND>
<TELL "It's on the edge of the desk." CR>)
(<VERB? PUSH RING>
<RTRUE>)
<TELL
"You hear a clicking sound from the direction of the clock." CR>)
<TELL
"Linder grabs your wrist and looks you hard in the eye.
Then a wide smile breaks out on his face as he lets go.
\"Sorry if I'm rough, but I don't want any interruptions right now.\"" CR>)
(T
<RTRUE>)>)>>
<OBJECT LOUNGE
(DESC "lounge")
(ADJECTIVE GREEN VELVET LUMPY OFFICE)
(SYNONYM LOUNGE)
(CAPACITY 40)
]
An office bathroom, commented out.
Note that the ACTION property refers to LIBRARY-BALCONY-F, which is a Deadline room name. This code must have been copied over and barely edited before it was discarded.
<OBJECT GARAGE-DOOR
(SYNONYM DOOR LOCK)
(ADJECTIVE GARAGE)
(DESC "garage door")
>
[
<ROOM GARAGE
(DESC "garage")
(SYNONYM GARAGE)
(LINE 2)
(STATION GARAGE)
(CORRIDOR 8)>
<ROUTINE GARAGE-F ("OPTIONAL" (ARG <>))
<TELL
"The garage, like a car port, has no door to keep the cars in.
Doors lead north and east.
The walls are decorated with spare tires and things. ">
<TELL "The red MG is gone.">)
(T <TELL
"Oil spots on the floor show that a car is often parked here.">)>)
(T
<TELL "The red MG is parked here.">)
(T <TELL
"One car is a sporty red MG convertible.">)>)>
<TELL " The other car is a dark blue Bentley 3.5-liter sedan."CR>)>>
<OBJECT LINDER-CAR
(DESC "blue sedan")
(ADJECTIVE DARK BLUE LINDER HIS)
(SYNONYM CAR AUTO SEDAN BENTLEY)
<OBJECT MONICA-CAR
(DESC "red sport car")
(ADJECTIVE RED SPORT SPORTY MONICA HER)
(SYNONYM CAR AUTO CONVERTIBLE MG)
<ROUTINE CAR-F ("OPTIONAL" (ARG <>))
<TELL "It's not here." CR>)
<TELL "The hood is still warm from driving." CR>)
(<VERB? LOOK-INSIDE>
<TELL
"You can barely see a plush interior through the tinted glass, but nothing
else of interest." CR>)
(<VERB? LOCK UNLOCK>
<TELL "You don't have the right key." CR>)
(<VERB? THROUGH> <TELL "The doors are locked." CR>)>>
<OBJECT CAR-WINDOW
(DESC "car window")
(ADJECTIVE CAR)
(SYNONYM WINDOW)
<ROUTINE CAR-WINDOW-F ()
<TELL "(You can't see any " "window" " here!)" CR>)
(<VERB? LOOK-INSIDE>
<TELL
"You can barely see a plush interior through the tinted glass, but nothing
else of interest." CR>)
(<VERB? MUNG>
<TELL "Vandalism is for private ">
(T <TELL "dick">)>
<TELL "s, not famous police detectives!" CR>)>>
<OBJECT GENERIC-CAR
(DESC "car")
(SYNONYM $GNRC)>
<ROUTINE GENERIC-CAR-F (OBJ)
(<VERB? ASK-ABOUT ASK-CONTEXT-ABOUT FIND TELL-ME WHAT>
(T
<TELL "(You can't see any " "car" " here!)" CR>
]
<OBJECT WORKSHOP-DOOR
(SYNONYM DOOR LOCK)
(ADJECTIVE WORKSHOP WORK SHOP)
(DESC "workshop door")
>
[
<ROOM WORKSHOP
(DESC "workshop")
(ADJECTIVE WORK)
(SYNONYM SHOP WORKSHOP)
(LDESC
"This room is a well-equipped workshop. Besides the usual sort of tools,
the place is full of mechanical and electrical parts and supplies:
switches, relays, spools of colored wire, and so on. One wall holds the
main electric board and a home-made junction box with more wires going
in and out than you can shake a stick at. The only door is the one you
came in.")
(LINE 2)
<OBJECT WORKSHOP-WIRE
(DESC "other wire")
(ADJECTIVE OTHER BROWN RED ORANGE YELLOW BLUE VIOLET GREY)
(SYNONYM WIRE WIRES SPOOL SPOOLS)
<ROUTINE WORKSHOP-WIRE-F ()
<COND (<VERB? EXAMINE>
<TELL "It looks just like ordinary wire." CR>)
(<VERB? FIND>
<TELL "You can find wire here in almost any color you like." CR>)
(<VERB? FOLLOW>
<TELL "It just goes around and around the supply spool." CR>)>>
<OBJECT SPOOL-OF-WIRE
(DESC "green wire spool")
(ADJECTIVE GREEN WIRE)
(SYNONYM WIRE SPOOL)
<ROUTINE SPOOL-OF-WIRE-F ()
<COND (<AND <VERB? COMPARE>
<TELL
"The piece of green wire and the green spool fit together
perfectly." CR>)
(T <TELL
"The piece of green wire and the green spool appear to be
similar." CR>)>)>>
<OBJECT GENERIC-GREEN-WIRE
(DESC "green wire")
(SYNONYM $GNRC)>
<OBJECT GENERIC-WIRE
(DESC "wire")
(SYNONYM $GNRC)>
<ROUTINE GENERIC-WIRE-F (OBJ)
(<VERB? ASK-ABOUT ASK-CONTEXT-ABOUT ASK-FOR ASK-CONTEXT-FOR
FIND TELL-ME WHAT
GIVE SGIVE SEARCH-OBJECT-FOR TAKE>
(T
<TELL "(You can't see any " "wire" " here!)" CR>
<OBJECT JUNCTION-BOX
(ADJECTIVE JUNCTION)
(SYNONYM BOX)
(DESC "junction box")
<ROUTINE JUNCTION-BOX-F ()
<COND (<VERB? EXAMINE>
<TELL
"There's a snarl of colored wires, relays, pilot lights, and stuff that only
an engineer could admire." CR>)>>
<OBJECT SAW
(SYNONYM SAW)
(DESC "saw")
<OBJECT HAMMER
(SYNONYM HAMMER)
(DESC "hammer")
<OBJECT ROPE
(SYNONYM ROPE)
(DESC "rope")
This commented-out scenery object is pasted directly from Deadline.
<OBJECT SPADE
(SYNONYM SPADE)
(DESC "spade")
<OBJECT HOE
(SYNONYM HOE)
(DESC "hoe")
<OBJECT RAKE
(SYNONYM RAKE)
(DESC "rake")
<OBJECT HOSE
(SYNONYM HOSE)
(DESC "hose")
<ROUTINE TOOLS-F ()
<COND (<VERB? EXAMINE>
<TELL
"The tools are standard gardening and carpentry tools, in excellent
condition." CR>)
(<VERB? TAKE>
<TELL
"You have no use for them, unless you are looking for
a new profession." CR>)>>
<OBJECT WORK-SHELVES
(SYNONYM SHELF SHELVES)
(DESC "shelf")
(CAPACITY 20)
>
]
"Other stuff"
<OBJECT AIR
(DESC "air")
(SYNONYM AIR WIND BREEZE)
<ROUTINE AIR-F ()
<COND (<VERB? SMELL>
<TELL
"The smell of herbs permeates everything." CR>)
<TELL
"A breeze carries the faint smell of herbs through the air." CR>)
<TELL "The air is clear and fresh here." CR>)
(T <TELL "The air is rather musty here." CR>)>)>>
<ROUTINE FRESH-AIR? (RM "AUX" P L TBL O)
#DECL ((RM O) OBJECT (P L) FIX)
<SET P 0>
<REPEAT ()
<COND (<0? <SET P <NEXTP ,HERE .P>>>
<RFALSE>)
(<NOT <L? .P ,LOW-DIRECTION>>
<SET TBL <GETPT ,HERE .P>>
<SET L <PTSIZE .TBL>>
<COND (<AND <EQUAL? .L ,DEXIT>
<TELL
"There is a pleasant breeze coming through the " D .O "." CR>
<RETURN>)>)>>>
[
The six COR-N tables define six corridors of rooms that have sight-lines to each other. (Some of the “corridors” are outdoors.) Each room in a corridor has that bit set in its CORRIDOR property.
This permits the game to display messages like “Mr. Phong, off to the north, ducks into a room to the north.”
<GLOBAL COR-1
<GLOBAL COR-2
<GLOBAL COR-4
<GLOBAL COR-8
<GLOBAL COR-16
]
"Routines to do looking down corridors"
<ROUTINE CORRIDOR-LOOK ("OPTIONAL" (ITM <>) "AUX" C Z COR VAL (FOUND <>))
<REPEAT ()
<COND (<NOT <L? <SET Z <- .C 16>> 0>>
(<NOT <L? <SET Z <- .C 8>> 0>>
(<NOT <L? <SET Z <- .C 4>> 0>>
(<NOT <L? <SET Z <- .C 2>> 0>>
(<NOT <L? <SET Z <- .C 1>> 0>>
(T <RETURN>)>
<COND (<NOT .FOUND> <SET FOUND .VAL>)>
<SET C .Z>>
.FOUND)>>
<ROUTINE CORRIDOR-CHECK (COR ITM "AUX" (CNT 2) (PAST 0) (FOUND <>) RM OBJ)
#DECL ((COR) <PRIMTYPE VECTOR> (CNT PAST) FIX)
<REPEAT ()
<COND (<==? <SET RM <GET .COR .CNT>> 0>
<RFALSE>)
(<==? .RM ,HERE> <SET PAST 1>)
(<SET OBJ <FIRST? .RM>>
<REPEAT ()
<COND (.ITM
<COND (<==? .OBJ .ITM>
<SET FOUND <GET .COR .PAST>>
<RETURN>)>)
<TELL "Sgt. Duffy, with ">
(T <TELL "someone">)>
<TELL " in tow,">)
<TELL "Someone">)
(T <TELL D .OBJ>)>
<TELL " is ">
<TELL "off">)
(T <TELL "down the hall">)>
<TELL " to ">
<TELL "." CR>)>
<SET OBJ <NEXT? .OBJ>>
<COND (<NOT .OBJ> <RETURN>)>>
<COND (.FOUND <RETURN .FOUND>)>)>
<SET CNT <+ .CNT 1>>>>
<ROUTINE COR-DIR (HERE THERE "AUX" COR RM (PAST 0) (CNT 2))
<REPEAT ()
<COND (<==? <SET RM <GET .COR .CNT>> .HERE>
<SET PAST 1>
<RETURN>)
(<==? .RM .THERE>
<RETURN>)>
<SET CNT <+ .CNT 1>>>
<GET .COR .PAST>>
<ROUTINE GET-COR (NUM)
#DECL ((NUM) FIX)
<COND (<==? .NUM 1> ,COR-1)
>>