3082 lines
85 KiB
Plaintext
3082 lines
85 KiB
Plaintext
"PLACES for WITNESS
|
||
Copyright (C) 1983 Infocom, Inc. All rights reserved."
|
||
|
||
"Other possible generics: cabinet counter footprints hallway shelf"
|
||
|
||
"Directions"
|
||
|
||
<GLOBAL DIR-STRINGS
|
||
<PTABLE P?NORTH "north" P?SOUTH "south"
|
||
P?EAST "east" P?WEST "west"
|
||
P?NW "northwest" P?NE "northeast"
|
||
P?SW "southwest" P?SE "southeast"
|
||
P?DOWN "downstairs" P?UP "upstairs"
|
||
P?IN "in" P?OUT "out">>
|
||
|
||
<ROUTINE DIR-PRINT (DIR "AUX" (CNT 0))
|
||
#DECL ((DIR CNT) FIX)
|
||
<REPEAT ()
|
||
<COND (<==? <GET ,DIR-STRINGS .CNT> .DIR>
|
||
<COND (T ;<NOT <EQUAL? .DIR ,P?UP ,P?DOWN>>
|
||
<TELL "the ">)>
|
||
<PRINT <GET ,DIR-STRINGS <+ .CNT 1>>>
|
||
<RTRUE>)>
|
||
<SET CNT <+ .CNT 1>>>>
|
||
|
||
"The usual globals"
|
||
|
||
<OBJECT ROOMS>
|
||
|
||
<OBJECT GLOBAL-ROOM
|
||
(IN GLOBAL-OBJECTS)
|
||
(SYNONYM ROOM PLACE WALL WALLS)
|
||
(DESC "place" ;"room")
|
||
;(GENERIC WALL-F)
|
||
(ACTION GLOBAL-ROOM-F)>
|
||
|
||
<ROUTINE GLOBAL-ROOM-F ("AUX" TIM VAL)
|
||
<COND (<VERB? KNOCK>
|
||
<TELL "Knocking on the walls reveals nothing unusual." CR>)
|
||
(<VERB? SEARCH EXAMINE>
|
||
<COND (<==? <GETP ,HERE ,P?LINE> ,OUTSIDE-LINE-C>
|
||
<SET TIM 10>)
|
||
(<NOT <0? <GETP ,HERE ,P?CORRIDOR>>>
|
||
<SET TIM 3>)
|
||
(T <SET TIM <+ 2 <GETP ,HERE ,P?SIZE>>>)>
|
||
<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?)">
|
||
<COND (<YES?>
|
||
<COND (<==? ,M-FATAL <SET VAL <INT-WAIT .TIM>>>
|
||
<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>)>)>>
|
||
|
||
;<ROUTINE WALL-F ()
|
||
<COND (<OUTSIDE? ,HERE> ,HOUSE) (T ,GLOBAL-ROOM)>>
|
||
|
||
<OBJECT WINDOW
|
||
(IN LOCAL-GLOBALS)
|
||
(DESC "window")
|
||
(SYNONYM WINDOW PANE PANES FRAME)
|
||
(FLAGS NDESCBIT WINDOWBIT LOCKED)
|
||
(GENERIC GENERIC-WINDOW-F ;LOCKED-F)
|
||
(ACTION WINDOW-F)>
|
||
|
||
<ROUTINE WINDOW-F ("AUX" (RM <WINDOW-ROOM ,HERE ,PRSO>) POP)
|
||
<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.">
|
||
<COND (<NOT <OUTSIDE? ,HERE>>
|
||
<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">
|
||
<SET POP <POPULATION .RM>>
|
||
<COND (<0? .POP> T)
|
||
(<1? .POP> <TELL " someone in">)
|
||
(T <TELL " some people in">)>
|
||
<THE? .RM>
|
||
<TELL " " D .RM " "
|
||
<COND (<==? <GETP ,HERE ,P?LINE> ,OUTSIDE-LINE-C>
|
||
"in")
|
||
(T "out")>
|
||
"side." CR>)
|
||
(T
|
||
<TELL "The window is too foggy to see through." CR>)>
|
||
<RTRUE>)
|
||
(<VERB? KNOCK>
|
||
<COND (<NOT <WINDOW-KNOCK .RM>>
|
||
<TELL "There's no answer." CR>)>)
|
||
(<VERB? MUNG>
|
||
<TELL "Vandalism is for private ">
|
||
<COND (<TANDY?> <TELL "eye">)
|
||
(T <TELL "dick">)>
|
||
<TELL "s, not famous police detectives!" CR>)
|
||
(<VERB? OPEN CLOSE LOCK UNLOCK>
|
||
<COND (<FSET? ,PRSO ,RMUNGBIT>
|
||
<TELL "It's really broken. ">)>
|
||
<TELL "You can't." CR>)>>
|
||
|
||
<ROUTINE GENERIC-WINDOW-F (OBJ)
|
||
<COND (<WINDOW-IN? ,HERE> <RFALSE>)
|
||
(<VERB? ASK-ABOUT ASK-CONTEXT-ABOUT FIND TELL-ME WHAT>
|
||
,WINDOW)
|
||
(T
|
||
<SETG P-WON <>>
|
||
<TELL "(You can't see any " "window" " here!)" CR>
|
||
,NOT-HERE-OBJECT)>>
|
||
|
||
<ROUTINE WINDOW-KNOCK (RM)
|
||
<COND (<INHABITED? .RM>
|
||
<TELL "Someone looks up at you inquisitively." CR>)>>
|
||
|
||
<ROUTINE WINDOW-IN? (RM)
|
||
<OR <EQUAL? .RM ,FRONT-YARD ,KITCHEN ,BUTLER-ROOM>
|
||
<EQUAL? .RM ,OFFICE-PORCH ,OFFICE>
|
||
<EQUAL? .RM ,BACK-YARD ,MONICA-ROOM>
|
||
<EQUAL? .RM ,ROCK-GARDEN ,LINDER-ROOM ,TUB-ROOM>>
|
||
;<AND <0? <BAND 31 <GETP .RM ,P?CORRIDOR>>> ;"not HALL-n or outside"
|
||
<NOT <EQUAL? .RM ,BATHROOM ,TOILET-ROOM ,BUTLER-BATH>>
|
||
<NOT <EQUAL? .RM ,STORAGE-CLOSET ,LIVING-ROOM ,WORKSHOP>>>>
|
||
|
||
;<ROUTINE WINDOW-SHOP (RM STR "AUX" (P <POPULATION .RM>))
|
||
<COND (<0? .P> <CRLF> <RTRUE>)
|
||
(T <TELL "You can vaguely see ">)>
|
||
<COND (<1? .P>
|
||
<TELL "someone">)
|
||
(T
|
||
<PRINTN .P>
|
||
<TELL " people">)>
|
||
<TELL " inside the " .STR "." CR>>
|
||
|
||
<OBJECT SINK
|
||
(IN LOCAL-GLOBALS)
|
||
(DESC "sink")
|
||
(SYNONYM SINK BASIN FAUCET SPIGOT)
|
||
(FLAGS NDESCBIT FURNITURE)>
|
||
|
||
<OBJECT TOILET
|
||
(IN LOCAL-GLOBALS)
|
||
(DESC "toilet")
|
||
(SYNONYM TOILET)
|
||
(FLAGS NDESCBIT FURNITURE SURFACEBIT VEHBIT)
|
||
(ACTION TOILET-F)>
|
||
|
||
<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>)
|
||
;(<VERB? FLUSH>
|
||
<TELL "\"Whhoooossshhhhh!\"" CR>)>>
|
||
|
||
<OBJECT GENERIC-BATHROOM-DOOR
|
||
(IN GLOBAL-OBJECTS)
|
||
(DESC "bathroom door")
|
||
(SYNONYM $GNRC)>
|
||
|
||
<ROUTINE GENERIC-BATH-DOOR-F (OBJ)
|
||
<COND (<EQUAL? ,HERE ,MONICA-ROOM> ,MONICA-BATH-DOOR)
|
||
(<EQUAL? ,HERE ,LINDER-ROOM> ,LINDER-BATH-DOOR)
|
||
(<EQUAL? ,HERE ,BUTLER-ROOM ,BUTLER-BATH> ,BUTLER-BATH-DOOR)
|
||
(<VERB? ASK-ABOUT ASK-CONTEXT-ABOUT FIND TELL-ME WHAT>
|
||
,GENERIC-BATHROOM-DOOR)
|
||
(T
|
||
<SETG P-WON <>>
|
||
<TELL "(You can't see any " "bathroom door" " here!)" CR>
|
||
,NOT-HERE-OBJECT)>>
|
||
|
||
<OBJECT GENERIC-BEDROOM
|
||
(IN GLOBAL-OBJECTS)
|
||
(DESC "bedroom")
|
||
(SYNONYM $GNRC)>
|
||
|
||
<ROUTINE GENERIC-BEDROOM-F (OBJ)
|
||
<COND (<EQUAL? .OBJ ,HERE ,GLOBAL-HERE> ,GLOBAL-ROOM)
|
||
(<VERB? ASK-ABOUT ASK-CONTEXT-ABOUT FIND TELL-ME WHAT>
|
||
,GENERIC-BEDROOM)
|
||
(T
|
||
<SETG P-WON <>>
|
||
<TELL "(You can't see any " "bedroom" " here!)" CR>
|
||
,NOT-HERE-OBJECT)>>
|
||
|
||
<OBJECT GENERIC-BEDROOM-DOOR
|
||
(IN GLOBAL-OBJECTS)
|
||
(DESC "bedroom door")
|
||
(SYNONYM $GNRC)>
|
||
|
||
<ROUTINE GENERIC-BEDROOM-DOOR-F (OBJ)
|
||
<COND (<EQUAL? ,HERE ,MONICA-ROOM ,HALL-2> ,MONICA-DOOR)
|
||
(<EQUAL? ,HERE ,LINDER-ROOM ,LIVING-ROOM> ,LINDER-DOOR)
|
||
(<VERB? ASK-ABOUT ASK-CONTEXT-ABOUT FIND TELL-ME WHAT>
|
||
,GENERIC-BEDROOM-DOOR)
|
||
(T
|
||
<SETG P-WON <>>
|
||
<TELL "(You can't see any " "bedroom door" " here!)" CR>
|
||
,NOT-HERE-OBJECT)>>
|
||
|
||
<OBJECT GENERIC-BACK-DOOR
|
||
(IN GLOBAL-OBJECTS)
|
||
(DESC "back door")
|
||
(SYNONYM $GNRC)>
|
||
|
||
<ROUTINE GENERIC-BACK-DOOR-F (OBJ)
|
||
<COND (<AND <VERB? SHOOT>
|
||
<FSET? ,P-IT-OBJECT ,DOORBIT>
|
||
<FSET? ,P-IT-OBJECT ,LOCKED>>
|
||
,P-IT-OBJECT)
|
||
(<EQUAL? ,HERE ,OFFICE-PORCH ,OFFICE> ,OFFICE-BACK-DOOR)
|
||
(<EQUAL? ,HERE ,BACK-YARD ,MONICA-ROOM> ,MONICA-BACK-DOOR)
|
||
(<EQUAL? ,HERE ,ROCK-GARDEN ,LINDER-ROOM> ,LINDER-BACK-DOOR)
|
||
(<VERB? ASK-ABOUT ASK-CONTEXT-ABOUT FIND TELL-ME WHAT>
|
||
,GENERIC-BACK-DOOR)
|
||
(T
|
||
<SETG P-WON <>>
|
||
<TELL "(You can't see any " "back door" " here!)" CR>
|
||
,NOT-HERE-OBJECT)>>
|
||
|
||
<OBJECT GENERIC-BATHROOM
|
||
(IN GLOBAL-OBJECTS)
|
||
(DESC "bathroom")
|
||
(SYNONYM $GNRC)>
|
||
|
||
<ROUTINE GENERIC-BATHROOM-F (OBJ)
|
||
<COND (<EQUAL? .OBJ ,HERE ,GLOBAL-HERE> ,GLOBAL-ROOM)
|
||
(<VERB? ASK-ABOUT ASK-CONTEXT-ABOUT FIND TELL-ME WHAT>
|
||
,GENERIC-BATHROOM)
|
||
(T
|
||
<SETG P-WON <>>
|
||
<TELL "(You can't see any " "bathroom" " here!)" CR>
|
||
,NOT-HERE-OBJECT)>>
|
||
|
||
<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>>>>
|
||
<==? .DR <GETB .TBL ,DEXITOBJ>>>
|
||
<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
|
||
(IN GLOBAL-OBJECTS)
|
||
(DESC "here")
|
||
(SYNONYM HERE)
|
||
(FLAGS NDESCBIT)
|
||
(ACTION GLOBAL-HERE-F)>
|
||
|
||
<ROUTINE GLOBAL-HERE-F ("AUX" (FLG <>) F HR)
|
||
<COND (<VERB? WHAT ASK-ABOUT>
|
||
<SET F <FIRST? ,HERE>>
|
||
<REPEAT ()
|
||
<COND (<NOT .F> <RETURN>)
|
||
(<AND <FSET? .F ,CONTBIT> <INHABITED? .F>>
|
||
<SET FLG T>
|
||
<SET HR ,HERE>
|
||
<SETG HERE .F>
|
||
<GLOBAL-HERE-F>
|
||
<SETG HERE .HR>)
|
||
(<AND <FSET? .F ,PERSON> <NOT <==? .F ,PLAYER>>>
|
||
<SET FLG T>
|
||
<DESCRIBE-OBJECT .F T 0>)>
|
||
<SET F <NEXT? .F>>>
|
||
<COND (<NOT .FLG> <TELL "There's nobody else here." CR>)>
|
||
<RTRUE>)>>
|
||
|
||
<ROUTINE LOCKED-F (OBJ)
|
||
<COND (<==? ,HERE ,FRONT-YARD>
|
||
<COND (<VERB? EXAMINE LOOK-INSIDE SEARCH SEARCH-OBJECT-FOR THROUGH>
|
||
,DINING-DOOR)
|
||
(<VERB? WALK-TO> ,FRONT-DOOR)
|
||
(T <RFALSE>)>)
|
||
(<AND <VERB? SHOOT>
|
||
<FSET? ,P-IT-OBJECT ,DOORBIT>
|
||
<FSET? ,P-IT-OBJECT ,LOCKED>>
|
||
,P-IT-OBJECT)>>
|
||
|
||
<ROUTINE META-LOC (OBJ)
|
||
<REPEAT ()
|
||
<COND (<NOT <LOC .OBJ>>
|
||
<RFALSE>)>
|
||
<COND (<EQUAL? <LOC .OBJ> ,LOCAL-GLOBALS ,GLOBAL-OBJECTS>
|
||
<RETURN <LOC .OBJ>>)>
|
||
<COND (<IN? .OBJ ,ROOMS>
|
||
<RETURN .OBJ>)
|
||
(ELSE
|
||
<SET OBJ <LOC .OBJ>>)>>>
|
||
|
||
<ROUTINE OUTSIDE? (RM)
|
||
<OR <==? .RM ,GARAGE>
|
||
<==? <GETP .RM ,P?LINE> ,OUTSIDE-LINE-C>>>
|
||
|
||
<ROUTINE PHONE-IN? (RM)
|
||
<EQUAL? .RM ,LIVING-ROOM ,OFFICE ,MONICA-ROOM>>
|
||
|
||
<ROUTINE WINDOW-ROOM (RM WINDOW "AUX" (P 0) L)
|
||
#DECL ((RM WINDOW) OBJECT (P L) FIX)
|
||
<COND (<==? .RM ,FRONT-YARD>
|
||
<COND (<==? .WINDOW ,KITCHEN-WINDOW> ,KITCHEN)
|
||
(<==? .WINDOW ,BUTLER-WINDOW> ,BUTLER-ROOM)>)
|
||
(<EQUAL? .RM ,KITCHEN ,BUTLER-ROOM> ,FRONT-YARD)
|
||
(<==? .RM ,OFFICE-PORCH> ,OFFICE)
|
||
(<==? .RM ,OFFICE> ,OFFICE-PORCH)
|
||
(<==? .RM ,BACK-YARD> ,MONICA-ROOM)
|
||
(<==? .RM ,MONICA-ROOM> ,BACK-YARD)
|
||
(<==? .RM ,ROCK-GARDEN>
|
||
<COND (<==? .WINDOW ,LINDER-WINDOW> ,LINDER-ROOM)
|
||
(<==? .WINDOW ,BATH-WINDOW> ,TUB-ROOM)>)
|
||
(<EQUAL? .RM ,LINDER-ROOM ,TUB-ROOM> ,ROCK-GARDEN)>>
|
||
|
||
"Grounds of Linder House"
|
||
|
||
<ROUTINE GROUND-SURFACE ()
|
||
<COND (<EQUAL? ,HERE ,FRONT-YARD ,ROCK-GARDEN>
|
||
"gravel")
|
||
(<EQUAL? ,HERE ,DRIVEWAY ,DRIVEWAY-ENTRANCE>
|
||
"peastone")
|
||
(<EQUAL? ,HERE ,FRONT-PORCH ,OFFICE-PORCH> "concrete")
|
||
(<EQUAL? ,HERE ,BACK-YARD> "grass")
|
||
(,GROUND-MUDDY "mud")
|
||
(T "dirt")>>
|
||
|
||
<ROOM FRONT-YARD
|
||
(IN ROOMS)
|
||
(DESC "front yard")
|
||
(FLAGS RLANDBIT ONBIT)
|
||
(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.")
|
||
;(ADJECTIVE FRONT)
|
||
;(SYNONYM YARD)
|
||
(EAST TO DINING-ROOM IF DINING-DOOR IS OPEN)
|
||
(WEST "A wooden fence blocks your way.")
|
||
(NORTH "A wooden fence blocks your way.")
|
||
(SOUTH TO FRONT-PORCH IF FRONT-GATE IS OPEN)
|
||
(UP "You can't go that way.")
|
||
(DOWN "You can't go that way.") ;"just to establish properties"
|
||
(GLOBAL HOUSE DINING-DOOR KITCHEN-WINDOW BUTLER-WINDOW
|
||
FRONT-GATE FRONT-DOOR FENCE)
|
||
(LINE 4)
|
||
(STATION FRONT-YARD)>
|
||
|
||
<OBJECT KITCHEN-GARDEN
|
||
(IN FRONT-YARD)
|
||
(ADJECTIVE KITCHEN)
|
||
(SYNONYM GARDEN VEGETABLE HERB HERBS)
|
||
(DESC "kitchen garden")
|
||
(FLAGS NDESCBIT)>
|
||
|
||
<OBJECT FRONT-GATE
|
||
(IN LOCAL-GLOBALS)
|
||
(ADJECTIVE FRONT ;GARDEN)
|
||
(SYNONYM GATE)
|
||
(DESC "front gate")
|
||
(FLAGS DOORBIT)
|
||
;(ACTION HIDE-LOOK-DOOR-F)>
|
||
[
|
||
<ROOM FRONT-PORCH
|
||
(IN ROOMS)
|
||
(DESC "front porch")
|
||
(ACTION FRONT-PORCH-F)
|
||
;(ADJECTIVE FRONT)
|
||
;(SYNONYM PORCH ;STOOP)
|
||
(FLAGS RLANDBIT ONBIT ON-NOT-IN)
|
||
(IN TO ENTRY IF FRONT-DOOR IS OPEN)
|
||
(EAST TO ENTRY IF FRONT-DOOR IS OPEN)
|
||
(SOUTH TO DRIVEWAY)
|
||
(WEST "A wooden fence blocks your way.")
|
||
(NORTH TO FRONT-YARD IF FRONT-GATE IS OPEN)
|
||
(GLOBAL HOUSE FRONT-DOOR FRONT-GATE FENCE DRIVEWAY-OBJECT)
|
||
(LINE 4)
|
||
(STATION FRONT-PORCH)
|
||
(CORRIDOR 4)>
|
||
|
||
<ROUTINE FRONT-PORCH-F ("OPTIONAL" (RARG <>))
|
||
<COND (<==? .RARG ,M-LOOK>
|
||
<DDESC
|
||
"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.">
|
||
<DDESC
|
||
"The gate is " ,FRONT-GATE
|
||
". A door bell glows at you, almost daring you to ring it.">
|
||
<THIS-IS-IT ,DOORBELL>)>>
|
||
|
||
<OBJECT DOORBELL
|
||
(DESC "door bell")
|
||
(ADJECTIVE DOOR)
|
||
(SYNONYM BELL DOORBELL)
|
||
(IN FRONT-PORCH)
|
||
(FLAGS NDESCBIT)
|
||
(ACTION DOORBELL-F)>
|
||
|
||
<ROUTINE DOORBELL-F ()
|
||
<COND (<VERB? PUSH RING>
|
||
<COND (<AND <NOT ,WELCOMED>
|
||
<FSET? ,CORPSE ,INVISIBLE>>
|
||
<WELCOME>)
|
||
(T <YOU-RANG>
|
||
<TELL "The door bell rings, loud and clear." CR>)>
|
||
<RTRUE>)>>
|
||
]
|
||
<ROOM DRIVEWAY
|
||
(IN ROOMS)
|
||
(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.")
|
||
;(ADJECTIVE DRIVE)
|
||
;(SYNONYM DRIVEWAY WAY)
|
||
(FLAGS RLANDBIT ONBIT ON-NOT-IN)
|
||
(NORTH TO FRONT-PORCH)
|
||
(SOUTH TO DRIVEWAY-ENTRANCE)
|
||
(EAST TO GARAGE)
|
||
(WEST "A wooden fence blocks your way.")
|
||
(GLOBAL HOUSE FRONT-DOOR FENCE DRIVEWAY-OBJECT)
|
||
(LINE 4)
|
||
(STATION DRIVEWAY)
|
||
(CORRIDOR 12)>
|
||
|
||
<OBJECT DRIVEWAY-OBJECT
|
||
(IN LOCAL-GLOBALS)
|
||
(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)
|
||
(ACTION DRIVEWAY-F)>
|
||
|
||
<ROUTINE DRIVEWAY-F ("OPTIONAL" (ARG <>))
|
||
<COND (<AND <VERB? CLIMB-UP FOLLOW> <DOBJ? DRIVEWAY-OBJECT>>
|
||
<COND (<==? ,HERE ,DRIVEWAY-ENTRANCE>
|
||
<PERFORM ,V?WALK ,P?NORTH> <RTRUE>)
|
||
(<==? ,HERE ,GARAGE ,SIDE-YARD ;,OFFICE-PATH>
|
||
<PERFORM ,V?WALK ,P?WEST> <RTRUE>)
|
||
(T <TELL "It's not clear which direction you mean." CR>)>)>>
|
||
|
||
<ROOM DRIVEWAY-ENTRANCE
|
||
(IN ROOMS)
|
||
(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.")
|
||
;(ADJECTIVE DRIVEWAY ;DRIVE ;CAR ;AUTO ;STREET)
|
||
;(SYNONYM ENTRANCE ;GATE)
|
||
(FLAGS RLANDBIT ONBIT)
|
||
(NORTH TO DRIVEWAY)
|
||
(WEST "A wooden fence blocks your way.")
|
||
(EAST TO SIDE-YARD)
|
||
(SOUTH
|
||
"You can't leave the property yet. It would mean your job.")
|
||
(GLOBAL HOUSE WOODS FRONT-DOOR FENCE DRIVEWAY-OBJECT SIDE-FOOTPRINTS)
|
||
(LINE 4)
|
||
(STATION DRIVEWAY-ENTRANCE)
|
||
(CORRIDOR 6)>
|
||
|
||
<ROOM LIMBO
|
||
(IN ROOMS)
|
||
(DESC "limbo")
|
||
(FLAGS RLANDBIT ONBIT)
|
||
(CONTFCN NULL-F)
|
||
(NORTH TO DRIVEWAY-ENTRANCE)
|
||
(LINE 4)
|
||
(STATION DRIVEWAY-ENTRANCE)>
|
||
[
|
||
<ROOM SIDE-YARD
|
||
(IN ROOMS)
|
||
(ACTION SIDE-YARD-F)
|
||
(DESC "side yard")
|
||
;(ADJECTIVE SIDE ;LITTLE)
|
||
;(SYNONYM YARD)
|
||
(FLAGS RLANDBIT ONBIT)
|
||
(NORTH "You can't enter the house from here.")
|
||
(WEST TO DRIVEWAY-ENTRANCE)
|
||
(EAST TO OFFICE-PATH)
|
||
(SOUTH "A wooden fence blocks your way.")
|
||
(GLOBAL HOUSE FENCE DRIVEWAY-OBJECT SIDE-FOOTPRINTS)
|
||
(LINE 4)
|
||
(STATION SIDE-YARD)
|
||
(CORRIDOR 2)>
|
||
|
||
<ROUTINE SIDE-YARD-F ("OPTIONAL" (RARG <>))
|
||
<COND (<==? .RARG ,M-LOOK>
|
||
<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>)
|
||
(<==? .RARG ,M-FLASH>
|
||
<COND (<AND <NOT <FSET? ,SIDE-FOOTPRINTS ,INVISIBLE>>
|
||
<NOT <FSET? ,SIDE-FOOTPRINTS ,TOUCHBIT>>>
|
||
<DESCRIBE-OBJECT ,SIDE-FOOTPRINTS T 0>
|
||
<FSET ,SIDE-FOOTPRINTS ,TOUCHBIT>)>)
|
||
(<AND <==? .RARG ,M-BEG>
|
||
<==? ,HERE ,SIDE-YARD>
|
||
,GROUND-MUDDY
|
||
<VERB? WALK FOLLOW>>
|
||
<SETG SIDE-FOOTPRINTS-CONFUSED T>
|
||
<RFALSE>)>>
|
||
|
||
<OBJECT SIDE-FOOTPRINTS
|
||
(IN LOCAL-GLOBALS ;SIDE-YARD)
|
||
(DESC "set of footprints")
|
||
(ADJECTIVE FOOT)
|
||
(SYNONYM FOOTPRINTS PRINTS SET)
|
||
(FLAGS INVISIBLE)
|
||
(GENERIC GENERIC-FOOTPRINTS-F)
|
||
(DESCFCN SIDE-FOOTPRINTS-F)
|
||
(ACTION SIDE-FOOTPRINTS-F)>
|
||
|
||
<GLOBAL SIDE-FOOTPRINTS-CONFUSED <>>
|
||
<ROUTINE SIDE-FOOTPRINTS-F ("OPTIONAL" (ARG <>))
|
||
<COND (<==? .ARG ,M-OBJDESC>
|
||
<COND (,SIDE-FOOTPRINTS-CONFUSED
|
||
<COND (<FSET? ,SIDE-FOOTPRINTS ,TOUCHBIT>
|
||
<TELL
|
||
"Fresh foot prints go here and there in the yard." CR>)
|
||
(T
|
||
<FSET ,SIDE-FOOTPRINTS ,TOUCHBIT>
|
||
<TELL
|
||
"You notice fresh foot prints going here and there in the yard."
|
||
CR>)>)
|
||
(T
|
||
<COND (<FSET? ,SIDE-FOOTPRINTS ,TOUCHBIT>
|
||
<TELL
|
||
"A fresh row of foot prints goes from the back yard to the driveway." CR>)
|
||
(T
|
||
<FSET ,SIDE-FOOTPRINTS ,TOUCHBIT>
|
||
<TELL
|
||
"You notice a fresh row of foot prints going from the back yard to the
|
||
driveway." CR>)>)>)
|
||
(<AND ,SIDE-FOOTPRINTS-CONFUSED <VERB? ANALYZE EXAMINE>>
|
||
<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>
|
||
<COND (<NOT <EQUAL? <LOC ,SIDE-FOOTPRINTS-CAST> ,LIMBO>>
|
||
<TELL "You already did that!" CR>)
|
||
(<OR ,FINGERPRINT-OBJ ,DUFFY-AT-CORONER>
|
||
<DO-FINGERPRINT>
|
||
<RTRUE>)
|
||
(T <MOVE ,SIDE-FOOTPRINTS-CAST ,PLAYER>
|
||
<ANAFOOT>)>)
|
||
(<VERB? FOLLOW>
|
||
<COND (<EQUAL? ,HERE ,DRIVEWAY-ENTRANCE>
|
||
<GOTO ,SIDE-YARD>)
|
||
(<EQUAL? ,HERE ,SIDE-YARD ,OFFICE-PATH>
|
||
<GOTO ,DRIVEWAY-ENTRANCE>)>
|
||
<RTRUE>)
|
||
(<AND <VERB? MAKE>
|
||
<DOBJ? GENERIC-CAST SIDE-FOOTPRINTS-CAST BACK-FOOTPRINTS-CAST>>
|
||
<PERFORM ,V?ANALYZE ,SIDE-FOOTPRINTS>
|
||
<RTRUE>)>>
|
||
|
||
<OBJECT SIDE-FOOTPRINTS-CAST
|
||
(DESC "side-yard cast")
|
||
(IN LIMBO)
|
||
(ADJECTIVE SIDE-YARD SIDE)
|
||
(SYNONYM CAST)
|
||
(SIZE 9)
|
||
(FLAGS TAKEBIT)
|
||
(GENERIC GENERIC-CAST-F)
|
||
(ACTION SIDE-FOOTPRINTS-CAST-F)>
|
||
|
||
<ROUTINE SIDE-FOOTPRINTS-CAST-F ()
|
||
<COND (<AND <VERB? COMPARE>
|
||
<OR <DOBJ? BACK-FOOTPRINTS BACK-FOOTPRINTS-CAST>
|
||
<IOBJ? BACK-FOOTPRINTS BACK-FOOTPRINTS-CAST>>>
|
||
<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
|
||
(IN ROOMS)
|
||
(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.")
|
||
;(ADJECTIVE OFFICE STONE)
|
||
;(SYNONYM PATH)
|
||
(FLAGS RLANDBIT ONBIT ON-NOT-IN AN)
|
||
(NORTH TO OFFICE-PORCH)
|
||
(EAST "You would probably get lost in the woods.")
|
||
(WEST TO SIDE-YARD)
|
||
(SOUTH
|
||
"You can't leave the property yet. It would mean your job.")
|
||
(GLOBAL HOUSE WOODS ;DRIVEWAY-OBJECT SIDE-FOOTPRINTS)
|
||
(LINE 4)
|
||
(STATION OFFICE-PATH)
|
||
(CORRIDOR 3)>
|
||
|
||
<OBJECT WOODS
|
||
(IN LOCAL-GLOBALS)
|
||
(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.")
|
||
;(ACTION LAKE-F)>
|
||
|
||
<OBJECT BACK-GATE
|
||
(IN OFFICE-PATH)
|
||
(ADJECTIVE BACK OFFICE)
|
||
(SYNONYM GATE)
|
||
(DESC "back gate")
|
||
(FLAGS DOORBIT NDESCBIT)
|
||
;(ACTION HIDE-LOOK-DOOR-F)>
|
||
][
|
||
<ROOM OFFICE-PORCH
|
||
(IN ROOMS)
|
||
(DESC "office porch")
|
||
(ACTION OFFICE-PORCH-F)
|
||
;(ADJECTIVE OFFICE BACK)
|
||
;(SYNONYM PORCH)
|
||
(FLAGS RLANDBIT ONBIT ON-NOT-IN AN)
|
||
(NORTH TO BACK-YARD)
|
||
(SOUTH TO OFFICE-PATH)
|
||
(EAST "You would probably get lost in the woods.")
|
||
(WEST TO OFFICE IF OFFICE-BACK-DOOR IS OPEN)
|
||
(IN TO OFFICE IF OFFICE-BACK-DOOR IS OPEN)
|
||
(GLOBAL HOUSE OFFICE-BACK-DOOR OFFICE-WINDOW LAWN WOODS
|
||
;PIECE-OF-WIRE ;PIECE-OF-PUTTY BROKEN-GLASS BACK-FOOTPRINTS)
|
||
(LINE 4)
|
||
(STATION OFFICE-PORCH)
|
||
(CORRIDOR 1)>
|
||
|
||
<ROUTINE OFFICE-PORCH-F ("OPTIONAL" (RARG <>))
|
||
<COND (<==? .RARG ,M-LOOK>
|
||
<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>)
|
||
(<==? .RARG ,M-FLASH>
|
||
<COND (<AND <NOT <FSET? ,BACK-FOOTPRINTS ,INVISIBLE>>
|
||
<NOT <FSET? ,BACK-FOOTPRINTS ,TOUCHBIT>>>
|
||
<DESCRIBE-OBJECT ,BACK-FOOTPRINTS T 0>
|
||
<FSET ,BACK-FOOTPRINTS ,TOUCHBIT>)>)>>
|
||
|
||
<OBJECT BACK-FOOTPRINTS
|
||
(IN LOCAL-GLOBALS ;OFFICE-PORCH)
|
||
(DESC "set of footprints")
|
||
(ADJECTIVE FOOT)
|
||
(SYNONYM FOOTPRINTS PRINTS SET)
|
||
(FLAGS INVISIBLE)
|
||
(FDESC "You notice some fresh foot prints heading east.")
|
||
(LDESC "Fresh foot prints head east.")
|
||
(GENERIC GENERIC-FOOTPRINTS-F)
|
||
(ACTION BACK-FOOTPRINTS-F)>
|
||
|
||
"<GLOBAL BACK-FOOTPRINTS-CONFUSED <>>"
|
||
|
||
<ROUTINE BACK-FOOTPRINTS-F ()
|
||
<COND ;(<AND ,BACK-FOOTPRINTS-CONFUSED <VERB? ANALYZE EXAMINE>>
|
||
<TELL "There are too many foot prints here now." CR>)
|
||
(<VERB? EXAMINE>
|
||
<TELL
|
||
"The prints are uneven and widely spaced, as if made by someone running." CR>)
|
||
(<VERB? ANALYZE>
|
||
<COND (<NOT <EQUAL? <LOC ,BACK-FOOTPRINTS-CAST> ,LIMBO>>
|
||
<TELL "You already did that!" CR>)
|
||
(<OR ,FINGERPRINT-OBJ ,DUFFY-AT-CORONER>
|
||
<DO-FINGERPRINT>
|
||
<RTRUE>)
|
||
(T <MOVE ,BACK-FOOTPRINTS-CAST ,PLAYER>
|
||
<ANAFOOT>)>)
|
||
(<VERB? FOLLOW>
|
||
<TELL "You would probably get lost in the woods."
|
||
" Even with a path to follow." CR>)
|
||
(<AND <VERB? MAKE>
|
||
<DOBJ? GENERIC-CAST SIDE-FOOTPRINTS-CAST BACK-FOOTPRINTS-CAST>>
|
||
<PERFORM ,V?ANALYZE ,BACK-FOOTPRINTS>
|
||
<RTRUE>)>>
|
||
|
||
<ROUTINE GENERIC-FOOTPRINTS-F (OBJ)
|
||
<COND (<EQUAL? ,HERE ,OFFICE-PORCH> ,BACK-FOOTPRINTS)
|
||
(<EQUAL? ,HERE ,SIDE-YARD> ,SIDE-FOOTPRINTS)
|
||
(T
|
||
<SETG P-WON <>>
|
||
<TELL "(You can't see any " "foot prints" " here!)" CR>
|
||
,NOT-HERE-OBJECT)>>
|
||
|
||
<OBJECT BACK-FOOTPRINTS-CAST
|
||
(DESC "back-yard cast")
|
||
(IN LIMBO)
|
||
(ADJECTIVE BACK-YARD BACK)
|
||
(SYNONYM CAST)
|
||
(SIZE 9)
|
||
(FLAGS TAKEBIT)
|
||
(GENERIC GENERIC-CAST-F)
|
||
;(ACTION SIDE-FOOTPRINTS-F)>
|
||
|
||
<ROUTINE GENERIC-CAST-F (OBJ)
|
||
<COND (<VERB? ASK-ABOUT ASK-CONTEXT-ABOUT FIND TELL-ME WHAT>
|
||
,GENERIC-CAST)
|
||
(<VERB? MAKE> ,GENERIC-CAST)>>
|
||
|
||
<OBJECT GENERIC-CAST
|
||
(IN GLOBAL-OBJECTS)
|
||
(DESC "cast")
|
||
(SYNONYM $GNRC)>
|
||
]
|
||
<OBJECT OFFICE-WINDOW
|
||
(IN LOCAL-GLOBALS)
|
||
(DESC "office window")
|
||
(ADJECTIVE OFFICE)
|
||
(SYNONYM WINDOW PANE PANES FRAME)
|
||
(FLAGS WINDOWBIT AN)
|
||
(GENERIC GENERIC-WINDOW-F)
|
||
(ACTION OFFICE-WINDOW-F)>
|
||
|
||
<ROUTINE OFFICE-WINDOW-F ("AUX" (RM <WINDOW-ROOM ,HERE ,PRSO>))
|
||
<COND ;(<VERB? ASK-ABOUT> <RFALSE>)
|
||
(<VERB? EXAMINE>
|
||
<WINDOW-F>
|
||
<COND (<FSET? ,OFFICE-WINDOW ,RMUNGBIT>
|
||
<TELL
|
||
"All the panes of the window are cracked, and many are in pieces on the ">
|
||
<COND ;(<0? ,DIFFICULTY> <TELL "ground outside">)
|
||
;(<1? ,DIFFICULTY> <TELL "floor and ground">)
|
||
(T <TELL "floor.">)>
|
||
<COND (<==? ,HERE ,OFFICE>
|
||
<COND (<NOT <FSET? ,PIECE-OF-PUTTY ,TOUCHBIT>>
|
||
<TELL
|
||
" A chunk of putty dangles like a wax bean.">)>
|
||
<COND (<NOT <FSET? ,PIECE-OF-WIRE ,TOUCHBIT>>
|
||
<TELL
|
||
" Along one edge of the window you can see the end of a piece of green wire."
|
||
;"?etc.">)>)>
|
||
<CRLF>)
|
||
(<AND ;<==? ,P-ADVERB ,W?CAREFULLY>
|
||
<==? ,HERE ,OFFICE>
|
||
<NOT <FSET? ,PIECE-OF-WIRE ,TOUCHBIT>>>
|
||
<TELL
|
||
"There's also a piece of green wire running from the frame to the putty."
|
||
CR>)>
|
||
<RTRUE>)
|
||
(<GO-AWAY> <RTRUE>)
|
||
(<AND <VERB? LOOK-INSIDE LOOK-OUTSIDE>
|
||
.RM <FSET? ,OFFICE-WINDOW ,RMUNGBIT>>
|
||
<TELL "Through the broken window you can see">
|
||
<THE? .RM>
|
||
<TELL " " D .RM " "
|
||
<COND (<==? <GETP ,HERE ,P?LINE> ,OUTSIDE-LINE-C> "in")
|
||
(T "out")>
|
||
"side." CR>
|
||
<RTRUE>)
|
||
(<AND <VERB? THROUGH> .RM <FSET? ,OFFICE-WINDOW ,RMUNGBIT>>
|
||
<TELL "You would probably cut yourself on the broken glass." CR>)
|
||
(<DOBJ? OFFICE-WINDOW> <PERFORM ,PRSA ,WINDOW ,PRSI> <RTRUE>)
|
||
(<IOBJ? OFFICE-WINDOW> <PERFORM ,PRSA ,PRSO ,WINDOW> <RTRUE>)>>
|
||
|
||
<ROUTINE GO-AWAY ()
|
||
<COND (<AND <VERB? KNOCK>
|
||
<==? <META-LOC ,LINDER> ,OFFICE>
|
||
<NOT <IN? ,PLAYER ,OFFICE>>>
|
||
<TELL
|
||
"Someone peeks through the window at you, then disappears and"
|
||
" shouts \"Go away!\"" CR>)>>
|
||
|
||
<OBJECT PIECE-OF-WIRE
|
||
(IN OFFICE)
|
||
(DESC "green wire piece")
|
||
(ADJECTIVE GREEN WIRE)
|
||
(SYNONYM WIRE PIECE)
|
||
(FLAGS TRYTAKEBIT NDESCBIT)
|
||
(GENERIC GENERIC-WIRE-F)
|
||
(SIZE 1)
|
||
(ACTION PIECE-OF-WIRE-F)>
|
||
|
||
<ROUTINE PIECE-OF-WIRE-F ()
|
||
<COND (<AND <VERB? FOLLOW> <NOT <FSET? ,PRSO ,TOUCHBIT>>>
|
||
<TELL "The wire goes into the window frame and disappears." CR>)
|
||
(<AND <VERB? TAKE> <NOT ,SHOT-FIRED>>
|
||
<TELL "You can't." " It's stuck tight." CR>)>>
|
||
|
||
<OBJECT PIECE-OF-PUTTY
|
||
(IN OFFICE)
|
||
(DESC "chunk of putty")
|
||
(SYNONYM CHUNK PUTTY)
|
||
(FLAGS TRYTAKEBIT NDESCBIT)
|
||
(SIZE 1)
|
||
(ACTION PIECE-OF-PUTTY-F)>
|
||
|
||
<ROUTINE PIECE-OF-PUTTY-F ()
|
||
<COND (<AND <VERB? TAKE> <NOT ,SHOT-FIRED>>
|
||
<TELL "You can't." " It's stuck tight." CR>)>>
|
||
|
||
<OBJECT OFFICE-BACK-DOOR
|
||
(IN LOCAL-GLOBALS)
|
||
(ADJECTIVE BACK OUTSIDE)
|
||
(SYNONYM DOOR LOCK)
|
||
(DESC "back door")
|
||
(FLAGS LOCKED DOORBIT)
|
||
(GENERIC GENERIC-BACK-DOOR-F ;LOCKED-F)
|
||
(ACTION OFFICE-BACK-DOOR-F)>
|
||
|
||
<ROUTINE OFFICE-BACK-DOOR-F ()
|
||
<COND (<GO-AWAY> <RTRUE>)
|
||
(<AND <VERB? GIVE SGIVE> ;"GIVE NOTE BACK"
|
||
<OR <DOBJ? THREAT-NOTE> <IOBJ? THREAT-NOTE>>>
|
||
<COND (<LOC ,LINDER>
|
||
<PERFORM ,V?GIVE ,THREAT-NOTE ,LINDER>
|
||
<RTRUE>)
|
||
(T <TELL "It's too late to give Linder anything." CR>)>)>>
|
||
|
||
<ROOM BACK-YARD
|
||
(IN ROOMS)
|
||
(DESC "back yard")
|
||
;(ADJECTIVE BACK)
|
||
;(SYNONYM 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.")
|
||
(FLAGS RLANDBIT ONBIT)
|
||
(NORTH TO ROCK-GARDEN)
|
||
(SOUTH TO OFFICE-PORCH)
|
||
(EAST "You would probably get lost in the woods.")
|
||
(WEST TO MONICA-ROOM IF MONICA-BACK-DOOR IS OPEN)
|
||
(GLOBAL HOUSE MONICA-BACK-DOOR WINDOW LAWN WOODS)
|
||
(LINE 4)
|
||
(STATION BACK-YARD)
|
||
(CORRIDOR 1)>
|
||
|
||
<OBJECT LAWN
|
||
(IN LOCAL-GLOBALS)
|
||
(DESC "lawn")
|
||
(SYNONYM LAWN GRASS)
|
||
(ADJECTIVE GREEN)
|
||
(ACTION LAWN-F)>
|
||
|
||
<ROUTINE LAWN-F ()
|
||
<COND (<VERB? EXAMINE>
|
||
<TELL "The lawn is well manicured." CR>)>>
|
||
|
||
<OBJECT MONICA-BACK-DOOR
|
||
(IN LOCAL-GLOBALS)
|
||
(ADJECTIVE BACK OUTSIDE)
|
||
(SYNONYM DOOR LOCK)
|
||
(DESC "back door")
|
||
(FLAGS LOCKED DOORBIT)
|
||
(GENERIC GENERIC-BACK-DOOR-F ;LOCKED-F)
|
||
;(ACTION BACK-DOOR-F)>
|
||
|
||
<ROOM ROCK-GARDEN
|
||
(IN ROOMS)
|
||
(DESC "rock garden")
|
||
;(ADJECTIVE ROCK JAPANESE BACK)
|
||
;(SYNONYM 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.")
|
||
(FLAGS RLANDBIT ONBIT)
|
||
(NORTH "A wooden fence blocks your way.")
|
||
(EAST "You would probably get lost in the woods.")
|
||
(SOUTH TO BACK-YARD)
|
||
(WEST TO LINDER-ROOM IF LINDER-BACK-DOOR IS OPEN)
|
||
(GLOBAL HOUSE LINDER-BACK-DOOR LINDER-WINDOW BATH-WINDOW
|
||
LAWN WOODS FENCE)
|
||
(LINE 4)
|
||
(STATION ROCK-GARDEN)
|
||
(CORRIDOR 1)>
|
||
|
||
<OBJECT ROCKS
|
||
(IN ROCK-GARDEN ;LOCAL-GLOBALS)
|
||
(DESC "rocks")
|
||
(ADJECTIVE SMOOTH ROUND)
|
||
(SYNONYM ROCKS ROCK BOULDER)
|
||
(FLAGS NDESCBIT CONTBIT SURFACEBIT OPENBIT)
|
||
(CAPACITY 150)
|
||
;(ACTION ROSE-F)>
|
||
|
||
;"<OBJECT GLOBAL-ROCKS
|
||
(IN GLOBAL-OBJECTS)
|
||
(DESC 'rocks')
|
||
(ADJECTIVE ROCK)
|
||
(SYNONYM ROCKS GARDEN ROCK)>"
|
||
|
||
"? <OBJECT BENCH ...>"
|
||
|
||
<OBJECT LINDER-BACK-DOOR
|
||
(IN LOCAL-GLOBALS)
|
||
(SYNONYM DOOR LOCK)
|
||
(ADJECTIVE BACK OUTSIDE)
|
||
(DESC "back door")
|
||
(FLAGS LOCKED DOORBIT)
|
||
(GENERIC GENERIC-BACK-DOOR-F ;LOCKED-F)
|
||
;(ACTION BACK-DOOR-F)>
|
||
|
||
"Inside the house"
|
||
)>[
|
||
<ROOM MONICA-ROOM
|
||
(IN ROOMS)
|
||
(DESC "Monica's bedroom")
|
||
;(ADJECTIVE MONICA BED HER)
|
||
;(SYNONYM BEDROOM ROOM)
|
||
(GENERIC GENERIC-BEDROOM-F)
|
||
(ACTION MONICA-ROOM-F)
|
||
(FLAGS RLANDBIT ONBIT)
|
||
(EAST TO BACK-YARD IF MONICA-BACK-DOOR IS OPEN)
|
||
(OUT TO BACK-YARD IF MONICA-BACK-DOOR IS OPEN)
|
||
(WEST TO HALL-2 IF MONICA-DOOR IS OPEN)
|
||
(NORTH TO BATHROOM IF MONICA-BATH-DOOR IS OPEN)
|
||
(GLOBAL MONICA-DOOR MONICA-BACK-DOOR MONICA-BATH-DOOR WINDOW
|
||
BED MIRROR TELEPHONE CLOSET)
|
||
(PSEUDO "CHAIR" RANDOM-PSEUDO)
|
||
(LINE 3)
|
||
(STATION MONICA-ROOM)>
|
||
|
||
<ROUTINE MONICA-ROOM-F ("OPTIONAL" (RARG <>))
|
||
<COND (<==? .RARG ,M-ENTER> <I-PROMPT-2>)
|
||
(<==? .RARG ,M-LOOK>
|
||
<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
|
||
(IN MONICA-ROOM)
|
||
(ADJECTIVE DRESSING WORK)
|
||
(SYNONYM TABLE DESK BENCH)
|
||
(DESC "dressing table")
|
||
(FLAGS NDESCBIT CONTBIT SURFACEBIT OPENBIT)
|
||
(CAPACITY 50)
|
||
(ACTION MONICA-TABLE-F)>
|
||
|
||
<ROUTINE MONICA-TABLE-F ()
|
||
<COND (<VERB? EXAMINE LOOK-INSIDE LOOK-ON SEARCH>
|
||
<COND (<AND <IN? ,MEDICAL-REPORT ,MONICA-ROOM>
|
||
<==? ,P-ADVERB ,W?CAREFULLY>>
|
||
<FCLEAR ,TUMOR ,INVISIBLE>
|
||
<FCLEAR ,MEDICAL-REPORT ,INVISIBLE>
|
||
<THIS-IS-IT ,MEDICAL-REPORT>
|
||
<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
|
||
(IN MONICA-TABLE)
|
||
(SYNONYM MAKE-UP STUFF ;MAKEUP LETTER TOOLS)
|
||
(DESC "stuff on the table")
|
||
(FLAGS NDESCBIT TRYTAKEBIT READBIT)
|
||
(ACTION CLOSET-STUFF-F)>
|
||
|
||
;<ROUTINE MONICA-TABLE-STUFF-F ()
|
||
<COND (<VERB? TAKE>
|
||
<TELL "You have no use for them." CR>)>>
|
||
|
||
<OBJECT MOVIE-POSTERS
|
||
(IN MONICA-ROOM)
|
||
(DESC "bunch of movie posters")
|
||
(ADJECTIVE MOVIE)
|
||
(SYNONYM POSTER)
|
||
(TEXT "These are posters for many of Clark Gable's movies.")
|
||
(FLAGS NDESCBIT)>
|
||
|
||
<OBJECT BOOK-CASE
|
||
(IN MONICA-ROOM)
|
||
(ADJECTIVE BOOK)
|
||
(SYNONYM BOOKCASE CASE BOOK BOOKS)
|
||
(DESC "book case")
|
||
(FLAGS NDESCBIT READBIT)
|
||
(TEXT "Good idea! But one important book isn't in the book case.")>
|
||
|
||
<GLOBAL TUNE-ON <>>
|
||
|
||
<ROUTINE CAN-HEAR-RECORD? ()
|
||
<COND (<AND ,TUNE-ON
|
||
<OR <AND <DOBJ? MONICA-DOOR> <==? ,HERE ,HALL-2>>
|
||
<AND <DOBJ? MONICA-BATH-DOOR> <==? ,HERE ,BATHROOM>>
|
||
<AND <DOBJ? MONICA-BACK-DOOR> <==? ,HERE ,BACK-YARD>>>>
|
||
<RTRUE>)>>
|
||
|
||
<OBJECT RECORDS
|
||
(IN MONICA-ROOM)
|
||
(DESC "record collection")
|
||
(SYNONYM RECORD MUSIC)
|
||
(FLAGS NDESCBIT)
|
||
(ACTION RECORDS-F)>
|
||
|
||
<ROUTINE RECORDS-F ("AUX" TUNE)
|
||
<COND (<VERB? PLAY LISTEN>
|
||
<TELL
|
||
"You pick a record at random and start it playing. It's \"">
|
||
<REPEAT ()
|
||
<SET TUNE <PICK-ONE ,SONG-TABLE>>
|
||
<COND (<AND ,TUNE-ON <==? .TUNE ,TUNE-ON>> T)
|
||
(T <RETURN>)>>
|
||
<SETG TUNE-ON .TUNE>
|
||
<TELL ,TUNE-ON ".\"" CR>
|
||
<ENABLE <QUEUE I-TUNE-OFF 4>>)
|
||
(<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)
|
||
<COND (<==? ,HERE ,MONICA-ROOM>
|
||
<TELL
|
||
"The record is over, and not too soon." CR>
|
||
<COND (<AND <IN? ,MONICA ,HERE> <NOT ,MONICA-TIED-TO>>
|
||
<TELL
|
||
"Monica walks over to the phonograph and puts the record away. Then she
|
||
chooses another one and starts it up. It's \"">
|
||
<SETG TUNE-ON <PICK-ONE ,SONG-TABLE>>
|
||
<TELL ,TUNE-ON ".\"" CR>
|
||
<ENABLE <QUEUE I-TUNE-OFF 4>>)>
|
||
<RTRUE>)
|
||
(<AND <IN? ,MONICA ,MONICA-ROOM> <NOT ,MONICA-TIED-TO>>
|
||
<SETG TUNE-ON <PICK-ONE ,SONG-TABLE>>
|
||
<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")
|
||
(IN LOCAL-GLOBALS)
|
||
(FLAGS DOORBIT OPENBIT)
|
||
(GENERIC GENERIC-BEDROOM-DOOR-F)
|
||
;(ACTION HIDE-LOOK-DOOR-F)>
|
||
|
||
<OBJECT MONICA-BATH-DOOR
|
||
(ADJECTIVE CEDAR BATH BATHROOM)
|
||
(SYNONYM DOOR)
|
||
(DESC "cedar door")
|
||
(IN LOCAL-GLOBALS)
|
||
(FLAGS DOORBIT OPENBIT)
|
||
(GENERIC GENERIC-BATH-DOOR-F)
|
||
;(ACTION HIDE-LOOK-DOOR-F)>
|
||
[
|
||
<ROOM BATHROOM
|
||
(IN ROOMS)
|
||
(DESC "bathroom")
|
||
;(ADJECTIVE BATH MASTER)
|
||
;(SYNONYM ROOM BATHROOM)
|
||
(GENERIC GENERIC-BATHROOM-F)
|
||
(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.")
|
||
;(DESCFCN BATHROOM-F)
|
||
(FLAGS RLANDBIT ONBIT)
|
||
;(ACTION BATHROOM-F)
|
||
(WEST TO TOILET-ROOM IF TOILET-DOOR IS OPEN)
|
||
(EAST TO TUB-ROOM IF TUB-DOOR IS OPEN)
|
||
(SOUTH TO MONICA-ROOM IF MONICA-BATH-DOOR IS OPEN)
|
||
(NORTH TO LINDER-ROOM IF LINDER-BATH-DOOR IS OPEN)
|
||
;(OUT PER RETRACE-F)
|
||
(GLOBAL MONICA-BATH-DOOR LINDER-BATH-DOOR TOILET-DOOR TUB-DOOR
|
||
CABINET MIRROR SINK)
|
||
(PSEUDO "SHAVER" RANDOM-PSEUDO "TOOTHPASTE" RANDOM-PSEUDO)
|
||
(LINE 3)
|
||
(STATION BATHROOM)>
|
||
|
||
;<OBJECT SHAVER
|
||
(IN MASTER-BATH-COUNTER)
|
||
(DESC "Schick Shaver")
|
||
(ADJECTIVE SCHICK DRY)
|
||
(SYNONYM SHAVER)
|
||
(FLAGS NDESCBIT)>
|
||
|
||
<OBJECT MASTER-BATH-COUNTER
|
||
(IN BATHROOM)
|
||
(DESC "counter")
|
||
(ADJECTIVE LONG BATH BATHROOM)
|
||
(SYNONYM COUNTER PULLMAN)
|
||
(FLAGS NDESCBIT FURNITURE SURFACEBIT CONTBIT OPENBIT)
|
||
(CAPACITY 50)
|
||
(ACTION MASTER-BATH-COUNTER-F)>
|
||
|
||
<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")
|
||
(IN LOCAL-GLOBALS)
|
||
(FLAGS DOORBIT)
|
||
;(ACTION HIDE-LOOK-DOOR-F)>
|
||
][
|
||
<ROOM TUB-ROOM
|
||
(IN ROOMS)
|
||
(DESC "tub room")
|
||
;(ADJECTIVE TUB)
|
||
;(SYNONYM 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.")
|
||
(FLAGS RLANDBIT ONBIT)
|
||
(WEST TO BATHROOM IF TUB-DOOR IS OPEN)
|
||
(OUT TO BATHROOM IF TUB-DOOR IS OPEN)
|
||
(GLOBAL TUB-DOOR BATH-WINDOW ;SHOWER BATHTUB SINK)
|
||
(LINE 3)
|
||
(STATION BATHROOM)>
|
||
|
||
<OBJECT BATH-WINDOW
|
||
(IN LOCAL-GLOBALS)
|
||
(DESC "bath window")
|
||
(ADJECTIVE BATH)
|
||
(SYNONYM WINDOW PANE PANES FRAME)
|
||
(GENERIC GENERIC-WINDOW-F)
|
||
(ACTION WINDOW-F)
|
||
(FLAGS NDESCBIT WINDOWBIT)>
|
||
|
||
<OBJECT POTTED-PLANTS
|
||
(IN TUB-ROOM)
|
||
(DESC "potted plants")
|
||
(SYNONYM PLANT PLANTS)
|
||
(ADJECTIVE POTTED)
|
||
(FLAGS NDESCBIT)>
|
||
|
||
<OBJECT BATHTUB
|
||
(IN LOCAL-GLOBALS)
|
||
(DESC "bathtub")
|
||
(SYNONYM TUB BATHTUB)
|
||
(ADJECTIVE BATH)
|
||
(FLAGS NDESCBIT VEHBIT OPENBIT CONTBIT FURNITURE)
|
||
(CAPACITY 50)>
|
||
|
||
<OBJECT SHOWER
|
||
(ADJECTIVE SHOWER)
|
||
(SYNONYM SHOWER HEAD)
|
||
(DESC "shower")
|
||
(IN TUB-ROOM ;LOCAL-GLOBALS)
|
||
(FLAGS ;CONTBIT NDESCBIT TRYTAKEBIT FURNITURE)
|
||
(ACTION SHOWER-F)>
|
||
|
||
<ROUTINE SHOWER-F ()
|
||
<COND (<AND <==? 1 <GET ,P-PRSO 0>> ;"only one dir. object"
|
||
<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")
|
||
(IN LOCAL-GLOBALS)
|
||
(FLAGS DOORBIT OPENBIT)
|
||
;(ACTION HIDE-LOOK-DOOR-F)>
|
||
|
||
<ROOM TOILET-ROOM
|
||
(IN ROOMS)
|
||
(DESC "toilet room")
|
||
(ADJECTIVE TOILET)
|
||
(SYNONYM ROOM)
|
||
(FLAGS RLANDBIT ONBIT)
|
||
(LDESC
|
||
"This is a separate room for a toilet only."
|
||
;" and appropriate reading matter.")
|
||
(EAST TO BATHROOM IF TOILET-DOOR IS OPEN)
|
||
(OUT TO BATHROOM IF TOILET-DOOR IS OPEN)
|
||
(GLOBAL TOILET-DOOR TOILET)
|
||
(LINE 3)
|
||
(STATION BATHROOM)>
|
||
|
||
<OBJECT LINDER-BATH-DOOR
|
||
(ADJECTIVE REDWOOD BATH BATHROOM)
|
||
(SYNONYM DOOR)
|
||
(DESC "redwood door")
|
||
(IN LOCAL-GLOBALS)
|
||
(FLAGS DOORBIT)
|
||
(GENERIC GENERIC-BATH-DOOR-F)
|
||
;(ACTION HIDE-LOOK-DOOR-F)>
|
||
[
|
||
<ROOM LINDER-ROOM
|
||
(IN ROOMS)
|
||
(DESC "Linder's bedroom")
|
||
(ADJECTIVE MASTER LINDER BED HIS)
|
||
(SYNONYM BEDROOM ROOM)
|
||
(GENERIC GENERIC-BEDROOM-F)
|
||
(FLAGS RLANDBIT ONBIT)
|
||
;(DESCFCN LINDER-ROOM-F)
|
||
(ACTION LINDER-ROOM-F)
|
||
(WEST TO LIVING-ROOM IF LINDER-DOOR IS OPEN)
|
||
(EAST TO ROCK-GARDEN IF LINDER-BACK-DOOR IS OPEN)
|
||
(OUT TO ROCK-GARDEN IF LINDER-BACK-DOOR IS OPEN)
|
||
(SOUTH TO BATHROOM IF LINDER-BATH-DOOR IS OPEN)
|
||
(GLOBAL LINDER-DOOR LINDER-BACK-DOOR LINDER-BATH-DOOR
|
||
CLOSET MIRROR LINDER-WINDOW BED CHAIR ;TELEPHONE ;TABLE)
|
||
(LINE 1)
|
||
(STATION LINDER-ROOM)>
|
||
|
||
<ROUTINE LINDER-ROOM-F ("OPTIONAL" (ARG <>))
|
||
<COND (<==? .ARG ,M-ENTER>
|
||
<I-PROMPT-2>)
|
||
(<==? .ARG ,M-LOOK> ;<VERB? LOOK>
|
||
<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"
|
||
<COND (<FSET? ,CORPSE ,INVISIBLE> "s") (T "d")>
|
||
" the woman's touch." CR>)>>
|
||
|
||
<OBJECT LINDER-WINDOW
|
||
(IN LOCAL-GLOBALS)
|
||
(DESC "Linder's window")
|
||
(ADJECTIVE LINDER HIS)
|
||
(SYNONYM WINDOW PANE PANES FRAME)
|
||
(GENERIC GENERIC-WINDOW-F)
|
||
(ACTION WINDOW-F)
|
||
(FLAGS NDESCBIT WINDOWBIT)>
|
||
|
||
<OBJECT LINDER-ROOM-STUFF
|
||
(IN LINDER-ROOM)
|
||
(SYNONYM CLOTHES NEWSPAPERS PAPERS STUFF)
|
||
(DESC "stuff in the room")
|
||
(FLAGS NDESCBIT TRYTAKEBIT READBIT)
|
||
(ACTION CLOSET-STUFF-F)>
|
||
|
||
<OBJECT FOUR-POSTER
|
||
(IN LINDER-ROOM)
|
||
(DESC "four-poster bed")
|
||
(ADJECTIVE FOUR FOUR-POSTER)
|
||
(SYNONYM BED POSTER FOUR-POSTER)
|
||
(FLAGS NDESCBIT SURFACEBIT CONTBIT OPENBIT FURNITURE VEHBIT)
|
||
(CAPACITY 30)
|
||
;(ACTION BED-F)>
|
||
|
||
<OBJECT MASTER-BEDROOM-DRESSER
|
||
(IN LINDER-ROOM)
|
||
(DESC "dresser")
|
||
(SYNONYM DRESSER)
|
||
(FLAGS NDESCBIT CONTBIT OPENBIT FURNITURE)
|
||
(CAPACITY 30)
|
||
(ACTION MASTER-BEDROOM-DRESSER-F)>
|
||
|
||
<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")
|
||
(IN LOCAL-GLOBALS)
|
||
(FLAGS DOORBIT)
|
||
(GENERIC GENERIC-BEDROOM-DOOR-F)
|
||
;(ACTION HIDE-LOOK-DOOR-F)>
|
||
[
|
||
<ROOM LIVING-ROOM
|
||
(IN ROOMS)
|
||
(DESC "living room")
|
||
(ADJECTIVE LIVING)
|
||
(SYNONYM ROOM PARLOR PARLOUR)
|
||
(FLAGS RLANDBIT ONBIT)
|
||
(ACTION LIVING-ROOM-F)
|
||
(EAST TO LINDER-ROOM IF LINDER-DOOR IS OPEN)
|
||
(SOUTH TO HALL-1)
|
||
(WEST TO DINING-ROOM IF LIVING-DINING-DOOR IS OPEN)
|
||
(GLOBAL LINDER-DOOR LIVING-DINING-DOOR TELEPHONE LAMP ;WINDOW)
|
||
(LINE 1)
|
||
(STATION LIVING-ROOM)
|
||
;(CORRIDOR 32)>
|
||
|
||
<ROUTINE LIVING-ROOM-F ("OPTIONAL" (RARG <>))
|
||
<COND ;(<AND ,RADIO-ON <==? .RARG ,M-ENTER>>
|
||
<TELL "The radio is playing." CR>)
|
||
(<==? .RARG ,M-LOOK>
|
||
;<SETG WELCOMED T>
|
||
<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>
|
||
;<COND (<IN? ,MONICA ,SOFA>
|
||
<TELL
|
||
"Monica is sitting on the davenport, one arm stretched along its back
|
||
and the other holding a cigarette in the air. " CR>)
|
||
(<IN? ,MONICA ,LIVING-ROOM>
|
||
<TELL
|
||
"Monica is leaning against the mantle, looking at the fire. " 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. ">)>
|
||
<DDESC
|
||
"A single door in the east wall is " ,LINDER-DOOR ",
|
||
and at the west end of the room is a double door.">)>>
|
||
|
||
<OBJECT FIREPLACE
|
||
(IN LIVING-ROOM)
|
||
(DESC "fieldstone fireplace")
|
||
(ADJECTIVE FIELDS STONE ;FIRE)
|
||
(SYNONYM FIREPLACE ;PLACE)
|
||
(FLAGS NDESCBIT)>
|
||
|
||
<OBJECT FIRE
|
||
(IN LIVING-ROOM)
|
||
(DESC "fire")
|
||
(SYNONYM FIRE)
|
||
(FLAGS NDESCBIT)>
|
||
|
||
<OBJECT WOOD-PILE
|
||
(IN LIVING-ROOM)
|
||
(DESC "wood pile")
|
||
(ADJECTIVE WOOD)
|
||
(SYNONYM PILE)
|
||
(FLAGS NDESCBIT)>
|
||
|
||
<OBJECT SOFA
|
||
(IN LIVING-ROOM)
|
||
(DESC "davenport")
|
||
(SYNONYM COUCH SOFA DAVENPORT DIVAN)
|
||
(CAPACITY 30)
|
||
(FLAGS NDESCBIT SURFACEBIT CONTBIT OPENBIT VEHBIT FURNITURE)>
|
||
|
||
<OBJECT CLUB-CHAIR
|
||
(IN LIVING-ROOM)
|
||
(DESC "club chair")
|
||
(ADJECTIVE CLUB)
|
||
(SYNONYM CHAIR)
|
||
(CAPACITY 20)
|
||
(FLAGS NDESCBIT SURFACEBIT CONTBIT OPENBIT VEHBIT FURNITURE)>
|
||
|
||
<OBJECT COFFEE-TABLE
|
||
(IN LIVING-ROOM)
|
||
(DESC "coffee table")
|
||
(ADJECTIVE COFFEE)
|
||
(SYNONYM TABLE)
|
||
(FLAGS NDESCBIT FURNITURE CONTBIT SURFACEBIT OPENBIT)
|
||
(CAPACITY 50)>
|
||
|
||
<OBJECT RADIO
|
||
(IN LIVING-ROOM)
|
||
(DESC "radio")
|
||
;(DESCFCN RADIO-F)
|
||
(ADJECTIVE CONSOLE)
|
||
(SYNONYM RADIO VOLUME MUSIC PROGRAM ;CONSOLE)
|
||
(TEXT
|
||
"It's a Stromberg-Carlson triple-range console. The exit in the bottom
|
||
is evidence of the Acoustical Labyrinth inside.")
|
||
(FLAGS NDESCBIT)
|
||
(ACTION RADIO-F)>
|
||
|
||
<GLOBAL RADIO-ON T>
|
||
|
||
<ROUTINE CAN-HEAR-RADIO? ()
|
||
<COND (<AND ,RADIO-ON
|
||
<OR <AND <DOBJ? DINING-DOOR> <==? ,HERE ,FRONT-YARD>>
|
||
<AND <DOBJ? FRONT-DOOR> <==? ,HERE ,FRONT-PORCH>>
|
||
<AND <DOBJ? LIVING-DINING-DOOR> <==? ,HERE ,DINING-ROOM>>
|
||
<AND <DOBJ? KITCHEN-DINING-DOOR KITCHEN-HALL-DOOR>
|
||
<==? ,HERE ,KITCHEN>>
|
||
<AND <DOBJ? LINDER-DOOR> <==? ,HERE ,LINDER-ROOM>>>>
|
||
<RTRUE>)>>
|
||
|
||
<GLOBAL RADIO-TABLE
|
||
<PLTABLE "an Amos 'n' Andy serial" ;8
|
||
"a Lum & Abner serial"
|
||
"the Paul Whiteman orchestra"
|
||
"the Paul Whiteman orchestra"
|
||
"Nick Harris's \"Camera Clue Murder\"" ;9
|
||
"the March of Progress"
|
||
"Kay Kyser's orchestra"
|
||
"Kay Kyser's orchestra"
|
||
"the L.A. Times news program" ;10
|
||
"Ozzie Nelson's orchestra"
|
||
"the Montoya Orchestra"
|
||
"Phil Harris's orchestra"
|
||
"the Duchin orchestra" ;11
|
||
"a balalaika orchestra"
|
||
"Ozzie Nelson's orchestra"
|
||
"Ozzie Nelson's orchestra"
|
||
"\"Rhapsody in Wax\"" ;12
|
||
"\"Rhapsody in Wax\""
|
||
"\"Rhapsody in Wax\""
|
||
"\"Rhapsody in Wax\""
|
||
"a revival meeting with Oral Roberts" ;1
|
||
"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" ;2
|
||
"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" ;3
|
||
"Lowell Thomas, Radio Commentator"
|
||
"a program of classical music"
|
||
"a program of classical music"
|
||
"a revival meeting with Aimee Semple McPherson" ;4
|
||
"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" ;5
|
||
"a program of classical music"
|
||
"a program of classical music"
|
||
"a program of classical music"
|
||
"Boake Carter, Philco News Commentator" ;6
|
||
"Boake Carter, Philco News Commentator"
|
||
"a program of classical music"
|
||
"a program of classical music"
|
||
"\"Rise and Shine\"" ;7
|
||
"\"Rise and Shine\""
|
||
"\"Rise and Shine\""
|
||
"\"Rise and Shine\""
|
||
"\"Between You, Me, and the Fence Post\"">>
|
||
|
||
<ROUTINE RADIO-F ("OPTIONAL" (ARG <>) "AUX" PGM)
|
||
<COND (<AND ,RADIO-ON <VERB? LISTEN>>
|
||
<SET PGM <GET ,RADIO-TABLE <+ 1 </ <- ,PRESENT-TIME 480> 15>>>>
|
||
<TELL "You can hardly avoid it. ">
|
||
<COND (<==? .PGM ,RADIO-ON> <TELL "It's ">)
|
||
(T <TELL "You" " spin the dial and find ">)>
|
||
<SETG RADIO-ON .PGM>
|
||
<TELL ,RADIO-ON "." CR>)
|
||
(<VERB? LAMP-ON PLAY LISTEN>
|
||
<COND (,RADIO-ON <TELL "It's already on. You">)
|
||
(T <TELL "You turn on the radio,">)>
|
||
<SETG RADIO-ON <GET ,RADIO-TABLE <+ 1 </ <- ,PRESENT-TIME 480> 15>>>>
|
||
<TELL " spin the dial and find " ,RADIO-ON "." CR>)
|
||
(<VERB? LAMP-OFF>
|
||
<COND (<AND ,RADIO-ON <IN? ,MONICA ,HERE>>
|
||
<TELL
|
||
"Monica looks at you with disgust as you turn off the radio." CR>)
|
||
(T <TELL "The radio is now off." CR>)>
|
||
<SETG RADIO-ON <>>
|
||
<RTRUE>)
|
||
(<VERB? TURN-UP>
|
||
<COND (,RADIO-ON
|
||
<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>
|
||
<COND (,RADIO-ON
|
||
<COND (<AND <IN? ,MONICA ,HERE> <NOT ,MONICA-TIED-TO>>
|
||
<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
|
||
(IN LIVING-ROOM)
|
||
(DESC "liquor cabinet")
|
||
(ADJECTIVE LIQUOR)
|
||
(SYNONYM CABINET)
|
||
(FLAGS NDESCBIT CONTBIT SEARCHBIT)
|
||
(CAPACITY 20)>
|
||
]
|
||
<OBJECT LIVING-DINING-DOOR
|
||
(ADJECTIVE DOUBLE)
|
||
(SYNONYM DOOR)
|
||
(DESC "double door")
|
||
(IN LOCAL-GLOBALS)
|
||
(FLAGS DOORBIT OPENBIT)
|
||
;(ACTION HIDE-LOOK-DOOR-F)>
|
||
[
|
||
<ROOM DINING-ROOM
|
||
(IN ROOMS)
|
||
(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)
|
||
(FLAGS RLANDBIT ONBIT)
|
||
(EAST TO LIVING-ROOM IF LIVING-DINING-DOOR IS OPEN)
|
||
(SOUTH TO KITCHEN IF KITCHEN-DINING-DOOR IS OPEN)
|
||
(WEST TO FRONT-YARD IF DINING-DOOR IS OPEN)
|
||
(OUT TO FRONT-YARD IF DINING-DOOR IS OPEN)
|
||
(GLOBAL DINING-DOOR LIVING-DINING-DOOR KITCHEN-DINING-DOOR WINDOW
|
||
;CABINET CHAIR)
|
||
(LINE 1)
|
||
(STATION LIVING-ROOM)
|
||
;(CORRIDOR 32)>
|
||
|
||
<OBJECT DINING-ROOM-TABLE
|
||
(IN DINING-ROOM)
|
||
(DESC "dining table")
|
||
(ADJECTIVE LONG DINING)
|
||
(SYNONYM TABLE)
|
||
(FLAGS NDESCBIT FURNITURE CONTBIT SURFACEBIT OPENBIT VEHBIT)
|
||
(CAPACITY 50)>
|
||
|
||
<OBJECT DINING-ROOM-BENCH
|
||
(IN DINING-ROOM)
|
||
(DESC "dining bench")
|
||
(ADJECTIVE DINING)
|
||
(SYNONYM BENCH BENCHES)
|
||
(FLAGS NDESCBIT FURNITURE CONTBIT SURFACEBIT OPENBIT VEHBIT)
|
||
(CAPACITY 50)>
|
||
|
||
<OBJECT DINING-DOOR
|
||
(ADJECTIVE DINING ROOM FRENCH)
|
||
(SYNONYM DOOR LOCK)
|
||
(DESC "French door")
|
||
(IN LOCAL-GLOBALS)
|
||
(FLAGS LOCKED DOORBIT)
|
||
(GENERIC LOCKED-F)
|
||
;(ACTION HIDE-LOOK-DOOR-F)>
|
||
]
|
||
<OBJECT KITCHEN-DINING-DOOR
|
||
(ADJECTIVE SWINGING)
|
||
(SYNONYM DOOR)
|
||
(DESC "swinging door")
|
||
(IN LOCAL-GLOBALS)
|
||
(FLAGS DOORBIT OPENBIT)
|
||
;(ACTION HIDE-LOOK-DOOR-F)>
|
||
[
|
||
<ROOM KITCHEN
|
||
(IN ROOMS)
|
||
(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)
|
||
(FLAGS RLANDBIT ONBIT)
|
||
(NORTH TO DINING-ROOM IF KITCHEN-DINING-DOOR IS OPEN)
|
||
(EAST TO HALL-1 IF KITCHEN-HALL-DOOR IS OPEN)
|
||
(GLOBAL KITCHEN-DINING-DOOR KITCHEN-HALL-DOOR KITCHEN-WINDOW
|
||
SINK ;TELEPHONE CABINET CHAIR)
|
||
(LINE 1)
|
||
(STATION HALL-1)>
|
||
|
||
<OBJECT KITCHEN-WINDOW
|
||
(IN LOCAL-GLOBALS)
|
||
(DESC "kitchen window")
|
||
(ADJECTIVE KITCHEN)
|
||
(SYNONYM WINDOW PANE PANES FRAME)
|
||
(FLAGS NDESCBIT WINDOWBIT)
|
||
(GENERIC GENERIC-WINDOW-F)
|
||
(ACTION WINDOW-F)>
|
||
[
|
||
<OBJECT K-CABINETS
|
||
(IN KITCHEN)
|
||
(DESC "cabinet")
|
||
(SYNONYM CABINET)
|
||
(FLAGS NDESCBIT CONTBIT)
|
||
(CAPACITY 50)
|
||
;(ACTION K-CABINETS-F)>
|
||
|
||
<OBJECT SILVERWARE
|
||
(IN K-CABINETS)
|
||
(DESC "set of silverware")
|
||
(SYNONYM SILVER SET)
|
||
(FLAGS TRYTAKEBIT)
|
||
(ACTION SILVERWARE-F)>
|
||
|
||
<ROUTINE SILVERWARE-F ()
|
||
<COND ;(<VERB? COUNT>
|
||
<TELL "There are 16 complete place settings." CR>)
|
||
;(<VERB? EXAMINE>
|
||
<TELL
|
||
"The silver has fine quality and design, not to mention exotic shapes
|
||
from Asia." CR>)
|
||
(<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
|
||
(IN K-CABINETS)
|
||
(DESC "glass collection")
|
||
(SYNONYM GLASS GLASSES)
|
||
(FLAGS TRYTAKEBIT)
|
||
(ACTION SILVERWARE-F)>
|
||
|
||
;<ROUTINE GLASSES-F ()
|
||
<COND ;(<VERB? COUNT>
|
||
<TELL "There are at least two dozen." CR>)
|
||
(<VERB? TAKE> <NO-TOUCH>)>>
|
||
|
||
<OBJECT CHINA
|
||
(IN K-CABINETS)
|
||
(SYNONYM CHINA SET)
|
||
(DESC "set of china")
|
||
(FLAGS TRYTAKEBIT)
|
||
(ACTION SILVERWARE-F)>
|
||
|
||
;<ROUTINE CHINA-F ()
|
||
<COND (<VERB? TAKE> <NO-TOUCH>)>>
|
||
|
||
;<OBJECT CUPS
|
||
(IN KITCHEN)
|
||
(SYNONYM GROUP CUPS TEACUP)
|
||
(ADJECTIVE CUPS ANTIQUE TEA)
|
||
(DESC "group of cups")
|
||
(FLAGS NDESCBIT)
|
||
;(ACTION CUPS-F)>
|
||
|
||
;<OBJECT PLATES
|
||
(IN KITCHEN)
|
||
(SYNONYM PLATE PLATES)
|
||
(DESC "plates")
|
||
(FLAGS NDESCBIT)
|
||
;(ACTION PLATES-F)>
|
||
][
|
||
<OBJECT K-CUPBOARD
|
||
(IN KITCHEN)
|
||
(DESC "cupboard")
|
||
(SYNONYM CUPBOARD)
|
||
(FLAGS NDESCBIT CONTBIT)
|
||
(CAPACITY 50)
|
||
;(ACTION K-CABINETS-F)>
|
||
|
||
<OBJECT FOODS
|
||
(IN K-CUPBOARD)
|
||
(DESC "bunch of canned food")
|
||
(ADJECTIVE ;DRIED CANNED ;PACKAGED)
|
||
(SYNONYM FOOD FOODS BUNCH)
|
||
(FLAGS TRYTAKEBIT)
|
||
(ACTION FOODS-F)>
|
||
|
||
<ROUTINE FOODS-F ()
|
||
<COND (<VERB? EAT TAKE>
|
||
<TELL
|
||
"Your parents must have taught you better manners than that." CR>)>>
|
||
]
|
||
<OBJECT K-CLOCK
|
||
(IN KITCHEN)
|
||
(ADJECTIVE KITCHEN)
|
||
(SYNONYM CLOCK)
|
||
(DESC "kitchen clock")
|
||
(FLAGS NDESCBIT)
|
||
;(SIZE 4)
|
||
(ACTION K-CLOCK-F)>
|
||
|
||
<ROUTINE K-CLOCK-F ()
|
||
<COND (<VERB? EXAMINE>
|
||
<TELL "The time on the kitchen clock is ">
|
||
<TIME-PRINT ,PRESENT-TIME>
|
||
<CRLF>)
|
||
(<VERB? LISTEN>
|
||
<TELL "The clock is humming electrically." CR>)>>
|
||
[
|
||
<OBJECT REFRIGERATOR
|
||
(IN KITCHEN)
|
||
(DESC "refrigerator")
|
||
(ADJECTIVE ELECTRIC)
|
||
(SYNONYM APPLIANCE REFRIGERATOR FRIDGE ;MIXER)
|
||
(FLAGS NDESCBIT CONTBIT)
|
||
(CAPACITY 22)
|
||
(ACTION APPLIANCE-F)>
|
||
|
||
<OBJECT COLD-FOODS
|
||
(IN REFRIGERATOR)
|
||
(DESC "bunch of cold food")
|
||
(ADJECTIVE COLD)
|
||
(SYNONYM FOOD FOODS BUNCH)
|
||
(FLAGS TRYTAKEBIT)
|
||
(ACTION FOODS-F)>
|
||
]
|
||
<OBJECT RANGE
|
||
(IN KITCHEN)
|
||
(DESC "range")
|
||
(ADJECTIVE ELECTRIC)
|
||
(SYNONYM RANGE)
|
||
(FLAGS NDESCBIT ;DUPLICATE)
|
||
(ACTION APPLIANCE-F)>
|
||
|
||
<OBJECT HOOD
|
||
(IN KITCHEN)
|
||
(DESC "range hood")
|
||
(ADJECTIVE ELECTRIC RANGE)
|
||
(SYNONYM HOOD)
|
||
(FLAGS NDESCBIT)
|
||
(ACTION APPLIANCE-F)>
|
||
|
||
<OBJECT MIXER
|
||
(IN KITCHEN)
|
||
(DESC "mixer")
|
||
(ADJECTIVE ELECTRIC)
|
||
(SYNONYM MIXER)
|
||
(FLAGS NDESCBIT)
|
||
(ACTION APPLIANCE-F)>
|
||
|
||
<OBJECT TOASTER
|
||
(IN KITCHEN)
|
||
(DESC "toaster")
|
||
(ADJECTIVE ELECTRIC)
|
||
(SYNONYM TOASTER)
|
||
(FLAGS NDESCBIT)
|
||
(ACTION APPLIANCE-F)>
|
||
|
||
<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 ;HALL)
|
||
(SYNONYM DOOR)
|
||
(DESC "kitchen door")
|
||
(IN LOCAL-GLOBALS)
|
||
(FLAGS DOORBIT OPENBIT)
|
||
;(ACTION HIDE-LOOK-DOOR-F)>
|
||
|
||
<ROOM HALL-1
|
||
(IN ROOMS)
|
||
(DESC "hallway")
|
||
(FLAGS RLANDBIT ONBIT)
|
||
;(DESCFCN HALL-1-F)
|
||
(ACTION HALL-1-F)
|
||
;(ADJECTIVE HALL)
|
||
;(SYNONYM HALLWAY WAY)
|
||
(SOUTH TO HALL-2)
|
||
(NORTH TO LIVING-ROOM)
|
||
(WEST TO KITCHEN IF KITCHEN-HALL-DOOR IS OPEN)
|
||
(GLOBAL KITCHEN-HALL-DOOR)
|
||
(LINE 1)
|
||
(STATION HALL-1)
|
||
(CORRIDOR 16)>
|
||
|
||
<ROUTINE HALL-1-F ("OPTIONAL" RARG)
|
||
<COND (<EQUAL? .RARG ;,M-ENTER ,M-LOOK ;,M-OBJDESC>
|
||
<TELL
|
||
"This is the north end of the central hallway.
|
||
Just to the north, you can see warm yellow light in the living room.">
|
||
<COND (<AND <IN? ,MONICA ,LIVING-ROOM>
|
||
<IN? ,LINDER ,LIVING-ROOM>
|
||
<NOT ,LINDER-FOLLOWS-YOU>>
|
||
<TELL " You can hear voices talking excitedly.">)>
|
||
<CRLF>)>>
|
||
|
||
<ROOM HALL-2
|
||
(IN ROOMS)
|
||
(DESC "hallway")
|
||
(FLAGS RLANDBIT ONBIT NDESCBIT)
|
||
(ACTION HALL-2-F)
|
||
;(ADJECTIVE HALL)
|
||
;(SYNONYM HALLWAY WAY)
|
||
(EAST TO MONICA-ROOM IF MONICA-DOOR IS OPEN)
|
||
(WEST TO BUTLER-ROOM IF BUTLER-DOOR IS OPEN)
|
||
(SOUTH TO HALL-3)
|
||
(NORTH TO HALL-1)
|
||
(GLOBAL MONICA-DOOR BUTLER-DOOR)
|
||
(LINE 1)
|
||
(STATION HALL-2)
|
||
(CORRIDOR 16)>
|
||
|
||
<ROUTINE HALL-2-F ("OPTIONAL" (RARG <>))
|
||
<COND (<==? .RARG ,M-LOOK>
|
||
<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. ">
|
||
<COND (<FSET? ,MONICA-DOOR ,OPENBIT>
|
||
<COND (<FSET? ,BUTLER-DOOR ,OPENBIT>
|
||
<TELL "Both doors are open." CR>)
|
||
(T <TELL "The door to the east is open." CR>)>)
|
||
(<FSET? ,BUTLER-DOOR ,OPENBIT>
|
||
<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")
|
||
(IN LOCAL-GLOBALS)
|
||
(FLAGS DOORBIT)
|
||
;(ACTION HIDE-LOOK-DOOR-F)>
|
||
[
|
||
<ROOM BUTLER-ROOM
|
||
(IN ROOMS)
|
||
(ACTION BUTLER-ROOM-F)
|
||
(DESC "butler's room")
|
||
(ADJECTIVE BUTLER HIS BED SERVANT)
|
||
(SYNONYM BEDROOM ROOM)
|
||
(GENERIC GENERIC-BEDROOM-F)
|
||
(FLAGS RLANDBIT ONBIT)
|
||
(EAST TO HALL-2 IF BUTLER-DOOR IS OPEN)
|
||
(OUT TO HALL-2 IF BUTLER-DOOR IS OPEN)
|
||
(NORTH TO BUTLER-BATH IF BUTLER-BATH-DOOR IS OPEN)
|
||
(IN TO BUTLER-BATH IF BUTLER-BATH-DOOR IS OPEN)
|
||
(GLOBAL BUTLER-DOOR BUTLER-BATH-DOOR BUTLER-WINDOW CLOSET BED)
|
||
(LINE 1)
|
||
(STATION HALL-2)>
|
||
|
||
<ROUTINE BUTLER-ROOM-F ("OPTIONAL" (RARG <>))
|
||
<COND (<==? .RARG ,M-LOOK>
|
||
<DDESC
|
||
"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 ".">
|
||
<DDESC
|
||
"Another door, now " ,BUTLER-BATH-DOOR", must lead to a private bathroom.">)>>
|
||
|
||
<OBJECT BUTLER-TABLE
|
||
(IN BUTLER-ROOM)
|
||
(ADJECTIVE BARE WOOD WOODEN END)
|
||
(SYNONYM TABLE TABLES)
|
||
(DESC "end table")
|
||
(FLAGS NDESCBIT SURFACEBIT CONTBIT OPENBIT FURNITURE AN)
|
||
(CAPACITY 15)>
|
||
|
||
<OBJECT BUTLER-BATH-DOOR
|
||
(ADJECTIVE ;BUTLER ;HIS BATH BATHROOM)
|
||
(SYNONYM DOOR)
|
||
(DESC ;"butler's " "bathroom door")
|
||
(IN LOCAL-GLOBALS)
|
||
(FLAGS DOORBIT)
|
||
(GENERIC GENERIC-BATH-DOOR-F)
|
||
;(ACTION HIDE-LOOK-DOOR-F)>
|
||
|
||
<OBJECT BUTLER-WINDOW
|
||
(IN LOCAL-GLOBALS)
|
||
(DESC "bedroom window")
|
||
(SYNONYM WINDOW PANE PANES FRAME)
|
||
(ADJECTIVE BUTLER HIS BEDROOM BED ROOM)
|
||
(FLAGS NDESCBIT WINDOWBIT)
|
||
(GENERIC GENERIC-WINDOW-F)
|
||
(ACTION WINDOW-F)>
|
||
][
|
||
<ROOM BUTLER-BATH
|
||
(IN ROOMS)
|
||
(FLAGS RLANDBIT ONBIT)
|
||
(DESC "butler's bathroom")
|
||
(ACTION BUTLER-BATH-F)
|
||
(ADJECTIVE BUTLER HIS BATH SERVANT)
|
||
(SYNONYM ROOM BATHROOM)
|
||
(GENERIC GENERIC-BATHROOM-F)
|
||
(SOUTH TO BUTLER-ROOM IF BUTLER-BATH-DOOR IS OPEN)
|
||
(OUT TO BUTLER-ROOM IF BUTLER-BATH-DOOR IS OPEN)
|
||
(GLOBAL MIRROR TOILET SINK BATHTUB BUTLER-BATH-DOOR)>
|
||
|
||
<ROUTINE BUTLER-BATH-F ("OPTIONAL" (RARG <>))
|
||
<COND (<OR <==? .RARG ,M-LOOK>
|
||
<AND <NOT .RARG> <VERB? EXAMINE>>>
|
||
<DDESC
|
||
"This is Mr. Phong's bathroom, with the usual plumbing and not much
|
||
else. The door at the south side of the room is " ,BUTLER-BATH-DOOR ".">)>>
|
||
|
||
;<OBJECT BUTLER-SHELVES
|
||
(IN BUTLER-BATH)
|
||
(DESC "shelf")
|
||
(SYNONYM SHELVES SHELF)
|
||
(FLAGS NDESCBIT CONTBIT OPENBIT SURFACEBIT)
|
||
(CAPACITY 30)>
|
||
]
|
||
<ROOM HALL-3
|
||
(IN ROOMS)
|
||
(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.")
|
||
(FLAGS RLANDBIT ONBIT)
|
||
(WEST TO ENTRY)
|
||
(OUT TO ENTRY)
|
||
(SOUTH TO HALL-4)
|
||
(NORTH TO HALL-2)
|
||
(LINE 1)
|
||
(STATION HALL-3)
|
||
(CORRIDOR 16)>
|
||
[
|
||
<ROOM ENTRY
|
||
(IN ROOMS)
|
||
(DESC "entry")
|
||
(ACTION ENTRY-F)
|
||
(SYNONYM ENTRY FOYER)
|
||
(FLAGS RLANDBIT ONBIT AN)
|
||
(WEST TO FRONT-PORCH IF FRONT-DOOR IS OPEN)
|
||
(OUT TO FRONT-PORCH IF FRONT-DOOR IS OPEN)
|
||
(EAST TO HALL-3)
|
||
(GLOBAL FRONT-DOOR CLOSET)
|
||
(LINE 1)
|
||
(STATION ENTRY)>
|
||
|
||
<ROUTINE ENTRY-F ("OPTIONAL" (RARG <>))
|
||
<COND ;(<==? .RARG ,M-ENTER>
|
||
<COND (<AND <NOT <IN? ,PHONG ,ENTRY>>
|
||
<NOT ,WELCOMED>
|
||
<FSET? ,CORPSE ,INVISIBLE>>
|
||
<TELL
|
||
"The butler appears from a hallway to the east." CR>
|
||
<WELCOME>)>)
|
||
(<==? .RARG ,M-LOOK>
|
||
<DDESC
|
||
"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
|
||
west wall, is " ,FRONT-DOOR ".">)>>
|
||
|
||
<OBJECT FLOWER-ARRANGEMENT
|
||
(IN ENTRY)
|
||
(DESC "flower arrangement")
|
||
(ADJECTIVE FLOWER)
|
||
(SYNONYM ARRANGEMENT)
|
||
(FLAGS NDESCBIT)
|
||
(ACTION FLOWER-F)>
|
||
|
||
<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
|
||
(IN ENTRY)
|
||
(DESC "scroll")
|
||
(LDESC "A lovely calligraphed scroll hangs on the wall.")
|
||
(ADJECTIVE LOVELY CALLIGRAPHED)
|
||
(SYNONYM SCROLL SHRINE)
|
||
(FLAGS NDESCBIT READBIT)
|
||
(ACTION SCROLL-F)>
|
||
|
||
<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
|
||
(IN ENTRY)
|
||
(DESC "shoe platform")
|
||
(ADJECTIVE SHOE)
|
||
(SYNONYM PLATFORM)
|
||
(FLAGS NDESCBIT SURFACEBIT CONTBIT OPENBIT FURNITURE)
|
||
(CAPACITY 10)
|
||
(ACTION SHOE-PLATFORM-F)>
|
||
|
||
<ROUTINE SHOE-PLATFORM-F ()
|
||
<COND (<VERB? EXAMINE LOOK-INSIDE SEARCH>
|
||
<TELL
|
||
"Several pairs of shoes are in a row, ready for inspection.">
|
||
<COND (<AND <IN? ,MUDDY-SHOES ,SHOE-PLATFORM>
|
||
<NOT <FSET? ,MUDDY-SHOES ,INVISIBLE>>>
|
||
;<FCLEAR ,MUDDY-SHOES ,INVISIBLE>
|
||
<TELL " One pair of boots would not pass.">)>
|
||
<CRLF>)>>
|
||
|
||
<OBJECT OTHER-SHOES
|
||
(IN SHOE-PLATFORM)
|
||
(DESC "other shoes")
|
||
(ADJECTIVE OTHER)
|
||
(SYNONYM SHOE SHOES ;ROW)
|
||
(FLAGS TRYTAKEBIT NDESCBIT AN)
|
||
(ACTION OTHER-SHOES-F)>
|
||
|
||
<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 ;MAIN)
|
||
(SYNONYM DOOR LOCK)
|
||
(DESC "front door")
|
||
(IN LOCAL-GLOBALS)
|
||
(FLAGS DOORBIT LOCKED)
|
||
(GENERIC LOCKED-F)
|
||
(ACTION FRONT-DOOR-F)>
|
||
|
||
<ROUTINE FRONT-DOOR-F ("AUX" (VAL <>))
|
||
<COND (<VERB? KNOCK>
|
||
<COND (<AND <==? ,PRSO ,FRONT-DOOR>
|
||
<NOT ,WELCOMED>
|
||
<FSET? ,CORPSE ,INVISIBLE>>
|
||
<COND (<==? ,HERE ,FRONT-PORCH> <WELCOME>)
|
||
(T <TELL "You can't reach the front door."CR>)>)
|
||
(<INHABITED? <DOOR-ROOM ,HERE ,FRONT-DOOR>>
|
||
<TELL "A muffled voice says, \"Come in!\"" CR>)
|
||
(T
|
||
<TELL "There is no answer at the door." CR>)>)
|
||
(<VERB? WALK-TO>
|
||
<COND (<EQUAL? ,HERE ,DRIVEWAY-ENTRANCE ,GARAGE>
|
||
<SET VAL T> <GOTO ,DRIVEWAY>)>
|
||
<COND (<EQUAL? ,HERE ,DRIVEWAY ,FRONT-YARD>
|
||
<SET VAL T> <GOTO ,FRONT-PORCH>)>
|
||
.VAL)>>
|
||
|
||
[
|
||
<ROOM STORAGE-CLOSET
|
||
(IN ROOMS)
|
||
(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)
|
||
(FLAGS RLANDBIT ONBIT)
|
||
(EAST TO HALL-4 IF STORAGE-DOOR IS OPEN)
|
||
(OUT TO HALL-4 IF STORAGE-DOOR IS OPEN)
|
||
(GLOBAL STORAGE-DOOR ;CLOSET)
|
||
(SIZE 1)
|
||
(LINE 2)
|
||
(STATION HALL-4)>
|
||
|
||
<OBJECT STORAGE-DOOR
|
||
(SYNONYM DOOR)
|
||
(ADJECTIVE STORAGE CLOSET)
|
||
(DESC "storage door")
|
||
(IN LOCAL-GLOBALS)
|
||
(FLAGS DOORBIT)
|
||
;(ACTION HIDE-LOOK-DOOR-F)>
|
||
|
||
<OBJECT LINENS
|
||
(IN STORAGE-CLOSET)
|
||
(DESC "linens")
|
||
(SYNONYM LINENS SHEETS LINEN)
|
||
(FLAGS NDESCBIT)
|
||
(ACTION CLOSET-STUFF-F)>
|
||
|
||
<OBJECT TOWELS
|
||
(IN STORAGE-CLOSET)
|
||
(DESC "towel")
|
||
(SYNONYM TOWEL TOWELS)
|
||
(FLAGS NDESCBIT)
|
||
(ACTION CLOSET-STUFF-F)>
|
||
|
||
<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
|
||
(IN ROOMS)
|
||
(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.")
|
||
(FLAGS RLANDBIT ONBIT)
|
||
(SOUTH TO GARAGE IF GARAGE-DOOR IS OPEN)
|
||
(OUT TO GARAGE IF GARAGE-DOOR IS OPEN)
|
||
(EAST TO OFFICE IF OFFICE-DOOR IS OPEN)
|
||
(NORTH TO HALL-3)
|
||
(WEST TO STORAGE-CLOSET IF STORAGE-DOOR IS OPEN)
|
||
(GLOBAL STORAGE-DOOR OFFICE-DOOR GARAGE-DOOR)
|
||
(LINE 2)
|
||
(STATION HALL-4)
|
||
(CORRIDOR 16)>
|
||
|
||
<OBJECT OFFICE-DOOR
|
||
(SYNONYM DOOR)
|
||
(ADJECTIVE OFFICE)
|
||
(DESC "office door")
|
||
(IN LOCAL-GLOBALS)
|
||
(FLAGS DOORBIT AN)
|
||
;(ACTION HIDE-LOOK-DOOR-F)>
|
||
[
|
||
<ROOM OFFICE
|
||
(IN ROOMS)
|
||
(DESC "office")
|
||
(SYNONYM OFFICE)
|
||
(FLAGS RLANDBIT ONBIT AN)
|
||
(ACTION OFFICE-F)
|
||
(EAST TO OFFICE-PORCH IF OFFICE-BACK-DOOR IS OPEN)
|
||
(OUT TO OFFICE-PORCH IF OFFICE-BACK-DOOR IS OPEN)
|
||
;(SOUTH TO W.C. IF W.C.-DOOR IS OPEN)
|
||
;(IN TO W.C. IF W.C.-DOOR IS OPEN)
|
||
(WEST TO HALL-4 IF OFFICE-DOOR IS OPEN)
|
||
(GLOBAL OFFICE-DOOR OFFICE-WINDOW ;PIECE-OF-WIRE ;PIECE-OF-PUTTY
|
||
BROKEN-GLASS OFFICE-BACK-DOOR ;W.C.-DOOR TELEPHONE CLOCK)
|
||
(LINE 2)
|
||
(STATION OFFICE)>
|
||
|
||
<ROUTINE OFFICE-F ("OPTIONAL" (RARG <>))
|
||
;<SETG WELCOMED T>
|
||
<COND (<AND <==? .RARG ,M-BEG>
|
||
,LINDER-FOLLOWS-YOU
|
||
<NOT <DOBJ? CLOCK-WIRES LINDER>>
|
||
<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>)
|
||
(<==? .RARG ,M-LOOK>
|
||
<TELL
|
||
"This is obviously the office of Mr. Linder's company, Pacific Trade
|
||
Associates. ">
|
||
<OFFICE-DESK-F ,M-OBJDESC>
|
||
<TELL
|
||
"Behind it is a large ornately-carved chair, like a cruiser escorting a
|
||
battle ship">
|
||
<COND (<IN? ,LINDER ,CARVED-CHAIR>
|
||
<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>
|
||
<COND (<FSET? ,OFFICE-DOOR ,OPENBIT>
|
||
<TELL
|
||
"The door to the interior hallway is open." CR>)>
|
||
;<COND (<FSET? ,W.C.-DOOR ,OPENBIT>
|
||
<TELL
|
||
"The door to a small lavatory is open." CR>)>
|
||
<COND (<FSET? ,OFFICE-BACK-DOOR ,OPENBIT>
|
||
<TELL
|
||
"The door leading outside is open." CR>)>
|
||
<COND (<FSET? ,OFFICE-WINDOW ,OPENBIT>
|
||
<TELL
|
||
"The window facing the back yard is open." CR>)>
|
||
<RTRUE>)>>
|
||
|
||
<OBJECT OFFICE-DESK
|
||
(IN OFFICE)
|
||
(ADJECTIVE LARGE MASSIVE OFFICE)
|
||
(SYNONYM DESK)
|
||
(DESC "desk")
|
||
(DESCFCN OFFICE-DESK-F)
|
||
(FLAGS NDESCBIT SURFACEBIT CONTBIT OPENBIT FURNITURE)
|
||
(ACTION OFFICE-DESK-F)
|
||
(CAPACITY 25)>
|
||
|
||
<ROUTINE OFFICE-DESK-F ("OPTIONAL" (ARG <>))
|
||
<COND (<OR <==? .ARG ,M-OBJDESC>
|
||
<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.">
|
||
<COND (<==? ,MONICA-TIED-TO ,OFFICE-DESK>
|
||
<TELL
|
||
" Monica is fastened to the desk with a " D ,MONICA-TIED-WITH ".">)>
|
||
<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
|
||
(IN OFFICE-DESK)
|
||
(SYNONYM PILES LETTER SOUVENIR STUFF)
|
||
(DESC "stuff on the desk")
|
||
(FLAGS NDESCBIT TRYTAKEBIT READBIT)
|
||
(ACTION CLOSET-STUFF-F)>
|
||
|
||
<OBJECT NEWSPAPERS
|
||
(IN OFFICE-DESK)
|
||
(SYNONYM NEWSPAPERS ;PAPERS)
|
||
(DESC "newspaper")
|
||
(FLAGS NDESCBIT TRYTAKEBIT READBIT)
|
||
(ACTION NEWSPAPERS-F)>
|
||
|
||
<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
|
||
(IN OFFICE)
|
||
(DESC "carved chair")
|
||
(ADJECTIVE CARVED OFFICE ORNATE ARM LARGE)
|
||
(SYNONYM CHAIR THRONE)
|
||
(FLAGS NDESCBIT TRYTAKEBIT SURFACEBIT CONTBIT OPENBIT
|
||
VEHBIT FURNITURE)
|
||
(CAPACITY 30)
|
||
(GENERIC GENERIC-CHAIR-F)
|
||
(DESCFCN CARVED-CHAIR-F)
|
||
(ACTION CARVED-CHAIR-F)>
|
||
|
||
<ROUTINE CARVED-CHAIR-F ("OPTIONAL" (ARG <>))
|
||
<COND (<==? .ARG ,M-OBJDESC> <PRINT-CONT ,CARVED-CHAIR> <RTRUE>)
|
||
(.ARG <RFALSE>)
|
||
(<OR <VERB? EXAMINE>
|
||
<AND <VERB? SEARCH-OBJECT-FOR> ;<IOBJ? GLOBAL-HOLE>>>
|
||
<COND ;(<OR <VERB? SEARCH-OBJECT-FOR>
|
||
<==? ,HOLE <FIRST? ,CARVED-CHAIR>>>
|
||
<FCLEAR ,HOLE ,INVISIBLE>
|
||
<FCLEAR ,GLOBAL-HOLE ,INVISIBLE>
|
||
<TELL
|
||
"The chair looks ancient, but it has a fresh hole in it, small and round."
|
||
CR>)
|
||
(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>)>)
|
||
(<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>)>>
|
||
|
||
;<OBJECT HOLE
|
||
(IN CARVED-CHAIR)
|
||
(DESC "hole")
|
||
(ADJECTIVE DEEP ;BULLET)
|
||
(SYNONYM HOLE HOLES)
|
||
(FLAGS NDESCBIT INVISIBLE)
|
||
(ACTION HOLE-F)>
|
||
|
||
;<ROUTINE HOLE-F ();"?easy=not fm wdo, medium=if analyze, hard=?"
|
||
<COND (<VERB? EXAMINE>
|
||
<TELL
|
||
"The hole is new, from the look of the wooden splinters, and about the size
|
||
and shape of a bullet.">
|
||
<COND (<==? ,P-ADVERB ,W?CAREFULLY> ;<0? ,DIFFICULTY>
|
||
<TELL
|
||
" From the angle of the hole, you can tell that the bullet came from the
|
||
direction of the clock.">)>
|
||
<CRLF>)
|
||
;(<VERB? ANALYZE>
|
||
<TELL
|
||
"From the look of it, the bullet did not come from the window." CR>)>>
|
||
|
||
;<OBJECT GLOBAL-HOLE
|
||
(IN GLOBAL-OBJECTS)
|
||
(DESC "hole")
|
||
(SYNONYM HOLE HOLES)
|
||
(FLAGS ;INVISIBLE)
|
||
;(ACTION HOLE-F)>
|
||
|
||
<OBJECT WOODEN-CHAIR
|
||
(IN OFFICE)
|
||
(DESC "wooden chair")
|
||
(ADJECTIVE SIMPLE WOODEN WOOD CUSTOMER)
|
||
(SYNONYM CHAIR)
|
||
(FLAGS NDESCBIT TRYTAKEBIT SURFACEBIT CONTBIT OPENBIT
|
||
VEHBIT FURNITURE)
|
||
(CAPACITY 20)
|
||
(GENERIC GENERIC-CHAIR-F)
|
||
(ACTION 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>)>>
|
||
|
||
<OBJECT GENERIC-CHAIR
|
||
(IN GLOBAL-OBJECTS)
|
||
(DESC "chair")
|
||
(SYNONYM $GNRC)>
|
||
|
||
<ROUTINE GENERIC-CHAIR-F (OBJ)
|
||
<COND (<AND <VERB? DISEMBARK> <NOT <IN? <LOC ,WINNER> ,ROOMS>>>
|
||
<LOC ,WINNER>)
|
||
(<VERB? ASK-ABOUT ASK-CONTEXT-ABOUT FIND TELL-ME WHAT>
|
||
,GENERIC-CHAIR)
|
||
(<NOT <OR <EQUAL? ,HERE ,MONICA-ROOM ,LINDER-ROOM ,LIVING-ROOM>
|
||
<EQUAL? ,HERE ,DINING-ROOM ,KITCHEN ,OFFICE>>>
|
||
<SETG P-WON <>>
|
||
<TELL "(You can't see any " "chair" " here!)" CR>
|
||
,NOT-HERE-OBJECT)>>
|
||
|
||
<OBJECT FILE-CABINET
|
||
(IN OFFICE)
|
||
(DESC "file cabinet")
|
||
(ADJECTIVE FILE OFFICE)
|
||
(SYNONYM CABINET)
|
||
(FLAGS NDESCBIT CONTBIT FURNITURE)
|
||
(CAPACITY 33)>
|
||
|
||
<OBJECT PAPERS
|
||
(IN FILE-CABINET)
|
||
(DESC "lot of business papers")
|
||
(FDESC "The cabinet is filled with a lot of business papers.")
|
||
(ADJECTIVE BUSINESS OFFICE)
|
||
(SYNONYM LOT PAPERS PAPER)
|
||
(FLAGS TRYTAKEBIT READBIT ;BURNBIT ;NDESCBIT)
|
||
(ACTION PAPERS-F)>
|
||
|
||
<ROUTINE PAPERS-F ()
|
||
<COND (<VERB? ;BURN EXAMINE LOOK-INSIDE READ TAKE>
|
||
<FSET ,PAPERS ,TOUCHBIT>
|
||
<COND (<LOC ,LINDER> <PERFORM ,V?ASK-ABOUT ,LINDER ,PAPERS> <RTRUE>)
|
||
(T
|
||
<TELL "You look ">
|
||
<COND (<==? ,P-ADVERB ,W?CAREFULLY>
|
||
<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
|
||
(IN OFFICE)
|
||
(DESC "picture")
|
||
(ADJECTIVE FRAMED WOOD BLOCK OFFICE)
|
||
(SYNONYM PICTURE)
|
||
(FLAGS NDESCBIT)
|
||
;(ACTION OFFICE-PICTURE-F)>
|
||
|
||
;<OBJECT GLOBAL-CLOCK
|
||
(IN GLOBAL-OBJECTS)
|
||
(ADJECTIVE TALL CASE GRANDFATHER OFFICE)
|
||
(SYNONYM CLOCK)
|
||
(DESC "clock")
|
||
(ACTION GLOBAL-CLOCK-F)>
|
||
|
||
;<ROUTINE GLOBAL-CLOCK-F ()
|
||
<COND (<AND <VERB? ASK-ABOUT> <IOBJ? GLOBAL-CLOCK>>
|
||
<PERFORM ,V?ASK-ABOUT ,PRSO ,CLOCK>
|
||
<RTRUE>)>>
|
||
|
||
<OBJECT CLOCK
|
||
(IN LOCAL-GLOBALS ;OFFICE) ;"So that SHOOT LOCK works on doors."
|
||
(ADJECTIVE TALL ;CASE GRANDFATHER CLOCK ;OFFICE)
|
||
(SYNONYM CLOCK CASE LOCK DOOR)
|
||
(DESC "grandfather clock")
|
||
(FLAGS FURNITURE NDESCBIT LOCKED CONTBIT)
|
||
(GENERIC LOCKED-F)
|
||
(SIZE 99)
|
||
(CAPACITY 9)
|
||
(ACTION CLOCK-F)>
|
||
|
||
<ROUTINE CLOCK-F ()
|
||
<COND (<AND <NOT <EQUAL? ,HERE ,OFFICE>>
|
||
<NOT <VERB? ASK-ABOUT ASK-CONTEXT-ABOUT>>
|
||
<NOT <VERB? FIND TELL-ME WHAT>>>
|
||
<SETG P-WON <>>
|
||
<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 ">
|
||
<COND (<L? ,PRESENT-TIME 720> <TELL "Friday the 18">)
|
||
(T <TELL "Saturday the 19">)>
|
||
<TELL "th, the moon is just past full, and the time is now ">
|
||
<TIME-PRINT ,PRESENT-TIME>
|
||
<COND (,SHOT-FIRED
|
||
<FCLEAR ,CLOCK-POWDER ,INVISIBLE>
|
||
;<FCLEAR ,CLOCK-POWDER ,NDESCBIT>
|
||
<COND (<==? ,P-ADVERB ,W?CAREFULLY>
|
||
<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>
|
||
<NOT <FSET? ,CLOCK ,LOCKED>>>
|
||
<COND (<AND <VERB? LOOK-INSIDE SEARCH> <NOT <FSET? ,CLOCK ,OPENBIT>>>
|
||
<TELL "You'll have to open it first." CR>
|
||
<RTRUE>)>
|
||
<FSET ,CLOCK ,OPENBIT>
|
||
<TELL "As you'd expect, the case holds a long pendulum.">
|
||
<COND (<IN? ,INSIDE-GUN ,CLOCK>
|
||
<FCLEAR ,INSIDE-GUN ,INVISIBLE>
|
||
<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>)
|
||
(<AND <VERB? LOCK> <==? ,PRSO ,CLOCK>>
|
||
<COND (<IN? ,CLOCK-KEY ,WINNER>
|
||
<FSET ,CLOCK ,LOCKED>
|
||
<SETG USED-CLOCK-KEY T>
|
||
<TELL "The door of the clock is now locked." CR>)
|
||
(T <TELL "You don't have the right key." CR>)>
|
||
<RTRUE>)
|
||
(<AND <VERB? UNLOCK> <==? ,PRSO ,CLOCK>>
|
||
<COND (<IN? ,CLOCK-KEY ,WINNER>
|
||
<FCLEAR ,CLOCK ,LOCKED>
|
||
<SETG USED-CLOCK-KEY T>
|
||
<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
|
||
(IN OFFICE)
|
||
(DESC "keyhole")
|
||
;(ADJECTIVE KEY)
|
||
(SYNONYM ;HOLE KEYHOLE ;HOLES)
|
||
(FLAGS NDESCBIT CONTBIT OPENBIT)
|
||
(CAPACITY 1)
|
||
(ACTION KEY-HOLE-F)>
|
||
|
||
<ROUTINE KEY-HOLE-F ()
|
||
<COND (<AND <EQUAL? ,WINNER ,PLAYER>
|
||
<VERB? BRUSH EXAMINE KISS LOOK-INSIDE PUT RUB RUB-OVER SMELL>>
|
||
<SETG PLAYER-NEAR-SHOT ,PRESENT-TIME>)>
|
||
<COND (<VERB? EXAMINE>
|
||
<TELL
|
||
"It's an impressive keyhole, wrapped in a fine brass escutcheon.">
|
||
<COND (,SHOT-FIRED
|
||
<FCLEAR ,CLOCK-POWDER ,INVISIBLE>
|
||
<TELL " There is some kind of powder around it.">)>
|
||
<CRLF>)
|
||
(<AND <VERB? LOOK-INSIDE> <NOT <FSET? ,CLOCK ,OPENBIT>>>
|
||
<TELL "You can't see anything in there but darkness." CR>)
|
||
(<AND <VERB? PUT> ,LINDER-FOLLOWS-YOU>
|
||
<TELL
|
||
"Linder says, \"I wish you'd pay attention to me instead of that clock.\""
|
||
CR>)>>
|
||
|
||
<OBJECT POWDER ;"Need this for ANALYZE x FOR POWDER"
|
||
(IN GLOBAL-OBJECTS)
|
||
(ADJECTIVE ;CLOCK GUN)
|
||
(SYNONYM POWDER GUNPOWDER)
|
||
(DESC "powder")
|
||
;(FLAGS INVISIBLE)
|
||
;(ACTION POWDER-F)>
|
||
|
||
;<ROUTINE POWDER-F ()
|
||
<COND (<AND <VERB? ANALYZE> <==? <META-LOC ,WINNER> ,OFFICE>>
|
||
<COND (<DOBJ? POWDER> <PERFORM ,V?ANALYZE ,CLOCK-POWDER ,PRSI>)
|
||
(<IOBJ? POWDER> <PERFORM ,V?ANALYZE ,PRSO ,CLOCK-POWDER>)>
|
||
<RTRUE>)>>
|
||
|
||
<OBJECT CLOCK-POWDER
|
||
(IN OFFICE)
|
||
(ADJECTIVE CLOCK GUN)
|
||
(SYNONYM SAMPLE POWDER)
|
||
(DESC "sample of powder")
|
||
(FLAGS NDESCBIT TAKEBIT INVISIBLE)
|
||
(SIZE 1)
|
||
(ACTION CLOCK-POWDER-F)>
|
||
|
||
<ROUTINE CLOCK-POWDER-F ()
|
||
<COND (<VERB? ANALYZE>
|
||
<FCLEAR ,CLOCK-POWDER ,NDESCBIT>
|
||
<FCLEAR ,CLOCK-POWDER ,INVISIBLE>
|
||
<DO-ANALYZE>)
|
||
(<VERB? EXAMINE>
|
||
<TELL "It looks like cheap gunpowder." CR>)
|
||
(<VERB? SMELL>
|
||
<TELL "It has a pungent smell, like cheap gunpowder." CR>)
|
||
(<AND <==? 1 <GET ,P-PRSO 0>> ;"only one dir. object"
|
||
<VERB? TAKE>>
|
||
<FCLEAR ,CLOCK-POWDER ,INVISIBLE>
|
||
<FCLEAR ,CLOCK-POWDER ,NDESCBIT>
|
||
<RFALSE>)>>
|
||
|
||
<OBJECT CLOCK-WIRES
|
||
(IN OFFICE)
|
||
(DESC "pair of green wires")
|
||
(ADJECTIVE GREEN)
|
||
(SYNONYM PAIR WIRES)
|
||
(FLAGS NDESCBIT)
|
||
(GENERIC GENERIC-WIRE-F)
|
||
(ACTION CLOCK-WIRES-F)>
|
||
|
||
<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-CARPET
|
||
(IN OFFICE)
|
||
(SYNONYM CARPET RUG)
|
||
(DESC "carpet")
|
||
(FLAGS NDESCBIT)
|
||
;(ACTION LIBRARY-CARPET-F)>
|
||
|
||
<OBJECT OFFICE-BUTTON
|
||
(IN OFFICE)
|
||
(ADJECTIVE BUTLER HIS OFFICE)
|
||
(SYNONYM BUTTON)
|
||
(DESC "butler's button")
|
||
(FLAGS NDESCBIT)
|
||
(ACTION OFFICE-BUTTON-F)>
|
||
|
||
<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>
|
||
<COND (,BUTTON-FIXED
|
||
<PERFORM ,V?PUSH ,BUTTON>
|
||
<RTRUE>)
|
||
(,SHOT-FIRED
|
||
<SETG PLAYER-PUSHED-BUTTON T>
|
||
<TELL
|
||
"You hear a clicking sound from the direction of the clock." CR>)
|
||
(<==? <META-LOC ,LINDER> ,OFFICE>
|
||
<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
|
||
<SETG PLAYER-PUSHED-BUTTON T>
|
||
<FIRE-SHOT>
|
||
<RTRUE>)>)>>
|
||
|
||
<OBJECT LOUNGE
|
||
(IN OFFICE)
|
||
(DESC "lounge")
|
||
(ADJECTIVE GREEN VELVET LUMPY OFFICE)
|
||
(SYNONYM LOUNGE)
|
||
(CAPACITY 40)
|
||
(FLAGS NDESCBIT SURFACEBIT CONTBIT OPENBIT FURNITURE VEHBIT)>
|
||
]
|
||
;<OBJECT W.C.-DOOR
|
||
(SYNONYM DOOR)
|
||
(ADJECTIVE POWDER ROOM)
|
||
(DESC "powder-room door")
|
||
(IN LOCAL-GLOBALS)
|
||
(FLAGS DOORBIT)
|
||
;(ACTION HIDE-LOOK-DOOR-F)>
|
||
|
||
;<ROOM W.C.
|
||
(IN ROOMS)
|
||
(DESC "powder room")
|
||
;(SYNONYM ROOM)
|
||
;(ADJECTIVE POWDER)
|
||
(FLAGS RLANDBIT ONBIT)
|
||
;(ACTION LIBRARY-BALCONY-F)
|
||
(NORTH TO OFFICE IF POWDER-ROOM-DOOR IS OPEN)
|
||
(OUT TO OFFICE IF POWDER-ROOM-DOOR IS OPEN)
|
||
(GLOBAL POWDER-ROOM-DOOR)
|
||
(LINE 2)
|
||
(STATION OFFICE)>
|
||
|
||
<OBJECT GARAGE-DOOR
|
||
(SYNONYM DOOR LOCK)
|
||
(ADJECTIVE GARAGE)
|
||
(DESC "garage door")
|
||
(IN LOCAL-GLOBALS)
|
||
(FLAGS LOCKED DOORBIT)
|
||
(GENERIC LOCKED-F)
|
||
;(ACTION BACK-DOOR-F)>
|
||
[
|
||
<ROOM GARAGE
|
||
(IN ROOMS)
|
||
(DESC "garage")
|
||
(SYNONYM GARAGE)
|
||
(FLAGS RLANDBIT ONBIT)
|
||
(ACTION GARAGE-F)
|
||
(NORTH TO HALL-4 IF GARAGE-DOOR IS OPEN)
|
||
(WEST TO DRIVEWAY)
|
||
(EAST TO WORKSHOP IF WORKSHOP-DOOR IS OPEN)
|
||
(GLOBAL GARAGE-DOOR WORKSHOP-DOOR)
|
||
(LINE 2)
|
||
(STATION GARAGE)
|
||
(CORRIDOR 8)>
|
||
|
||
<ROUTINE GARAGE-F ("OPTIONAL" (ARG <>))
|
||
<COND (<==? .ARG ,M-LOOK>
|
||
<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. ">
|
||
<COND (<FSET? ,MONICA-CAR ,INVISIBLE>
|
||
<COND (<FSET? ,MONICA-CAR ,TOUCHBIT>
|
||
<TELL "The red MG is gone.">)
|
||
(T <TELL
|
||
"Oil spots on the floor show that a car is often parked here.">)>)
|
||
(T
|
||
<COND (<FSET? ,MONICA-CAR ,TOUCHBIT>
|
||
<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
|
||
(IN GARAGE)
|
||
(DESC "blue sedan")
|
||
;(FDESC "The other car is a dark blue Bentley 3.5-liter sedan.")
|
||
;(DESCFCN LINDER-CAR-F)
|
||
(ADJECTIVE DARK BLUE LINDER HIS)
|
||
(SYNONYM CAR AUTO SEDAN BENTLEY)
|
||
(FLAGS NDESCBIT ;FURNITURE ;VEHBIT)
|
||
(GENERIC GENERIC-CAR-F)
|
||
(ACTION CAR-F)>
|
||
|
||
<OBJECT MONICA-CAR
|
||
(IN GARAGE)
|
||
(DESC "red sport car")
|
||
;(FDESC "One car is a sporty red MG convertible.")
|
||
;(DESCFCN MONICA-CAR-F)
|
||
(ADJECTIVE RED SPORT SPORTY MONICA HER)
|
||
(SYNONYM CAR AUTO CONVERTIBLE MG)
|
||
(FLAGS NDESCBIT ;FURNITURE)
|
||
(GENERIC GENERIC-CAR-F)
|
||
(ACTION CAR-F)>
|
||
|
||
<ROUTINE CAR-F ("OPTIONAL" (ARG <>))
|
||
<COND (<AND <DOBJ? MONICA-CAR> <FSET? ,MONICA-CAR ,INVISIBLE>>
|
||
<TELL "It's not here." CR>)
|
||
(<AND ,FILM-SEEN <DOBJ? MONICA-CAR> <VERB? RUB>>
|
||
<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
|
||
(IN GARAGE)
|
||
(DESC "car window")
|
||
(ADJECTIVE CAR)
|
||
(SYNONYM WINDOW)
|
||
(FLAGS NDESCBIT)
|
||
(ACTION CAR-WINDOW-F)>
|
||
|
||
<ROUTINE CAR-WINDOW-F ()
|
||
<COND (<NOT <EQUAL? ,HERE ,GARAGE>>
|
||
<SETG P-WON <>>
|
||
<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 ">
|
||
<COND (<TANDY?> <TELL "eye">)
|
||
(T <TELL "dick">)>
|
||
<TELL "s, not famous police detectives!" CR>)>>
|
||
|
||
<OBJECT GENERIC-CAR
|
||
(IN GLOBAL-OBJECTS)
|
||
(DESC "car")
|
||
(SYNONYM $GNRC)>
|
||
|
||
<ROUTINE GENERIC-CAR-F (OBJ)
|
||
<COND (<EQUAL? ,HERE ,GARAGE> <RFALSE>)
|
||
(<VERB? ASK-ABOUT ASK-CONTEXT-ABOUT FIND TELL-ME WHAT>
|
||
,GENERIC-CAR)
|
||
(T
|
||
<SETG P-WON <>>
|
||
<TELL "(You can't see any " "car" " here!)" CR>
|
||
,NOT-HERE-OBJECT)>>
|
||
]
|
||
<OBJECT WORKSHOP-DOOR
|
||
(SYNONYM DOOR LOCK)
|
||
(ADJECTIVE WORKSHOP WORK SHOP)
|
||
(DESC "workshop door")
|
||
(IN LOCAL-GLOBALS)
|
||
(FLAGS LOCKED DOORBIT)
|
||
(GENERIC LOCKED-F)
|
||
;(ACTION HIDE-LOOK-DOOR-F)>
|
||
[
|
||
<ROOM WORKSHOP
|
||
(IN ROOMS)
|
||
(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.")
|
||
(FLAGS RLANDBIT ONBIT)
|
||
(WEST TO GARAGE IF WORKSHOP-DOOR IS OPEN)
|
||
(GLOBAL WORKSHOP-DOOR)
|
||
(LINE 2)
|
||
(STATION GARAGE)>
|
||
|
||
<OBJECT WORKSHOP-WIRE
|
||
(IN WORKSHOP)
|
||
(DESC "other wire")
|
||
(ADJECTIVE OTHER BROWN RED ORANGE YELLOW BLUE VIOLET GREY)
|
||
(SYNONYM WIRE WIRES SPOOL SPOOLS)
|
||
(FLAGS NDESCBIT AN ;DUPLICATE)
|
||
(GENERIC GENERIC-WIRE-F)
|
||
(ACTION WORKSHOP-WIRE-F)>
|
||
|
||
<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
|
||
(IN WORKSHOP)
|
||
(DESC "green wire spool")
|
||
(ADJECTIVE GREEN WIRE)
|
||
(SYNONYM WIRE SPOOL)
|
||
(FLAGS NDESCBIT)
|
||
(GENERIC GENERIC-WIRE-F)
|
||
(ACTION SPOOL-OF-WIRE-F)>
|
||
|
||
<ROUTINE SPOOL-OF-WIRE-F ()
|
||
<COND (<AND <VERB? COMPARE>
|
||
<OR <IOBJ? PIECE-OF-WIRE> <DOBJ? PIECE-OF-WIRE>>>
|
||
<COND (<==? ,P-ADVERB ,W?CAREFULLY>
|
||
<SETG WIRE-MATCHED T>
|
||
<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
|
||
(IN GLOBAL-OBJECTS)
|
||
(DESC "green wire")
|
||
;(ADJECTIVE GREEN)
|
||
(SYNONYM $GNRC)>
|
||
|
||
<OBJECT GENERIC-WIRE
|
||
(IN GLOBAL-OBJECTS)
|
||
(DESC "wire")
|
||
(SYNONYM $GNRC)>
|
||
|
||
<ROUTINE GENERIC-WIRE-F (OBJ)
|
||
<COND (<EQUAL? ,HERE ,WORKSHOP>
|
||
<COND (<VERB? ;EXAMINE FIND ;FOLLOW> ,WORKSHOP-WIRE)>)
|
||
(<IN? .OBJ ,GLOBAL-OBJECTS> <RFALSE>)
|
||
(<VERB? ASK-ABOUT ASK-CONTEXT-ABOUT ASK-FOR ASK-CONTEXT-FOR
|
||
FIND TELL-ME WHAT
|
||
GIVE SGIVE SEARCH-OBJECT-FOR TAKE>
|
||
<COND (<OR <EQUAL? .OBJ ,PIECE-OF-WIRE ,SPOOL-OF-WIRE>
|
||
<EQUAL? .OBJ ,CLOCK-WIRES ,GENERIC-GREEN-WIRE>>
|
||
,GENERIC-GREEN-WIRE)
|
||
(T ,GENERIC-WIRE)>)
|
||
(T
|
||
<SETG P-WON <>>
|
||
<TELL "(You can't see any " "wire" " here!)" CR>
|
||
,NOT-HERE-OBJECT)>>
|
||
|
||
<OBJECT JUNCTION-BOX
|
||
(IN WORKSHOP)
|
||
(ADJECTIVE JUNCTION)
|
||
(SYNONYM BOX)
|
||
(DESC "junction box")
|
||
(FLAGS NDESCBIT)
|
||
(ACTION JUNCTION-BOX-F)>
|
||
|
||
<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 TOOLS-1
|
||
(IN WORKSHOP)
|
||
(SYNONYM TOOLS SAW HAMMER ROPE)
|
||
(DESC "collection of carpentry tools")
|
||
(FLAGS NDESCBIT ;DUPLICATE)
|
||
(ACTION TOOLS-F)>
|
||
|
||
<OBJECT SAW
|
||
(IN WORKSHOP)
|
||
(SYNONYM SAW)
|
||
(DESC "saw")
|
||
(FLAGS NDESCBIT)
|
||
(ACTION TOOLS-F)>
|
||
|
||
<OBJECT HAMMER
|
||
(IN WORKSHOP)
|
||
(SYNONYM HAMMER)
|
||
(DESC "hammer")
|
||
(FLAGS NDESCBIT)
|
||
(ACTION TOOLS-F)>
|
||
|
||
<OBJECT ROPE
|
||
(IN WORKSHOP)
|
||
(SYNONYM ROPE)
|
||
(DESC "rope")
|
||
(FLAGS NDESCBIT)
|
||
(ACTION TOOLS-F)>
|
||
|
||
;<OBJECT TOOLS-2
|
||
(IN WORKSHOP)
|
||
(SYNONYM SPADE HOE RAKE HOSE)
|
||
(DESC "collection of garden tools")
|
||
(FLAGS NDESCBIT ;DUPLICATE)
|
||
(ACTION TOOLS-F)>
|
||
|
||
<OBJECT SPADE
|
||
(IN WORKSHOP)
|
||
(SYNONYM SPADE)
|
||
(DESC "spade")
|
||
(FLAGS NDESCBIT)
|
||
(ACTION TOOLS-F)>
|
||
|
||
<OBJECT HOE
|
||
(IN WORKSHOP)
|
||
(SYNONYM HOE)
|
||
(DESC "hoe")
|
||
(FLAGS NDESCBIT)
|
||
(ACTION TOOLS-F)>
|
||
|
||
<OBJECT RAKE
|
||
(IN WORKSHOP)
|
||
(SYNONYM RAKE)
|
||
(DESC "rake")
|
||
(FLAGS NDESCBIT)
|
||
(ACTION TOOLS-F)>
|
||
|
||
<OBJECT HOSE
|
||
(IN WORKSHOP)
|
||
(SYNONYM HOSE)
|
||
(DESC "hose")
|
||
(FLAGS NDESCBIT)
|
||
(ACTION TOOLS-F)>
|
||
|
||
<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
|
||
(IN WORKSHOP)
|
||
(SYNONYM SHELF SHELVES)
|
||
(DESC "shelf")
|
||
(FLAGS NDESCBIT OPENBIT CONTBIT SURFACEBIT)
|
||
(CAPACITY 20)
|
||
;(ACTION S-SHELVES-F)>
|
||
]
|
||
|
||
"Other stuff"
|
||
|
||
<OBJECT AIR
|
||
(IN GLOBAL-OBJECTS)
|
||
(DESC "air")
|
||
(SYNONYM AIR WIND BREEZE)
|
||
(FLAGS AN)
|
||
(ACTION AIR-F)>
|
||
|
||
<ROUTINE AIR-F ()
|
||
<COND (<VERB? SMELL>
|
||
<COND (<EQUAL? ,HERE ,FRONT-YARD>
|
||
<TELL
|
||
"The smell of herbs permeates everything." CR>)
|
||
(<EQUAL? ,HERE ,FRONT-PORCH>
|
||
<TELL
|
||
"A breeze carries the faint smell of herbs through the air." CR>)
|
||
(<==? <GETP ,HERE ,P?LINE> ,OUTSIDE-LINE-C>
|
||
<TELL "The air is clear and fresh here." CR>)
|
||
(<FRESH-AIR? ,HERE> <RTRUE>)
|
||
(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> ;"Door EXIT"
|
||
<FSET? <SET O <GETB .TBL ,DEXITOBJ>>
|
||
,OPENBIT>>
|
||
<TELL
|
||
"There is a pleasant breeze coming through the " D .O "." CR>
|
||
<RETURN>)>)>>>
|
||
[
|
||
<GLOBAL COR-1
|
||
<PTABLE P?NORTH P?SOUTH
|
||
ROCK-GARDEN BACK-YARD OFFICE-PORCH OFFICE-PATH 0>>
|
||
|
||
<GLOBAL COR-2
|
||
<PTABLE P?EAST P?WEST
|
||
OFFICE-PATH SIDE-YARD DRIVEWAY-ENTRANCE 0>>
|
||
|
||
<GLOBAL COR-4
|
||
<PTABLE P?SOUTH P?NORTH
|
||
LIMBO DRIVEWAY-ENTRANCE DRIVEWAY FRONT-PORCH 0>>
|
||
|
||
<GLOBAL COR-8
|
||
<PTABLE P?EAST P?WEST
|
||
GARAGE DRIVEWAY 0>>
|
||
|
||
<GLOBAL COR-16
|
||
<PTABLE P?NORTH P?SOUTH
|
||
HALL-1 HALL-2 HALL-3 HALL-4 0>>
|
||
|
||
;<GLOBAL COR-32
|
||
<PTABLE P?EAST P?WEST
|
||
LIVING-ROOM DINING-ROOM 0>>
|
||
]
|
||
"Routines to do looking down corridors"
|
||
|
||
<ROUTINE CORRIDOR-LOOK ("OPTIONAL" (ITM <>) "AUX" C Z COR VAL (FOUND <>))
|
||
<COND (<SET C <GETP ,HERE ,P?CORRIDOR>>
|
||
<REPEAT ()
|
||
<COND (<NOT <L? <SET Z <- .C 16>> 0>>
|
||
<SET COR ,COR-16>)
|
||
(<NOT <L? <SET Z <- .C 8>> 0>>
|
||
<SET COR ,COR-8>)
|
||
(<NOT <L? <SET Z <- .C 4>> 0>>
|
||
<SET COR ,COR-4>)
|
||
(<NOT <L? <SET Z <- .C 2>> 0>>
|
||
<SET COR ,COR-2>)
|
||
(<NOT <L? <SET Z <- .C 1>> 0>>
|
||
<SET COR ,COR-1>)
|
||
(T <RETURN>)>
|
||
<SET VAL <CORRIDOR-CHECK .COR .ITM>>
|
||
<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>)>)
|
||
(<AND <FSET? .OBJ ,PERSON>
|
||
<NOT <IN-MOTION? .OBJ>>
|
||
<NOT <FSET? .OBJ ,INVISIBLE>>>
|
||
<COND (<AND <==? .OBJ ,STILES> ,DUFFY-WITH-STILES>
|
||
<SETG SEEN-DUFFY? T>
|
||
<TELL "Sgt. Duffy, with ">
|
||
<COND (,MET-STILES? <TELL "Stiles">)
|
||
(T <TELL "someone">)>
|
||
<TELL " in tow,">)
|
||
(<NOT <FSET? .OBJ ,TOUCHBIT>>
|
||
<TELL "Someone">)
|
||
(T <TELL D .OBJ>)>
|
||
<TELL " is ">
|
||
<COND (<OUTSIDE? .RM>
|
||
<TELL "off">)
|
||
(T <TELL "down the hall">)>
|
||
<TELL " to ">
|
||
<DIR-PRINT <GET .COR .PAST>>
|
||
<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))
|
||
<SET COR <GET-COR <BAND <GETP .THERE ,P?CORRIDOR>
|
||
<GETP .HERE ,P?CORRIDOR>>>>
|
||
<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)
|
||
(<==? .NUM 2> ,COR-2)
|
||
(<==? .NUM 4> ,COR-4)
|
||
(<==? .NUM 8> ,COR-8)
|
||
(T ,COR-16)
|
||
;(<==? .NUM 32> ,COR-32)>>
|