suspect/places.zil

2911 lines
80 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"SEARCH <ROOM "
"PLACES for M3
Copyright (C) 1984 Infocom, Inc. All rights reserved."
"Rapid Transit Line Definitions and Identifiers"
<CONSTANT HALL-LINE-C 0>
<CONSTANT BALLROOM-LINE-C 1>
<CONSTANT EAST-HALL-LINE-C 2>
<CONSTANT GARAGE-LINE-C 3>
<CONSTANT OUTSIDE-LINE-C 4>
<CONSTANT LINES 5>
<OBJECT ROOMS>
\
<ROOM CIRCLE
(IN ROOMS)
(SYNONYM DRIVEWAY CIRCLE)
(ADJECTIVE CIRCULAR)
(DESC "Circular Driveway")
(LDESC
"This is the circular driveway in front of the house. Many cars are parked
here, and the drive is somewhat blocked. To the south is a stand of oaks,
to the north is the front porch of the house. Piled along the border of
the driveway are hundreds of pumpkins. Many of them are carved and lighted,
others unadorned.")
(NORTH TO PORCH)
(UP TO PORCH)
(EAST TO OUTSIDE)
(WEST TO WEST-OF-HOUSE)
(STATION CIRCLE)
(LINE 4 ;OUTSIDE-LINE-C)
(PSEUDO "OAKS" OAKS-PSEUDO)>
<ROUTINE OAKS-PSEUDO ()
<COND (<VERB? EXAMINE>
<TELL
"The oaks are ancient, stately, and wet." CR>)>>
<OBJECT PUMPKIN
(IN CIRCLE)
(DESC "pumpkin")
(SYNONYM PUMPKIN O\'LANTERN)
(ADJECTIVE JACK)
(FLAGS NDESCBIT TRYTAKEBIT TAKEBIT)
(ACTION PUMPKIN-F)>
<ROUTINE PUMPKIN-F ()
<COND (<VERB? EXAMINE>
<TELL
"There are hundreds of them. Grotesque demon faces conceal themselves in
the pile, and leering skulls stare this way and that. Some of the
candles have gone out from the rain, and those pumpkins sit forlorn and
wet, huddling together for warmth." CR>)
(<VERB? TAKE>
<TELL
"Taking a pumpkin from the pile could bring them all crashing down." CR>)>>
<ROOM PORCH
(IN ROOMS)
(SYNONYM PORCH)
(ADJECTIVE FRONT)
(DESC "Front Porch")
(LDESC
"This is a screened porch covering much of the front of the house.
There are potted plants and lawn chairs arranged to suggest
conversational groupings. To the south you can see the circular
driveway, and beyond, barely visible in the rain and fog, is
a stand of oaks which screen the house on this side.
The front lights are on, and the doorbell to the left of the front
door is clearly visible.")
(NORTH TO HALL IF FRONT-DOOR IS OPEN)
(IN TO HALL IF FRONT-DOOR IS OPEN)
(DOWN TO CIRCLE)
(SOUTH TO CIRCLE)
(STATION CIRCLE)
(GLOBAL FRONT-DOOR GLOBAL-CHAIR GLOBAL-PLANTS)
(LINE 4 ;OUTSIDE-LINE-C)
(PSEUDO "OAKS" OAKS-PSEUDO)>
<OBJECT FRONT-DOOR
(IN LOCAL-GLOBALS)
(DESC "front door")
(SYNONYM DOOR)
(ADJECTIVE FRONT)
(UNLOCK HALL)
(ACTION FRONT-DOOR-F)
(GENERIC GENERIC-STUFF-F)
(FLAGS DOORBIT NDESCBIT LOCKED)>
<ROUTINE FRONT-DOOR-F ()
<COND (<VERB? OPEN REPLY>
<COND (<AND <IN? ,NEW-ARRIVAL ,PORCH>
<EQUAL? ,HERE ,HALL>>
<FSET ,FRONT-DOOR ,OPENBIT>
<FCLEAR ,FRONT-DOOR ,LOCKED>
<NEW-ARRIVAL-STUFF ,PLAYER>
<RTRUE>)
(<AND <EQUAL? ,HERE ,PORCH>
<FSET? ,FRONT-DOOR ,LOCKED>>
<TELL
CTHE ,FRONT-DOOR " is locked. Perhaps if you rang " THE ,GLOBAL-DOORBELL
" someone would answer it." CR>)>)>>
<OBJECT GLOBAL-DOORBELL
(IN GLOBAL-OBJECTS)
(DESC "doorbell")
(SYNONYM DOORBELL BELL)
(FLAGS NDESCBIT)
(ACTION GLOBAL-DOORBELL-F)>
<ROUTINE TELL-ABOUT-DUFFY ()
<TELL
" A uniformed policeman accompanies " THE ,DETECTIVE ". \"This is " 'DUFFY ",
my assistant. You may say anything to him that you would say to me. "
,AMBULANCE-COMING ",\" adds " THE ,DETECTIVE "." CR>
<G-DETECTIVE ,G-REACHED>
<G-DUFFY ,G-REACHED>>
<GLOBAL AMBULANCE-COMING "The ambulance will be along soon">
<ROUTINE GLOBAL-DOORBELL-F ()
<COND (<VERB? REPLY>
<COND (<NOT ,NEW-ARRIVAL>
<TELL
"I didn't realize anyone had rung the doorbell recently." CR>)
(<EQUAL? ,HERE ,HALL>
<TELL
"That's the butler's job. But if you insist..." CR>
<COND (<IN? ,NEW-ARRIVAL ,PORCH>
<NEW-ARRIVAL-STUFF ,PLAYER>
<RTRUE>)
(ELSE
<THERE-DOESNT-SEEM>
<TELL "anyone there." CR>)>)
(ELSE
<TELL
,YOU-ARENT "at the front door." CR>)>)>>
<ROUTINE NEW-ARRIVAL-STUFF (WHO "AUX" L (FLG <>) (DET? <>) (ALI? <>) (PLA? <>))
<COND (,NEW-ARRIVAL
<FCLEAR ,FRONT-DOOR ,LOCKED>
<COND (<AND <EQUAL? ,HERE ,PORCH>
<NOT ,PLAYER-HIDING>>
<SET PLA? T>
<SETG NEW-ARRIVAL ,PLAYER>
<MOVE-PLAYER ,HALL>
<USL>)>
<COND (<IN? ,ALICIA ,PORCH>
<SET ALI? T>
<SETG NEW-ARRIVAL ,ALICIA>
<MOVE ,ALICIA ,HALL>
<ESTABLISH-GOAL ,ALICIA ,BALLROOM-5>)>
<COND (<IN? ,DETECTIVE ,PORCH>
<SET DET? T>
<SETG NEW-ARRIVAL ,DETECTIVE>
<MOVE ,DETECTIVE ,HALL>
<MOVE ,DUFFY ,HALL>
<NEW-SCRIPT ,DETECTIVE ,DETECTIVE-SCRIPT>
<NEW-SCRIPT ,DUFFY ,DUFFY-SCRIPT>)>
<COND (<EQUAL? .WHO ,PLAYER>
<SET FLG T>
<COND (.DET?
<TELL
CTHE ,DETECTIVE " enters the house, looking about cautiously. A few curt
words of greeting are uttered.">
<TELL-ABOUT-DUFFY>)>
<COND (.ALI?
<ALICIA-DESC-F>
<TELL
'ALICIA " enters the house, thanking you for answering the
doorbell." CR>
<WHERE-UPDATE ,ALICIA T>)>)
(T ;"BUTLER"
<SET L <LOC ,BUTLER>>
<COND (<AND <EQUAL? .L ,HALL ,PORCH>
<EQUAL? ,HERE ,HALL ,PORCH>>
<SET FLG T>
<TELL 'BUTLER " opens the front door.">
<COND (.PLA?
<TELL
" He ushers you into the hall. It is clear
from his demeanor that he remembers letting you in earlier in the evening,
but he suppresses his perplexity reasonably well.">)>
<COND (<OR .ALI? .DET?>
<TELL
" He greets ">
<COND (<AND .ALI? .DET?>
<TELL "everyone">)
(ELSE
<TELL D ,NEW-ARRIVAL>)>
<TELL ", his gorilla
costume eliciting a glance of suppressed amusement, and ushers the new
arrival into the front hall.">)>
<COND (.DET?
<TELL-ABOUT-DUFFY>)
(ELSE <CRLF>)>
<COND (.ALI?
<WHERE-UPDATE ,ALICIA T>)>)>)>
<SETG NEW-ARRIVAL <>>
.FLG)>>
<OBJECT DOORBELL
(IN PORCH)
(DESC "front doorbell")
(SYNONYM DOORBELL BELL)
(ADJECTIVE FRONT)
(FLAGS NDESCBIT)
(ACTION DOORBELL-F)>
<ROUTINE DOORBELL-F ()
<COND (<VERB? PUSH RING>
<SETG NEW-ARRIVAL ,PLAYER>
<ESTABLISH-GOAL ,BUTLER ,HALL T>
<TELL "The doorbell rings." CR>)>>
<ROOM HALL
(IN ROOMS)
(SYNONYM HALL ENTRY)
(ADJECTIVE FRONT ENTRY)
(DESC "Entry Hall")
(LDESC
"The front entry hall is dominated by two curving staircases which
lead up to the second floor of the house. These have velvet ribbons
across them to keep the guests downstairs. In addition to the front
door, which goes out to the porch, there are large double doors
leading north and smaller doors leading east and west. The
entry is sparsely furnished, imposing but not overpowering.")
(NORTH TO HALLWAY-9)
(EAST TO LIBRARY IF LH-DOOR IS OPEN)
(WEST TO MORNING-ROOM IF MH-DOOR IS OPEN)
(SOUTH TO PORCH IF FRONT-DOOR IS OPEN)
(NE "There is a red velvet ribbon politely barring the way.")
(NW "There is a red velvet ribbon politely barring the way.")
(UP "There is a red velvet ribbon politely barring the way.")
(LINE 0 ;HALL-LINE-C)
(STATION HALLWAY-9)
(GLOBAL WINDOW CURTAINS LH-DOOR MH-DOOR FRONT-DOOR STAIR VELVET-RIBBON)>
<OBJECT VELVET-RIBBON
(IN LOCAL-GLOBALS)
(DESC "velvet ribbon")
(SYNONYM RIBBON)
(ADJECTIVE RED VELVET)
(ACTION VELVET-RIBBON-F)
(FLAGS NDESCBIT)>
<ROUTINE VELVET-RIBBON-F ()
<COND (<VERB? THROUGH CUT>
<TELL "That would be bad manners." CR>)>>
<OBJECT LH-DOOR
(IN LOCAL-GLOBALS)
(DESC "east entry hall door")
(SYNONYM DOOR)
(ADJECTIVE EAST ENTRY HALL)
(UNLOCK LIBRARY)
(GENERIC GENERIC-STUFF-F)
(FLAGS DOORBIT NDESCBIT)>
<OBJECT MH-DOOR
(IN LOCAL-GLOBALS)
(DESC "west entry hall door")
(SYNONYM DOOR)
(ADJECTIVE WEST ENTRY HALL)
(UNLOCK MORNING-ROOM)
(GENERIC GENERIC-STUFF-F)
(FLAGS DOORBIT NDESCBIT)>
<ROOM MORNING-ROOM
(IN ROOMS)
(SYNONYM ROOM)
(ADJECTIVE MORNING)
(DESC "Morning Room")
(LDESC
"This room is set up for receiving guests, casual conversation, and
informal entertaining. Doors lead east to the entry hall and north to
the hallway. Several windows grace the southern wall, and a telephone
sits on a walnut secretary in one corner.")
(EAST TO HALL IF MH-DOOR IS OPEN)
(NORTH TO HALLWAY-3 IF MORNING-ROOM-DOOR IS OPEN)
(LINE 0 ;HALL-LINE-C)
(STATION HALLWAY-3)
(GLOBAL WINDOW CURTAINS TELEPHONE MORNING-ROOM-DOOR MH-DOOR)>
<OBJECT WRITING-DESK
(IN MORNING-ROOM)
(SYNONYM SECRETARY DESK)
(ADJECTIVE WRITING WALNUT)
(DESC "secretary")
(FLAGS NDESCBIT CONTBIT FURNITURE)
(CAPACITY 50)>
<OBJECT WINDOW-SEAT
(IN MORNING-ROOM)
(SYNONYM SEAT)
(ADJECTIVE WINDOW)
(DESC "window seat")
(DESCFCN WINDOW-SEAT-DESC-F)
(ACTION WINDOW-SEAT-F)
(FLAGS CONTBIT FURNITURE VEHBIT SURFACEBIT SEARCHBIT)
(CAPACITY 200)>
<GLOBAL THERE-IS "There is ">
<ROUTINE WINDOW-SEAT-DESC-F ("OPTIONAL" (RARG <>))
<TELL ,THERE-IS>
<COND (<FSET? ,WINDOW-SEAT ,OPENBIT>
<TELL "an open ">)
(ELSE
<TELL "a closed ">)>
<TELL 'WINDOW-SEAT " beneath one of the windows." CR>>
<ROUTINE WINDOW-SEAT-F ("OPTIONAL" (RARG <>))
<COND (<EQUAL? .RARG ,M-BEG>
<COND (<AND <VERB? STAND DISEMBARK>
<IN? ,WINNER ,WINDOW-SEAT>
,PLAYER-HIDING>
<FSET ,WINDOW-SEAT ,OPENBIT>
<RFALSE>)
(<AND <VERB? LOOK EXAMINE> ,PLAYER-HIDING>
<TELL-CANT-SEE "because you're hiding!">
<CRLF>)
(<AND <VERB? LOOK-INSIDE> ,PLAYER-HIDING>
<TELL "There isn't much to see." CR>)>)
(.RARG <RFALSE>)
(<VERB? OPEN>
<COND (<AND <IN? ,WINNER ,WINDOW-SEAT>
<FSET? ,WINDOW-SEAT ,SURFACEBIT>>
<TELL-GET-UP>)
(T
<FCLEAR ,PRSO ,SURFACEBIT>
<COND (,PLAYER-HIDING <PLAYER-EMERGES>)>
<RFALSE>)>)
(<AND <VERB? CLOSE> <FSET? ,PRSO ,OPENBIT>>
<FSET ,PRSO ,SURFACEBIT>
<FCLEAR ,PRSO ,OPENBIT>
<TELL "Closed." CR>)
(<AND <VERB? SIT> <FSET? ,PRSO ,OPENBIT>>
<TELL-YOU-CANT
"sit on an open " <>>
<TELL D ,PRSO "." CR>)
(<VERB? THROUGH HIDE-INSIDE>
<COND (<NOT <FSET? ,PRSO ,OPENBIT>>
<TELL-YOU-CANT
"get in a closed " <>> <TELL D ,PRSO "." CR>)
(<IN? ,CORPSE ,WINDOW-SEAT>
<TELL
"That would be too crowded for comfort." CR>)
(<NOT ,PLAYER-HIDING>
<FCLEAR ,WINDOW-SEAT ,OPENBIT>
<MOVE ,PLAYER ,WINDOW-SEAT>
<SETG PLAYER-HIDING ,WINDOW-SEAT>
<TELL
,YOU-ARE "now hiding in the " 'WINDOW-SEAT "." CR>)>)
(<AND <VERB? PUT>
,PRSI
<NOT <FSET? ,PRSI ,OPENBIT>>>
<TELL ,YOU-MUST "open the " 'WINDOW-SEAT " first." CR>)
(<AND <VERB? PUT> <EQUAL? ,PRSO ,CORPSE>>
<TELL
"Your name wouldn't be Brewster, by any chance?" CR>
<RFALSE>)
(<VERB? EXAMINE>
<TELL
"A " 'WINDOW-SEAT " is a bench underneath a window that often has storage
space inside it. This one overlooks the front of the house and down the hill.
In \"Arsenic and Old Lace,\" there were several bodies hidden in "
A ,WINDOW-SEAT "." CR>)>>
<OBJECT MORNING-ROOM-DOOR
(IN LOCAL-GLOBALS)
(DESC "morning room door")
(SYNONYM DOOR)
(ADJECTIVE MORNING)
(UNLOCK MORNING-ROOM)
(GENERIC GENERIC-STUFF-F)
(FLAGS DOORBIT NDESCBIT)>
<ROOM SITTING-ROOM
(IN ROOMS)
(SYNONYM ROOM)
(ADJECTIVE SITTING)
(DESC "Sitting Room")
(LDESC
"This is Ms. Ashcroft's sitting room. The room in furnished with formal
but comfortable looking chairs, a small couch, and a large oriental
rug. A telephone is on one end table. The door is to the north and leads
back into the hall.")
(NORTH TO HALLWAY-1 IF SITTING-ROOM-DOOR IS OPEN)
(STATION HALLWAY-1)
(LINE 0 ;HALL-LINE-C)
(GLOBAL WINDOW CURTAINS TELEPHONE GLOBAL-CHAIR
GLOBAL-SOFA GLOBAL-RUG)>
<OBJECT END-TABLE
(IN SITTING-ROOM)
(DESC "end table")
(SYNONYM TABLE)
(ADJECTIVE END)
(ACTION VARIOUS-TABLES-F)
(CAPACITY 20)
(FLAGS NDESCBIT FURNITURE VEHBIT TRYTAKEBIT TAKEBIT
SURFACEBIT OPENBIT CONTBIT)>
<OBJECT SITTING-ROOM-DOOR
(IN LOCAL-GLOBALS)
(DESC "sitting room door")
(SYNONYM DOOR)
(ADJECTIVE SITTING)
(UNLOCK SITTING-ROOM)
(GENERIC GENERIC-STUFF-F)
(FLAGS DOORBIT NDESCBIT)>
<ROOM HALLWAY-1
(IN ROOMS)
(DESC "West End of Hallway")
(LDESC
"This is the west end of the main hallway. To the west is a door leading
out of the house, and there are also doors north and south.")
(EAST TO HALLWAY-2)
(WEST TO WEST-OF-HOUSE IF WEST-DOOR IS OPEN)
(NORTH TO MEDIA-ROOM IF MEDIA-ROOM-DOOR IS OPEN)
(SOUTH TO SITTING-ROOM IF SITTING-ROOM-DOOR IS OPEN)
(GLOBAL WEST-DOOR MEDIA-ROOM-DOOR WINDOW CURTAINS SITTING-ROOM-DOOR)
(LINE 0 ;HALL-LINE-C)
(STATION HALLWAY-1)
(CORRIDOR 1)>
<ROOM HALLWAY-2
(IN ROOMS)
(DESC "Hall Near Bath")
(LDESC
"Near the west end of the hallway, doors lead north to a
bathroom and south to a linen closet.")
(EAST TO HALLWAY-3)
(WEST TO HALLWAY-1)
(NORTH TO WEST-BATH IF WEST-BATH-DOOR IS OPEN)
(SOUTH TO LINEN-CLOSET IF LINEN-CLOSET-DOOR IS OPEN)
(GLOBAL LINEN-CLOSET-DOOR WEST-BATH-DOOR)
(LINE 0 ;HALL-LINE-C)
(STATION HALLWAY-2)
(CORRIDOR 1)>
<ROOM HALLWAY-3
(IN ROOMS)
(DESC "Hall at Office")
(LDESC
"Off the hallway here are the office to the north and the morning room
to the south.")
(EAST TO HALLWAY-4)
(WEST TO HALLWAY-2)
(NORTH TO OFFICE IF SOUTH-OFFICE-DOOR IS OPEN)
(SOUTH TO MORNING-ROOM IF MORNING-ROOM-DOOR IS OPEN)
(GLOBAL SOUTH-OFFICE-DOOR MORNING-ROOM-DOOR)
(LINE 0 ;HALL-LINE-C)
(STATION HALLWAY-3)
(CORRIDOR 1)>
<ROOM HALLWAY-4
(IN ROOMS)
(DESC "Hall at Corner")
(LDESC
"The hallway makes an elbow bend here. In the distance to the north and
west are doors leading outside. North of here another hall leads
east.")
(WEST TO HALLWAY-3)
(NORTH TO HALLWAY-5)
(LINE 0 ;HALL-LINE-C)
(STATION HALLWAY-4)
(CORRIDOR %<+ 1 2>)>
<ROOM HALLWAY-5
(IN ROOMS)
(DESC "Hallway Intersection")
(LDESC
"Here a north-south hallway and a hallway to the east meet.")
(EAST TO HALLWAY-8)
(NORTH TO HALLWAY-6)
(SOUTH TO HALLWAY-4)
(LINE 0 ;HALL-LINE-C)
(STATION HALLWAY-5)
(CORRIDOR %<+ 2 4>)>
<ROOM HALLWAY-6
(IN ROOMS)
(DESC "Hall Near Coat Closet")
(LDESC
"This is a north-south hallway leading to an outer door further north.
To the east is a coat closet.")
(EAST TO WEST-COAT-CLOSET IF WEST-CLOSET-DOOR IS OPEN)
(NORTH TO HALLWAY-7)
(SOUTH TO HALLWAY-5)
(LINE 3 ;GARAGE-LINE-C)
(STATION HALLWAY-6)
(GLOBAL WEST-CLOSET-DOOR)
(CORRIDOR 2)>
<ROOM WEST-COAT-CLOSET
(IN ROOMS)
(SYNONYM CLOSET)
(ADJECTIVE COAT WEST)
(DESC "West Coat Closet")
(LDESC
"This is a walk-in coat closet that doesn't seem to be in use this
evening.")
(WEST TO HALLWAY-6 IF WEST-CLOSET-DOOR IS OPEN)
(STATION HALLWAY-6)
(GLOBAL WEST-CLOSET-DOOR)
(LINE 3 ;GARAGE-LINE-C)>
<OBJECT WEST-CLOSET-DOOR
(IN LOCAL-GLOBALS)
(DESC "west closet door")
(SYNONYM DOOR)
(ADJECTIVE WEST CLOSET)
(UNLOCK ROOMS) ;"no lock"
(GENERIC GENERIC-STUFF-F)
(FLAGS DOORBIT NDESCBIT)>
<OBJECT HAMPER
(IN WEST-COAT-CLOSET)
(SYNONYM HAMPER)
(ADJECTIVE LARGE WICKER)
(DESC "wicker hamper")
(DESCFCN HAMPER-DESC-F)
(ACTION HAMPER-F)
(FLAGS TAKEBIT BURNBIT CONTBIT)
(SIZE 30)
(CAPACITY 100)>
<ROUTINE HAMPER-F ("OPTIONAL" (RARG <>))
<COND (<AND <VERB? PUT>
<EQUAL? ,PRSO ,HAMPER>
<EQUAL? ,PRSI ,WINDOW-SEAT ,BMW-TRUNK ,MERCEDES-TRUNK>>
<TELL "It's too big." CR>)>>
<ROUTINE HAMPER-DESC-F ("OPTIONAL" (RARG <>))
<TELL ,THERE-IS "a large wicker hamper ">
<COND (<IN? ,HAMPER ,WEST-COAT-CLOSET>
<TELL
"at one end of the closet.">)
(ELSE
<TELL
"here.">)>
<COND (<FSET? ,HAMPER ,OPENBIT>
<TELL " The hamper is open.">)>
<CRLF>>
<ROOM HALLWAY-7
(IN ROOMS)
(DESC "North Hall")
(LDESC
"The north end of the hall, at an outer door. A landing leading to a stairway
is east. You can see a covered walkway through a
jalousied door to the north.")
(EAST "There is a red velvet ribbon politely barring the way.")
(UP "There is a red velvet ribbon politely barring the way.")
(NORTH TO WALKWAY IF NORTH-DOOR IS OPEN)
(SOUTH TO HALLWAY-6)
(GLOBAL NORTH-DOOR WINDOW STAIR VELVET-RIBBON)
(LINE 3 ;GARAGE-LINE-C)
(STATION HALLWAY-7)
(CORRIDOR 2)>
<ROOM HALLWAY-8
(IN ROOMS)
(DESC "Front Hall West")
(LDESC
"The front hall runs south of the living room here, and a large doorway
opens north into that room. East and south is the way back into the
entry hall. Another hall intersects to the west.")
(EAST TO HALLWAY-9)
(WEST TO HALLWAY-5)
(NORTH TO LIVING-ROOM)
(LINE 0 ;HALL-LINE-C)
(STATION HALLWAY-8)
(CORRIDOR 4)>
<ROOM HALLWAY-9
(IN ROOMS)
(DESC "Front Hall")
(LDESC
"This is the front hall, which runs east and west. Entrances to the
living room are east and west of here, and the entry hall is to the
south.")
(EAST TO HALLWAY-10)
(WEST TO HALLWAY-8)
(SOUTH TO HALL)
(LINE 0 ;HALL-LINE-C)
(STATION HALLWAY-9)
(CORRIDOR 4)>
<ROOM HALLWAY-10
(IN ROOMS)
(DESC "Front Hall East")
(LDESC
"The front hall runs past an entrance to the living room here, to the
north. Another hall intersects to the east.")
(EAST TO HALLWAY-11)
(WEST TO HALLWAY-9)
(NORTH TO LIVING-ROOM)
(LINE 0 ;HALL-LINE-C)
(STATION HALLWAY-10)
(CORRIDOR 4)>
<ROOM HALLWAY-11
(IN ROOMS)
(DESC "Long Hall Begins")
(LDESC
"Here the front hall and a long north-south hall fronting the ballroom
intersect. Another hall starts south of here and goes east.")
(WEST TO HALLWAY-10)
(NORTH TO HALLWAY-12)
(SOUTH TO HALLWAY-16)
(LINE 0 ;HALL-LINE-C)
(STATION HALLWAY-11)
(CORRIDOR %<+ 4 8>)>
<ROOM HALLWAY-12
(IN ROOMS)
(DESC "Long Hall South")
(LDESC
"This is almost the southern end of the long north-south hall. A large doorway
opens into the southern end of the ballroom. Another door on the west is to a
small closet.")
(EAST TO BALLROOM-7)
(WEST TO EAST-COAT-CLOSET IF EAST-CLOSET-DOOR IS OPEN)
(NORTH TO HALLWAY-13)
(SOUTH TO HALLWAY-11)
(ACTION HALLWAY-12-F)
(LINE 0 ;HALL-LINE-C)
(STATION HALLWAY-12)
(GLOBAL EAST-CLOSET-DOOR)
(CORRIDOR %<+ 8 128>)>
<ROOM EAST-COAT-CLOSET
(IN ROOMS)
(SYNONYM CLOSET)
(ADJECTIVE COAT EAST)
(DESC "East Coat Closet")
(LDESC
"This is a large coat closet full of rather damp coats, overcoats, and
raincoats.")
(EAST TO HALLWAY-12 IF EAST-CLOSET-DOOR IS OPEN)
(STATION HALLWAY-12)
(LINE 0 ;HALL-LINE-C)
(GLOBAL EAST-CLOSET-DOOR)
(PSEUDO "COATS" COATS-PSEUDO "RAINCOAT" COATS-PSEUDO)>
<OBJECT EAST-CLOSET-DOOR
(IN LOCAL-GLOBALS)
(DESC "east closet door")
(SYNONYM DOOR)
(ADJECTIVE EAST CLOSET)
(UNLOCK ROOMS) ;"no lock"
(GENERIC GENERIC-STUFF-F)
(FLAGS DOORBIT OPENBIT NDESCBIT)>
<ROUTINE COATS-PSEUDO ()
<COND (<VERB? SEARCH EXAMINE>
<TELL
"There are too many. ">
<TELL-SPECIFIC>)
(<VERB? TAKE>
<TELL "That would be stealing!" CR>)>>
<GLOBAL SLAPSTICK? T>
<GLOBAL ENTANGLED? <>>
<ROUTINE I-UNTANGLE ()
<SETG ENTANGLED? <>>
<MOVE ,GUEST ,GLOBAL-OBJECTS>
<PUT <GET ,GOAL-TABLES ,BUTLER-C> ,ATTENTION 0>
<ESTABLISH-GOAL ,BUTLER ,BALLROOM-8 T>
<TELL
'BUTLER " regains his composure, and helps you to your feet, apologizing
profusely. \"I've gotten your costume all dirty.
Permit me to straighten it.\" He removes a small brush from his suit,
straightens your vest, and brushes the dirt off. While " 'BUTLER " is
ministering to your costume, the other guest speedily and thankfully
departs the area." CR>>
<GLOBAL PLAYER-FOLLOWED-VERONICA? <>>
<ROUTINE HALLWAY-12-F ("OPTIONAL" (RARG <>))
<COND (<AND <==? .RARG ,M-END>
<NOT ,SLAPSTICK?>
<IN? ,BUTLER ,HALLWAY-12>
<IN-MOTION? ,VERONICA>>
<SETG PLAYER-FOLLOWED-VERONICA? T>
<SETG SLAPSTICK? T>
<SETG ENTANGLED? 1>
<MOVE ,GUEST ,HALLWAY-12>
<ESTABLISH-GOAL ,BUTLER ,BALLROOM-8>
<GRAB-ATTENTION ,BUTLER>
<ENABLE <QUEUE I-UNTANGLE 4>>
<TELL
"You reach the vicinity of the coat closet, but you must weave your way
around the butler and a guest. " 'BUTLER " is taking the guest's coat to hang
it up, and the two of them are blocking the hall. The guest ">
<COND (<OR <IN? ,VERONICA ,HERE>
<CORRIDOR-LOOK ,VERONICA>>
<TELL "turns to stare at " 'VERONICA " as she rushes "
<COND (<IN? ,VERONICA ,BALLROOM-7> "up")
(<IN? ,VERONICA ,HERE> "by")
(T "off")>
", and ">)>
<TELL
"bumps you. Now " 'BUTLER ", whose
vision is not improved by the gorilla suit he is wearing, becomes
entangled in the guest's overcoat. Unfortunately, it's still attached to
the guest and the two of them nearly fall to the floor. You are
entangled in the confusion." CR>)
(<EQUAL? .RARG ,M-BEG>
<COND (<AND <VERB? FOLLOW WALK STAND> ,ENTANGLED?>
<TELL <GET ,ENTANGLED-YUKS ,ENTANGLED?> CR>
<SETG ENTANGLED? <+ ,ENTANGLED? 1>>
<RTRUE>)>)>>
<GLOBAL ENTANGLED-YUKS
<LTABLE
"You try to extricate yourself from the undignified tangle, but only
succeed in confusing matters more."
"Smythe almost succeeds in reaching his feet, but the guest pulls him
down again by trying to pull his coat back on."
"You succeed in regaining your feet.">>
<OBJECT GUEST
(DESC "party guest")
(SYNONYM GUEST DEVIL)
(ADJECTIVE PARTY)
(ACTION GUEST-F)
(FLAGS NDESCBIT PERSON THE)>
<ROUTINE GUEST-F ()
<COND (<OR <EQUAL? ,GUEST ,WINNER>
<VERB? TELL>
<TALKING-TO? ,GUEST>>
<COND (<VERB? TELL>
<SETG P-CONT <>>
<SETG QUOTE-FLAG <>>)>
<TELL
"The guest is too busy dealing with his coat, the butler, and you to
answer coherently or civilly." CR>)
(<AND <VERB? EXAMINE> <IN? ,GUEST ,HERE>>
<TELL
"The guest is rumpled and crumpled from the recent melee. He appears to
be wearing the remains of a devil costume. Fortunately, he has no
pitchfork." CR>)
(<AND <NOT <IN? ,GUEST ,HERE>>
<EQUAL? ,PLAYER ,WINNER>>
<PERFORM ,V?FIND ,GUEST>
<RTRUE>)>>
<ROOM HALLWAY-13
(IN ROOMS)
(DESC "Hall Near Ballroom")
(LDESC
"This is the middle of the long hall. To the east is a large doorway
opening onto the ballroom, and to the west is a stairway leading up.")
(EAST TO BALLROOM-4)
(WEST "There is a red velvet ribbon politely barring the way.")
(UP "There is a red velvet ribbon politely barring the way.")
(NORTH TO HALLWAY-14)
(SOUTH TO HALLWAY-12)
(LINE 0 ;HALL-LINE-C)
(STATION HALLWAY-13)
(CORRIDOR %<+ 8 64>)
(GLOBAL STAIR VELVET-RIBBON)>
<ROOM HALLWAY-14
(IN ROOMS)
(DESC "Long Hall North")
(LDESC
"Near the north end of the long hall a doorway opens into the ballroom,
and to the west a sliding glass door opens out into the garden.")
(EAST TO BALLROOM-1)
(WEST TO GARDEN IF SLIDING-DOOR IS OPEN)
(NORTH TO HALLWAY-15)
(SOUTH TO HALLWAY-13)
(FLAGS OPENBIT)
(LINE 0 ;HALL-LINE-C)
(STATION HALLWAY-14)
(CORRIDOR %<+ 8 32>)
(GLOBAL SLIDING-DOOR)>
<ROOM HALLWAY-15
(IN ROOMS)
(DESC "Hall at Dining Room")
(LDESC
"This is the northern end of the hall, where a doorway leads to the
dining room.")
(NORTH TO DINING-ROOM)
(SOUTH TO HALLWAY-14)
(LINE 0 ;HALL-LINE-C)
(STATION HALLWAY-15)
(CORRIDOR 8)
(FLAGS OPENBIT)
(GLOBAL WINDOW)>
<ROOM HALLWAY-16
(IN ROOMS)
(DESC "East Hall")
(LDESC
"This is the beginning of the east hall. North is the long front hall and
south is a door leading into the library. The hall continues to the
east.")
(EAST TO HALLWAY-17)
(NORTH TO HALLWAY-11)
(SOUTH TO LIBRARY IF LIBRARY-DOOR IS OPEN)
(GLOBAL LIBRARY-DOOR)
(LINE 2 ;EAST-HALL-LINE-C)
(STATION HALLWAY-16)
(CORRIDOR %<+ 8 16>)>
<ROOM HALLWAY-17
(IN ROOMS)
(DESC "East Hall at Bath")
(LDESC
"The east hall continues. To the south is a bathroom.")
(EAST TO HALLWAY-19)
(WEST TO HALLWAY-16)
(SOUTH TO EAST-BATH IF EAST-BATH-DOOR IS OPEN)
(GLOBAL EAST-BATH-DOOR)
(LINE 2 ;EAST-HALL-LINE-C)
(STATION HALLWAY-17)
(CORRIDOR 16)>
<OBJECT EAST-BATH-DOOR
(IN LOCAL-GLOBALS)
(DESC "east bath door")
(SYNONYM DOOR)
(ADJECTIVE EAST BATH)
(UNLOCK EAST-BATH)
(GENERIC GENERIC-STUFF-F)
(FLAGS DOORBIT)>
<ROOM HALLWAY-19
(IN ROOMS)
(DESC "East Hall End")
(LDESC
"The east hall ends here. A door opens to the outside and another opens
south to the sun room.")
(EAST TO OUTSIDE IF EAST-DOOR IS OPEN)
(WEST TO HALLWAY-17)
(SOUTH TO SUN-ROOM IF SUN-ROOM-DOOR IS OPEN)
(LINE 2 ;EAST-HALL-LINE-C)
(STATION HALLWAY-19)
(CORRIDOR 16)
(FLAGS OPENBIT)
(GLOBAL WINDOW SUN-ROOM-DOOR EAST-DOOR)>
\
"Other inside rooms"
<ROOM MEDIA-ROOM
(IN ROOMS)
(SYNONYM ROOM)
(ADJECTIVE MEDIA)
(DESC "Media Room")
(LDESC
"This is a large room with a projection TV and VCR at one end. Comfortable
chairs and sofa are grouped around it. A bookcase contains a large
library of videotapes. There is a telephone on the bookcase. The hallway
is to the south and on the east is a connecting door to the office.")
(EAST TO OFFICE IF MEDIA-OFFICE-DOOR IS OPEN)
(SOUTH TO HALLWAY-1 IF MEDIA-ROOM-DOOR IS OPEN)
(GLOBAL MEDIA-OFFICE-DOOR WINDOW CURTAINS TELEPHONE
MEDIA-ROOM-DOOR GLOBAL-SOFA GLOBAL-CHAIR)
(STATION HALLWAY-1)
(LINE 0 ;HALL-LINE-C)>
<OBJECT MEDIA-ROOM-DOOR
(IN LOCAL-GLOBALS)
(DESC "media room door")
(SYNONYM DOOR)
(ADJECTIVE MEDIA ROOM)
(UNLOCK MEDIA-ROOM)
(GENERIC GENERIC-STUFF-F)
(FLAGS DOORBIT NDESCBIT)>
<OBJECT TELEVISION
(IN MEDIA-ROOM)
(DESC "projection TV")
(SYNONYM TV TELEVISION)
(ADJECTIVE PROJECTION)
(ACTION TELEVISION-F)
(FLAGS NDESCBIT ONBIT)>
<ROUTINE TELEVISION-F ()
<COND (<VERB? EXAMINE>
<COND (<FSET? ,PRSO ,ONBIT>
<TELL
"The TV is on, tuned to the Cable News Network." CR>)
(T
<TELL "The TV is off." CR>)>)
(<VERB? LAMP-ON>
<TELL "It's already on." CR>)
(<VERB? LAMP-OFF>
<TELL "Don't you like to watch?" CR>)>>
<OBJECT VCR
(IN MEDIA-ROOM)
(DESC "VCR")
(SYNONYM VCR RECORD)
(ADJECTIVE VIDEO CASSETTE)
(ACTION VCR-F)
(FLAGS NDESCBIT)>
<ROUTINE VCR-F ()
<COND (<VERB? EXAMINE LAMP-ON LAMP-OFF>
<TELL
"This is a kind you've never seen before, and you
can't fathom its controls. It's made by the Frobozz Magic
VCR Company." CR>)>>
<OBJECT BOOKCASE
(IN MEDIA-ROOM)
(DESC "bookcase")
(SYNONYM BOOKCASE SHELVES SHELF)
(ACTION BOOKCASE-F)
(FLAGS NDESCBIT OPENBIT CONTBIT)
(CAPACITY 50)>
<ROUTINE BOOKCASE-F ()
<COND (<VERB? LOOK-INSIDE EXAMINE>
<TELL
"The bookcase contains ">
<COND (<PRINT-CONTENTS ,BOOKCASE <> ,VIDEOTAPE>
<TELL " and ">)>
<TELL "many videotapes." CR>)>>
<OBJECT VIDEOTAPE
(IN BOOKCASE)
(DESC "videotape")
(SYNONYM VIDEOTAPE TAPES)
(FLAGS NDESCBIT)>
<ROOM OFFICE
(IN ROOMS)
(SYNONYM OFFICE)
(DESC "Office")
(WEST TO MEDIA-ROOM IF MEDIA-OFFICE-DOOR IS OPEN)
(SOUTH TO HALLWAY-3 IF SOUTH-OFFICE-DOOR IS OPEN)
(NORTH TO WALKWAY IF NORTH-OFFICE-DOOR IS OPEN)
(ACTION OFFICE-F)
(STATION HALLWAY-3)
(LINE 0 ;HALL-LINE-C)
(GLOBAL MEDIA-OFFICE-DOOR NORTH-OFFICE-DOOR SOUTH-OFFICE-DOOR
TELEPHONE WINDOW CURTAINS)
(PSEUDO "RUG" RUG-F "BOOKS" BOOKS-PSEUDO)>
<OBJECT MEDIA-OFFICE-DOOR
(IN LOCAL-GLOBALS)
(DESC "west office door")
(SYNONYM DOOR)
(ADJECTIVE EAST WEST OFFICE CONNECTING)
(UNLOCK OFFICE)
(GENERIC GENERIC-STUFF-F)
(FLAGS DOORBIT LOCKED NDESCBIT)>
<OBJECT NORTH-OFFICE-DOOR
(IN LOCAL-GLOBALS)
(DESC "north office door")
(SYNONYM DOOR)
(ADJECTIVE NORTH OFFICE)
(UNLOCK OFFICE)
(GENERIC GENERIC-STUFF-F)
(FLAGS DOORBIT NDESCBIT LOCKED)>
<OBJECT SOUTH-OFFICE-DOOR
(IN LOCAL-GLOBALS)
(DESC "south office door")
(SYNONYM DOOR)
(ADJECTIVE SOUTH OFFICE)
(UNLOCK OFFICE)
(GENERIC GENERIC-STUFF-F)
(FLAGS DOORBIT NDESCBIT LOCKED)>
<GLOBAL HAVE-DRAWERS-OPEN " have their drawers open.">
<GLOBAL PLAYER-BEEN-TO-OFFICE? <>>
<ROUTINE OFFICE-F ("OPTIONAL" (RARG <>))
<COND (<==? .RARG ,M-LOOK>
<SETG PLAYER-BEEN-TO-OFFICE? T>
<TELL
"This is the farm's office. There are filing cabinets, a large and a
small desk, a personal computer, a telephone, a copier, and other expected
office
appointments. There are shelves with breeding books and other horsey
reference works. Where shelves don't cover the walls, ribbons and
prize certificates do. All this is overshadowed by the condition of the
room: papers are scattered everywhere, file folders spill their contents
on the floor and on every horizontal surface, a file of floppy disks has
been bounced off one wall, and copier toner is spilled on the rug. ">
<COND (<AND <FSET? ,LARGE-DESK ,OPENBIT>
<FSET? ,SMALL-DESK ,OPENBIT>
<FSET? ,FILE-CABINET ,OPENBIT>>
<TELL
"The desks and " 'FILE-CABINET ,HAVE-DRAWERS-OPEN>)
(<AND <FSET? ,LARGE-DESK ,OPENBIT>
<FSET? ,SMALL-DESK ,OPENBIT>>
<TELL
"The desks" ,HAVE-DRAWERS-OPEN>)
(<AND <FSET? ,LARGE-DESK ,OPENBIT>
<FSET? ,FILE-CABINET ,OPENBIT>>
<TELL
CTHE ,LARGE-DESK " and " THE ,FILE-CABINET ,HAVE-DRAWERS-OPEN>)
(<AND <FSET? ,SMALL-DESK ,OPENBIT>
<FSET? ,FILE-CABINET ,OPENBIT>>
<TELL
CTHE ,SMALL-DESK " and " THE ,FILE-CABINET ,HAVE-DRAWERS-OPEN>)
(<FSET? ,LARGE-DESK ,OPENBIT>
<TELL-HAS-DRAWER-OPEN ,LARGE-DESK>)
(<FSET? ,SMALL-DESK ,OPENBIT>
<TELL-HAS-DRAWER-OPEN ,SMALL-DESK>)
(<FSET? ,FILE-CABINET ,OPENBIT>
<TELL
CTHE ,FILE-CABINET " has its drawers open.">)
(T <TELL "The desk and file drawers are closed.">)>
<TELL " Doors lead out to the north, west, and south." CR>)>>
;<ROUTINE HAS-ON-IT (OBJ)
<COND (<FIRST? .OBJ>
<TELL " " CTHE .OBJ " has on it ">
<PRINT-CONTENTS .OBJ>
<TELL ".">)>>
<ROUTINE TELL-HAS-DRAWER-OPEN (DESK)
<TELL
CTHE .DESK " has its drawer open.">>
<OBJECT LARGE-DESK
(IN OFFICE)
(DESC "large desk")
(SYNONYM DESK)
(ADJECTIVE LARGE)
(CAPACITY 100)
(ACTION DESK-F)
(FLAGS CONTBIT SURFACEBIT OPENBIT NDESCBIT SEARCHBIT)>
<OBJECT SMALL-DESK
(IN OFFICE)
(DESC "small desk")
(SYNONYM DESK)
(ADJECTIVE SMALL)
(CAPACITY 75)
(ACTION DESK-F)
(FLAGS CONTBIT SURFACEBIT OPENBIT NDESCBIT SEARCHBIT)>
<ROUTINE DESK-F ()
<COND (<VERB? LOOK-INSIDE>
<TELL
,THERE-IS "nothing inside " THE ,PRSO ". It has all been dumped on the
floor." CR>)
(<AND <VERB? LOOK-BEHIND>
<EQUAL? ,PRSO ,LARGE-DESK>
<NOT <FSET? ,CORPSE ,TOUCHBIT>>>
<PERFORM ,V?EXAMINE ,CORPSE>
<RTRUE>)
(<VERB? OPEN CLOSE>
<OPEN-CLOSE>)>>
<OBJECT FILE-CABINET
(IN OFFICE)
(DESC "file cabinet")
(SYNONYM CABINET)
(ADJECTIVE FILE FILES)
(ACTION DESK-F)
(FLAGS CONTBIT OPENBIT NDESCBIT)>
<OBJECT TRASH
(IN OFFICE)
(DESC "trash")
(SYNONYM TRASH PAPERS SHELVES SHELF)
(ADJECTIVE PAPER)
(FLAGS NDESCBIT)
(ACTION TRASH-F)>
<ROUTINE TRASH-F ()
<COND (<VERB? EXAMINE SEARCH LOOK-INSIDE>
<TELL
"An incredible mess has been made of the records in this office. The
things on the floor alone would take days to sort out." CR>)>>
<OBJECT OFFICE-JUNK
(IN OFFICE)
(SYNONYM TONER PRIZES RIBBON PRIZE)
(DESC "office debris")
(ACTION OFFICE-JUNK-F)
(FLAGS NDESCBIT READBIT)>
<ROUTINE OFFICE-JUNK-F ()
<COND (<VERB? EXAMINE READ>
<TELL
"Examining it only makes you more aware of what a mess everything is." CR>)
(<VERB? TAKE>
<TELL
"Carrying such junk would be a waste of effort." CR>)>>
<OBJECT COMPUTER
(IN OFFICE)
(SYNONYM COMPUTER)
(ADJECTIVE PERSONAL)
(DESC "computer")
(ACTION COMPUTER-F)
(CAPACITY 10)
(FLAGS NDESCBIT CONTBIT OPENBIT)>
<ROUTINE COMPUTER-F ()
<COND (<VERB? LAMP-ON EXAMINE>
<TELL "Whoever smashed things up wrecked this as well." CR>)
(<VERB? TAKE>
<TELL "It's attached with a theft prevention bolt." CR>)>>
<OBJECT DISK
(IN OFFICE)
(SYNONYM DISKS FLOPPIES DISK)
(ADJECTIVE FLOPPY)
(DESC "disk")
(ACTION DISK-F)
(FLAGS NDESCBIT TRYTAKEBIT TAKEBIT READBIT)
(TEXT
"By coincidence, one of the floppy disks is a copy of the computer
mystery \"Suspect.\"")>
<ROUTINE DISK-F ()
<COND (<VERB? TAKE>
<TELL
"Unfortunately, they are all bent, mangled, and useless." CR>)>>
<OBJECT SALE
(IN GLOBAL-OBJECTS)
(SYNONYM SALE)
(ADJECTIVE FARM)
(DESC "sale")
(FLAGS NDESCBIT)>
<OBJECT SALE-FOLDER
(IN LARGE-DESK)
(DESC "manila folder")
(SYNONYM FOLDER)
(ADJECTIVE MANILA PURCHASE SALE FILE)
(ACTION SALE-FOLDER-F)
(CAPACITY 10)
(FLAGS READBIT CONTBIT TAKEBIT BURNBIT)>
<OBJECT SALE-AGREEMENT
(IN SALE-FOLDER)
(DESC "purchase and sale agreement")
(SYNONYM AGREEMENT)
(ADJECTIVE PURCHASE SALE)
(ACTION SALE-AGREEMENT-F)
(FLAGS NDESCBIT READBIT TAKEBIT TRYTAKEBIT BURNBIT)>
<ROUTINE SALE-FOLDER-F ()
<COND (<VERB? EXAMINE READ LOOK-INSIDE OPEN>
<TELL
"The folder is labelled \"Sale of Ashcroft Farm.\"">
<COND (<IN? ,SALE-AGREEMENT ,SALE-FOLDER>
<FCLEAR ,SALE-AGREEMENT ,NDESCBIT>
<FSET ,SALE-FOLDER ,OPENBIT>
<TELL " Inside"> <TELL-P&S>)>
<CRLF>)>>
<ROUTINE SALE-AGREEMENT-F ()
<COND (<FSET? ,SALE-AGREEMENT ,NDESCBIT>
<TELL "What agreement?" CR>)
(<VERB? EXAMINE READ>
<TELL "This document">
<TELL-P&S>
<CRLF>)>>
<ROUTINE TELL-P&S ()
<TELL " is " A ,SALE-AGREEMENT " between the Ashcroft Trust (in the
person of " 'VERONICA ") and
" 'OSTMANN " Properties, Sam " 'OSTMANN "'s building firm. The agreement is dated
today. It is not yet signed by either party.">>
<OBJECT TRUST
(IN GLOBAL-OBJECTS)
(DESC "trust")
(SYNONYM TRUST)
(ADJECTIVE ASHCROFT FAMILY)
(FLAGS NDESCBIT)>
<OBJECT TRUST-FOLDER
(DESC "trust folder")
(SYNONYM FOLDER)
(ADJECTIVE FILE TRUST)
(ACTION TRUST-FOLDER-F)
(FLAGS INVISIBLE READBIT CONTBIT TAKEBIT BURNBIT)>
<ROUTINE TRUST-FOLDER-F ()
<COND (<VERB? EXAMINE READ LOOK-INSIDE OPEN>
<TELL
"The folder is labelled \"Ashcroft Family Trust.\"">
<COND (<IN? ,TRUST-DOCUMENTS ,TRUST-FOLDER>
<FCLEAR ,TRUST-DOCUMENTS ,NDESCBIT>
<FSET ,TRUST-FOLDER ,OPENBIT>
<TELL " Inside is a thick " 'TRUST-DOCUMENTS ".">)>
<CRLF>)>>
<OBJECT TRUST-DOCUMENTS
(IN TRUST-FOLDER)
(DESC "sheaf of documents")
(SYNONYM DOCUMENTS PAPERS SHEAF)
(ADJECTIVE TRUST)
(ACTION TRUST-DOCUMENTS-F)
(FLAGS NDESCBIT READBIT TAKEBIT TRYTAKEBIT BURNBIT MICHAELBIT)>
<ROUTINE TRUST-DOCUMENTS-F ()
<COND (<FSET? ,TRUST-DOCUMENTS ,NDESCBIT>
<TELL "What " 'TRUST-DOCUMENTS "?" CR>)
(<VERB? EXAMINE READ LOOK-INSIDE>
<TELL
"There are many documents in a stapled bunch. They all concern
business and financial matters. On top is a letter from an accounting
firm. It reads in part: \"While it is difficult to make explicit
judgements on the advisability of certain investments by the Ashcroft
Family Trust, we find a disturbing pattern. In the past ten years
almost twenty percent of the Trust
holdings have been placed in four companies, each of which is
a poor financial risk. As the accompanying documents
show, all four are controlled by Southeast Planning
Corporation: privately held, with chief
executive officer listed as Colonel Robert Marston.\" Curiously,
on the back of the bunch there is a paper corner left under the
staple where a sheet was torn off." CR>)>>
<OBJECT INVESTOR-LIST
(IN MICHAEL)
(DESC "sheet of paper")
(SYNONYM LIST SHEET PAPER)
(ADJECTIVE INVESTOR PAPER)
(FLAGS READBIT TRYTAKEBIT TAKEBIT BURNBIT INVISIBLE MICHAELBIT)
(ACTION LIST-F)
(TEXT
"This paper is under the letterhead of an accounting firm. It reads:|
|
\"Supplement I. Investors in Southeast Planning Corporation.|
|
Colonel Robert Marston..50%|
Michael R. Wellman......50%\"")>
<ROUTINE LIST-F ()
<COND (<VERB? EXAMINE>
<TELL
"The piece of paper has one corner torn from it where
it was stapled to something." CR>)
(<AND <VERB? TAKE READ>
<IN? ,INVESTOR-LIST ,FIREPLACE>>
<MOVE ,INVESTOR-LIST ,WINNER>
<TELL
"You reach into the fireplace, heedless of your precious
skin, and grab the piece of paper just in time!" CR>)>>
<ROOM WALKWAY
(IN ROOMS)
(SYNONYM WALKWAY)
(ADJECTIVE COVERED)
(DESC "Covered Walkway")
(LDESC
"This covered walkway extends east and west from the hallway door to
the garage. The garden is to the north, and a door to the office is
southwest.")
(WEST TO GARAGE IF WALKWAY-DOOR IS OPEN)
(SOUTH TO HALLWAY-7 IF NORTH-DOOR IS OPEN)
(SW TO OFFICE IF NORTH-OFFICE-DOOR IS OPEN)
(IN TO HALLWAY-7 IF NORTH-DOOR IS OPEN)
(NORTH TO GARDEN)
(GLOBAL NORTH-OFFICE-DOOR NORTH-DOOR WINDOW WALKWAY-DOOR)
(LINE 3 ;GARAGE-LINE-C)
(FLAGS OPENBIT)
(STATION WALKWAY)>
<ROOM LIVING-ROOM
(IN ROOMS)
(SYNONYM ROOM)
(ADJECTIVE LIVING)
(DESC "Living Room")
(LDESC
"This is a large and comfortable living room. The decor is formal, and
the stern faces of several generations of Ashcrofts peer down from
portraits above you. A pair of large doorways open out to the hall on the
south wall, flanking a marble fireplace. An ornately carved mantel surmounts
the fireplace. Wide windows peer out over the garden to the north. There
is a telephone on an end table to the right of the sofa.")
(SE TO HALLWAY-10)
(SW TO HALLWAY-8)
(SOUTH "The doorways are at the southeast and southwest of the room.")
(STATION HALLWAY-8)
(LINE 0 ;HALL-LINE-C)
(GLOBAL WINDOW CURTAINS TELEPHONE GLOBAL-SOFA GLOBAL-CHAIR GLOBAL-RUG)>
<OBJECT LR-FIREPLACE
(IN LIVING-ROOM)
(DESC "marble fireplace")
(SYNONYM FIREPLACE FIRE CHIMNEY)
(ADJECTIVE FORMAL ORNATE MARBLE)
(ACTION LR-FIREPLACE-F)
(CAPACITY 500)
(FLAGS NDESCBIT CONTBIT OPENBIT SEARCHBIT)>
<ROUTINE LR-FIREPLACE-F ()
<COND (<VERB? EXAMINE LOOK-INSIDE BURN>
<COND (<NOT <FIRST? ,LR-FIREPLACE>>
<TELL
"This fireplace has no fire burning in it." CR>)>)
(<VERB? THROUGH>
<TELL
"This is Halloween, not Christmas." CR>)>>
<OBJECT PORTRAITS
(IN LIVING-ROOM)
(DESC "portrait")
(SYNONYM PORTRAIT PICTURE FACES)
(ADJECTIVE STERN ASHCROFT)
(ACTION PORTRAIT-F)
(FLAGS NDESCBIT)>
<ROUTINE PORTRAIT-F ()
<COND (<VERB? EXAMINE>
<TELL
"There are many generations of Ashcrofts represented here. The family
settled in Maryland during the 1600s, and has been here ever since.
They've all had their portraits painted at one time or another." CR>)>>
<OBJECT MANTEL
(IN LIVING-ROOM)
(DESC "mantel")
(SYNONYM MANTEL)
(ADJECTIVE FORMAL ORNATE)
(CAPACITY 50)
(FLAGS NDESCBIT CONTBIT OPENBIT SEARCHBIT SURFACEBIT)>
<OBJECT GLOBAL-RUG
(IN LOCAL-GLOBALS)
(DESC "oriental rug")
(SYNONYM RUG)
(ADJECTIVE ORIENTAL)
(ACTION RUG-F)
(FLAGS NDESCBIT AN)>
<ROUTINE RUG-F ()
<COND (<VERB? EXAMINE>
<TELL
"This is an old and valuable " 'PRSO>
<COND (<EQUAL? ,PRSO ,PSEUDO-OBJECT>
<TELL
", now horribly stained by copier toner">)>
<TELL "." CR>)
(<VERB? LOOK-UNDER MOVE>
<TELL
"Under the rug you see a wooden trap door... No, sorry! That's another
story." CR>)>>
<ROOM WEST-BATH
(IN ROOMS)
(SYNONYM BATH)
(ADJECTIVE WEST)
(DESC "West Bath")
(LDESC
"This is a full bath, including a shower stall.")
(SOUTH TO HALLWAY-2)
(STATION HALLWAY-2)
(GLOBAL WATER SINK SHOWER TOILET WEST-BATH-DOOR)
(LINE 0 ;HALL-LINE-C)>
<ROOM LINEN-CLOSET
(IN ROOMS)
(SYNONYM CLOSET)
(ADJECTIVE LINEN)
(DESC "Linen Closet")
(LDESC
"This is a small linen closet. It looks like most of the towels and
other supplies for the downstairs baths are kept here.")
(NORTH TO HALLWAY-2 IF LINEN-CLOSET-DOOR IS OPEN)
(GLOBAL LINEN-CLOSET-DOOR)
(STATION HALLWAY-2)
(LINE 0 ;HALL-LINE-C)
(PSEUDO "TOWELS" TOWELS-PSEUDO "SUPPLI" TOWELS-PSEUDO)>
<ROUTINE TOWELS-PSEUDO ()
<COND (<VERB? EXAMINE>
<TELL "They are fluffy and soft." CR>)
(<VERB? TAKE>
<TELL
"You have no need of that." CR>)>>
<ROOM EAST-BATH
(IN ROOMS)
(SYNONYM BATH BATHROOM)
(ADJECTIVE EAST)
(DESC "East Bath")
(LDESC
"This is a normal half-bath, no shower or tub.")
(NORTH TO HALLWAY-17 IF EAST-BATH-DOOR IS OPEN)
(STATION HALLWAY-17)
(GLOBAL WATER SINK TOILET EAST-BATH-DOOR)
(LINE 2 ;EAST-HALL-LINE-C)>
<ROOM LIBRARY
(IN ROOMS)
(SYNONYM LIBRARY)
(DESC "Library")
(LDESC
"Every inch of wall space here is covered with bookshelves, except for
doors leading north and west, and two thickly curtained windows. There
are an enormous number of books here.")
(NORTH TO HALLWAY-16 IF LIBRARY-DOOR IS OPEN)
(WEST TO HALL IF LH-DOOR IS OPEN)
(ACTION LIBRARY-F)
(STATION HALLWAY-16)
(LINE 2 ;EAST-HALL-LINE-C)
(GLOBAL WINDOW CURTAINS LH-DOOR TELEPHONE LIBRARY-DOOR)
(PSEUDO "BOOKS" BOOKS-PSEUDO)>
<ROUTINE JUMPED-OUT? (RM)
<COND (<AND ,PLAYER-HIDING
<EQUAL? ,HERE .RM>
<VERB? WALK TELL ASK-ABOUT
$CALL STAND TAKE HELLO
OPEN PHONE>>
<RTRUE>)>>
<ROUTINE LIBRARY-F (RARG)
<COND (<==? .RARG ,M-BEG>
<COND (<AND <OR <IN? ,MICHAEL ,LIBRARY>
<IN? ,COL-MARSTON ,LIBRARY>>
<JUMPED-OUT? ,LIBRARY>>
<SETG PLAYER-HIDING <>>
<TELL
"As you emerge from concealment, ">
<COND (<AND <IN? ,MICHAEL ,LIBRARY>
<IN? ,COL-MARSTON ,LIBRARY>>
<TELL
'MICHAEL " and " 'COL-MARSTON " stare at you and then at each other">
<COND (<IN? ,INVESTOR-LIST ,MICHAEL>
<TELL
", shocked expressions on their faces">)>
<TELL "." CR>)
(ELSE
<COND (<IN? ,MICHAEL ,LIBRARY>
<TELL 'MICHAEL>)
(T
<TELL 'COL-MARSTON>)>
<TELL " stares at you, surprised." CR>)>
<MURDER-TELL ,PLAYER
<COND (<IN? ,MICHAEL ,LIBRARY>
,MICHAEL)
(T ,COL-MARSTON)>>
<RTRUE>)>)>>
<OBJECT BOOKCASES
(IN LIBRARY)
(DESC "bookcase")
(SYNONYM BOOKCASE SHELVES SHELF)
(ACTION BOOKCASES-F)
(FLAGS NDESCBIT OPENBIT CONTBIT)
(CAPACITY 50)>
<ROUTINE BOOKCASES-F ()
<COND (<VERB? LOOK-INSIDE EXAMINE>
<TELL
"The bookcases contain many books." CR>)>>
<OBJECT LIBRARY-DOOR
(IN LOCAL-GLOBALS)
(DESC "north library door")
(SYNONYM DOOR)
(ADJECTIVE LIBRARY NORTH)
(UNLOCK LIBRARY)
(GENERIC GENERIC-STUFF-F)
(FLAGS DOORBIT NDESCBIT)>
<GLOBAL RIDICULOUS "You would look ridiculous carrying it.">
<ROUTINE TELL-GET-UP ()
<TELL ,HAVE-TO "get up first." CR>>
<OBJECT SIDE-TABLE
(IN LIBRARY)
(DESC "side table")
(LDESC
"On the right side of the chair is a small side table with a telephone on
it.")
(SYNONYM TABLE)
(ADJECTIVE SIDE)
(ACTION VARIOUS-TABLES-F)
(CAPACITY 20)
(FLAGS FURNITURE VEHBIT TRYTAKEBIT TAKEBIT SURFACEBIT OPENBIT CONTBIT)>
<ROUTINE VARIOUS-TABLES-F ("OPTIONAL" (RARG <>))
<COND (<AND <VERB? TAKE>
<EQUAL? ,PRSO ,SIDE-TABLE ,END-TABLE>>
<TELL ,RIDICULOUS CR>)
(<VERB? EXAMINE>
<TELL
"On " THE ,PRSO " sits " A ,TELEPHONE>
<PRINT-CONTENTS ,PRSO ", accompanied by ">
<TELL "." CR>)>>
<OBJECT CHAIR
(IN LIBRARY)
(DESC "comfy chair")
(LDESC
"In one corner of the room is a high-backed, overstuffed Victorian armchair,
which looks perfect for reading in.")
(SYNONYM CHAIR ARMCHAIR)
(ADJECTIVE HIGH OVERSTUFFED ARM VICTORIAN)
(FLAGS FURNITURE VEHBIT TRYTAKEBIT TAKEBIT OPENBIT CONTBIT)
(SIZE 100)
(CAPACITY 100)
(ACTION CHAIR-F)>
<ROUTINE CHAIR-F ("OPTIONAL" (RARG <>))
<COND (<EQUAL? .RARG ,M-BEG ,M-END>
<RFALSE>)
(<AND <VERB? TAKE> <EQUAL? ,PRSO ,CHAIR>>
<TELL ,RIDICULOUS CR>)
(<AND <VERB? HIDE-BEHIND> <NOT ,PLAYER-HIDING>>
<COND (<IN? ,PLAYER ,CHAIR>
<TELL-GET-UP>)
(T
<NOW-CONCEALED>)>)
(<VERB? RUB>
<TELL
"It feels very soft and comfy." CR>)>>
<OBJECT DEATHMASK-BOOK
(IN SIDE-TABLE)
(DESC "paperback book")
(SYNONYM BOOK)
(ADJECTIVE PAPERBACK)
(FLAGS READBIT TAKEBIT BURNBIT)
(ACTION DEATHMASK-BOOK-F)
(TEXT
"The book has a lurid cover and an obviously inaccurate blurb. It is
titled \"Suspect,\" and is by someone named Dave Lebling. The book
is apparently a mystery novel. You read part of it, but stop
when you notice that someone has torn out the last ten pages.")>
<ROUTINE DEATHMASK-BOOK-F ()
<COND (<VERB? EXAMINE OPEN>
<PERFORM ,V?READ ,PRSO>
<RTRUE>)>>
<ROUTINE BOOKS-PSEUDO ()
<COND (<VERB? READ>
<TELL
"That would take many months, even assuming you are a star pupil of Evelyn
Wood." CR>)
(<VERB? EXAMINE>
<TELL
"A great many of the books have to do with horses, horse breeding, farm
management, and other practical subjects.">
<COND (<EQUAL? ,HERE ,LIBRARY>
<TELL " There is a lot of fiction as
well, including the complete works of Dick Francis.">)>
<CRLF>)>>
<ROOM SUN-ROOM
(IN ROOMS)
(SYNONYM ROOM)
(ADJECTIVE SUN)
(DESC "Sun Room")
(LDESC
"This room is situated to receive the morning sun, and in daytime
would be bright and airy. Many plants crowd the floor,
fill the plant stands situated under the windows, and hang from hooks
attached to the ceiling. Ms. Ashcroft has a green thumb, apparently.")
(NORTH TO HALLWAY-19 IF SUN-ROOM-DOOR IS OPEN)
(GLOBAL WINDOW CURTAINS SUN-ROOM-DOOR)
(STATION HALLWAY-19)
(LINE 2 ;EAST-HALL-LINE-C)>
<OBJECT PLANTS
(IN SUN-ROOM)
(DESC "plant")
(SYNONYM PLANTS PLANT POTS POT)
(FLAGS NDESCBIT TRYTAKEBIT TAKEBIT)
(ACTION PLANTS-F)>
<ROUTINE PLANTS-F ()
<COND (<VERB? EXAMINE>
<TELL
"There are plants all over the room." ,DOING-WELL CR>)
(<VERB? TAKE>
<TELL-CARE>)>>
<ROUTINE TELL-CARE ()
<TELL
"After all the care that's been lavished on them? For shame." CR>>
<GLOBAL DOING-WELL " They are doing quite well.">
<ROOM DINING-ROOM
(IN ROOMS)
(SYNONYM ROOM)
(ADJECTIVE DINING)
(DESC "Dining Room")
(LDESC
"This is the formal dining room. To the south is the long hall, to the
east the kitchen. A crystal chandelier dominates the room, hanging over
a large walnut table. On the east wall convenient to the kitchen is a
long sideboard. On the north wall is a china cabinet. The west wall is
mostly windows which overlook the garden.")
(SOUTH TO HALLWAY-15)
(EAST TO KITCHEN)
(LINE 0 ;HALL-LINE-C)
(STATION DINING-ROOM)
(GLOBAL WINDOW CURTAINS GLOBAL-CHAIR)
(PSEUDO "CHINA" CHINA-PSEUDO "CRYSTAL" CHINA-PSEUDO)>
<ROUTINE CHINA-PSEUDO ()
<COND (<VERB? EXAMINE> <TELL "It's lovely." CR>)
(<VERB? TAKE> <TELL "It's in a locked cabinet." CR>)>>
<OBJECT CHANDELIER
(IN DINING-ROOM)
(SYNONYM CHANDELIER)
(ADJECTIVE CRYSTAL)
(DESC "chandelier")
(ACTION CHANDELIER-F)
(FLAGS NDESCBIT)>
<ROUTINE CHANDELIER-F ()
<COND (<VERB? TAKE>
<TELL "It's too high to reach." CR>)>>
<OBJECT DINING-ROOM-TABLE
(IN DINING-ROOM)
(SYNONYM TABLE)
(ADJECTIVE WALNUT)
(DESC "table")
(CAPACITY 100)
(FLAGS NDESCBIT CONTBIT OPENBIT SURFACEBIT)>
<OBJECT SIDEBOARD
(IN DINING-ROOM)
(SYNONYM BOARD)
(ADJECTIVE SIDE)
(DESC "sideboard")
(CAPACITY 100)
(FLAGS NDESCBIT CONTBIT OPENBIT SURFACEBIT)>
<OBJECT CHINA-CABINET
(IN DINING-ROOM)
(SYNONYM CABINET)
(ADJECTIVE CHINA CRYSTAL)
(DESC "china cabinet")
(CAPACITY 100)
(ACTION CHINA-CABINET-F)
(FLAGS NDESCBIT LOCKED TRANSBIT CONTBIT)>
<ROUTINE CHINA-CABINET-F ()
<COND (<VERB? LOOK-INSIDE EXAMINE>
<TELL
,THERE-IS "an exquisite set of antique china and crystal inside "
THE ,CHINA-CABINET "." CR>)>>
<ROOM KITCHEN
(IN ROOMS)
(SYNONYM KITCHEN)
(DESC "Kitchen")
(LDESC
"This is a large country kitchen. It is quite disarrayed right now
because of the party. There are doorways leading south to the ballroom,
west to the dining room, and north to the back entry. There is a stove
with a kettle boiling on top of it, and telephone over a counter on one
wall.")
(NORTH TO BACK-ENTRY)
(SOUTH TO BALLROOM-3)
(WEST TO DINING-ROOM)
(LINE 0 ;HALL-LINE-C)
(STATION KITCHEN)
(GLOBAL WATER WINDOW CURTAINS SINK TELEPHONE FOOD)
(PSEUDO "STOVE" STOVE-PSEUDO "KETTLE" KETTLE-PSEUDO)>
<ROUTINE STOVE-PSEUDO ()
<COND (<VERB? EXAMINE>
<TELL
"This is a gas stove with a kettle boiling on one burner." CR>)
(<VERB? LAMP-ON>
<TELL ,ITS-ALREADY "on." CR>)
(<VERB? LAMP-OFF>
<TELL "But then the fish won't get done!" CR>)>>
<ROUTINE KETTLE-PSEUDO ()
<COND (<VERB? EXAMINE>
<TELL
"This is a fine kettle of fish." CR>)
(<VERB? TAKE>
<TELL
"It's much too hot to take." CR>)>>
<ROOM BACK-ENTRY
(IN ROOMS)
(SYNONYM ENTRY)
(ADJECTIVE BACK)
(DESC "Back Entry")
(LDESC
"This is the back entry to the kitchen. A door leads outside to the north.")
(NORTH TO BACK-PORCH IF BACK-DOOR IS OPEN)
(SOUTH TO KITCHEN)
(LINE 0 ;HALL-LINE-C)
(STATION BACK-ENTRY)
(FLAGS OPENBIT)
(GLOBAL WINDOW STAIR BACK-DOOR)>
<OBJECT BACK-DOOR
(IN LOCAL-GLOBALS)
(DESC "back door")
(SYNONYM DOOR)
(ADJECTIVE BACK)
(UNLOCK BACK-ENTRY)
(GENERIC GENERIC-STUFF-F)
(FLAGS LOCKED DOORBIT NDESCBIT)>
<ROOM BACK-PORCH
(IN ROOMS)
(SYNONYM PORCH)
(ADJECTIVE BACK)
(DESC "Back Porch")
(LDESC
"This is the back porch. The kitchen is to the south, and a flagstone path
leads east and west.")
(IN TO BACK-ENTRY IF BACK-DOOR IS OPEN)
(SOUTH TO BACK-ENTRY IF BACK-DOOR IS OPEN)
(WEST TO GARDEN)
(SW TO GARDEN)
(EAST TO PATIO)
(DOWN TO PATIO)
(LINE 4 ;OUTSIDE-LINE-C)
(STATION BACK-PORCH)
(FLAGS OPENBIT)
(GLOBAL WINDOW BACK-DOOR)>
<ROOM GARAGE
(IN ROOMS)
(SYNONYM GARAGE)
(DESC "Garage")
(LDESC
"The garage holds four cars quite comfortably, each with its own
separate door. After parking, one can leave through the door to the
east, which leads to a covered walkway and the main house. At the
house end of the garage is an immaculate workbench.")
(EAST TO WALKWAY IF WALKWAY-DOOR IS OPEN)
(WEST "The garage doors are closed and locked.")
(ACTION GARAGE-F)
(GLOBAL WALKWAY-DOOR GARAGE-DOOR)
(LINE 3 ;GARAGE-LINE-C)
(STATION GARAGE)>
<ROUTINE GARAGE-F (RARG)
<COND (<EQUAL? .RARG ,M-BEG>
<COND (<AND <IN? ,MICHAEL ,GARAGE>
<JUMPED-OUT? ,GARAGE>>
<PLAYER-EMERGES>
<SETG PLAYER-HIDING <>>
<TELL 'MICHAEL " jumps in surprise.">
<COND (<NOT <FSET? ,PLAYER ,TOLD>>
<TELL " ">
<MURDER-TELL ,PLAYER ,MICHAEL>)
(ELSE <CRLF>)>)>)>>
<OBJECT WORKBENCH
(IN GARAGE)
(DESC "workbench")
(SYNONYM WORKBENCH BENCH)
(ADJECTIVE WORK)
(CAPACITY 100)
(FLAGS NDESCBIT SURFACEBIT CONTBIT OPENBIT)>
<OBJECT MERCEDES
(IN GARAGE)
(DESC "Mercedes 280SL")
(SYNONYM CAR MERCEDES 280SL)
(ADJECTIVE MERCEDES)
(ACTION CAR-F)
(FLAGS VEHBIT LOCKED CONTBIT DOORBIT TRANSBIT WINDOWBIT)>
<OBJECT BMW
(IN GARAGE)
(DESC "BMW 320i")
(SYNONYM CAR BMW 320I)
(ADJECTIVE BMW)
(ACTION CAR-F)
(FLAGS VEHBIT LOCKED CONTBIT DOORBIT TRANSBIT WINDOWBIT)>
<ROUTINE TELL-LOCKED ()
<TELL CTHE ,PRSO " is securely locked." CR>>
<ROUTINE CAR-F ("OPTIONAL" (RARG <>))
<COND (<VERB? THROUGH OPEN UNLOCK>
<TELL-LOCKED>)
(<VERB? LOOK-INSIDE>
<TELL
"The windows are tinted, but you can see inside well enough to
tell there is nothing there." CR>)
(<VERB? EXAMINE>
<TELL
"The car is a late-model " D ,PRSO ". It has Maryland plates." CR>)
(<AND <VERB? HIDE-BEHIND> <NOT ,PLAYER-HIDING>>
<SETG PLAYER-HIDING ,PRSO>
<TELL
,YOU-ARE "now hiding behind the car. It's dim here and you are
well concealed." CR>)>>
<OBJECT BMW-TRUNK
(IN BMW)
(DESC "BMW's trunk")
(SYNONYM TRUNK)
(ADJECTIVE BMW BMW\'S)
(ACTION TRUNK-F)
(FLAGS LOCKED CONTBIT SEARCHBIT NDESCBIT)
(CAPACITY 100)>
<OBJECT MERCEDES-TRUNK
(IN MERCEDES)
(DESC "Mercedes' trunk")
(SYNONYM TRUNK)
(ADJECTIVE MERCEDES)
(ACTION TRUNK-F)
(FLAGS LOCKED CONTBIT SEARCHBIT NDESCBIT)
(CAPACITY 100)>
<ROUTINE TRUNK-F ()
<COND (<VERB? OPEN UNLOCK>
<COND (<FSET? ,PRSO ,LOCKED>
<TELL-LOCKED>)>)>>
<OBJECT TOOL-CHEST
(IN GARAGE)
(DESC "tool chest")
(FDESC "In front of the workbench is a battered tool chest.")
(SYNONYM TOOLCHEST CHEST)
(ADJECTIVE BATTERED TOOL)
(CAPACITY 30)
(FLAGS TAKEBIT CONTBIT)>
<OBJECT CROWBAR
(IN TOOL-CHEST)
(DESC "crowbar")
(SYNONYM CROWBAR)
(ACTION CROWBAR-F)
(FLAGS TAKEBIT TOOLBIT)>
<ROUTINE CROWBAR-F ()
<COND (<AND <VERB? UNLOCK> <EQUAL? ,PRSI ,CROWBAR>>
<TELL
"A crowbar doesn't unlock things, it pries them open." CR>)
(<VERB? OPEN MUNG PICK>
<COND (<EQUAL? ,PRSO ,BMW ,MERCEDES ,POLICE-CAR>
<TELL
"Turning to car theft since you can't make it in journalism?" CR>)
(<EQUAL? ,PRSO ,BMW-TRUNK ,MERCEDES-TRUNK>
<COND (<IN? ,MICHAEL ,HERE>
<TELL
"Michael stops you. \"Just what do you think you're doing?\"" CR>)
(<FSET? ,PRSO ,OPENBIT>
<TELL
"The trunk is already open." CR>)
(ELSE
<FCLEAR ,PRSO ,LOCKED>
<FSET ,PRSO ,OPENBIT>
<TELL
"The trunk lid pops open">
<COND (<FIRST? ,PRSO>
<TELL
", revealing ">
<PRINT-CONTENTS ,PRSO>)>
<TELL "." CR>)>)
(<OR <FSET? ,PRSO ,DOORBIT>
<FSET? ,PRSO ,WINDOWBIT>>
<COND (<FSET? ,BURGLAR-ALARM ,ONBIT>
<TELL
"Trying for another B&E, eh?" CR>)
(T
<FSET ,BURGLAR-ALARM ,ONBIT>
<ENABLE <QUEUE I-BURGLAR-ALARM -1>>
<TELL
"Your clumsy attempt to " <COND (<VERB? OPEN> "force open")
(ELSE "smash")> " the " D ,PRSO
" has set off " THE ,BURGLAR-ALARM "." CR>)>)>)>>
<OBJECT BURGLAR-ALARM
(IN GLOBAL-OBJECTS)
(SYNONYM ALARM)
(ADJECTIVE BURGLAR)
(DESC "burglar alarm")
(ACTION BURGLAR-ALARM-F)
(FLAGS NDESCBIT)>
<ROUTINE BURGLAR-ALARM-F ()
<COND (<VERB? LAMP-OFF>
<TELL CTHE ,BURGLAR-ALARM " switch" ,ISNT-HERE CR>)
(<AND <VERB? LISTEN> <FSET? ,BURGLAR-ALARM ,ONBIT>>
<TELL "I take it you are deaf?" CR>)>>
<GLOBAL ALARM-COUNT 0>
<ROUTINE I-BURGLAR-ALARM ()
<COND (<FSET? ,BURGLAR-ALARM ,ONBIT>
<COND (<G? <SETG ALARM-COUNT <+ ,ALARM-COUNT 1>> 30>
<SETG ALARM-COUNT 0>
<FCLEAR ,BURGLAR-ALARM ,ONBIT>
<DISABLE <INT I-BURGLAR-ALARM>>)
(ELSE
<TELL CTHE ,BURGLAR-ALARM " rings stridently." CR>)>)>
<RFALSE>>
\
"Ballroom Area"
<OBJECT GLOBAL-BALLROOM
(IN GLOBAL-OBJECTS)
(SYNONYM BALLROOM)
(DESC "Ballroom")
(ACTION GLOBAL-BALLROOM-F)>
<ROUTINE GLOBAL-BALLROOM-F ()
<COND (<VERB? WALK-TO>
<COND (<IN-BALLROOM? ,HERE>
<TELL-ALREADY-ARE>)
(ELSE
<PERFORM ,V?WALK-TO ,BALLROOM-5>
<RTRUE>)>)>>
<ROOM BALLROOM-1
(IN ROOMS)
(SYNONYM ENTRANCE)
(ADJECTIVE NORTH)
(DESC "North Entrance")
(FDESC "near the north entrance")
(LDESC
"This is the northern end of the ballroom, near the entrance.")
(WEST TO HALLWAY-14)
(SOUTH TO BALLROOM-4)
(EAST TO BALLROOM-2)
(IN TO BALLROOM-5)
(SE TO BALLROOM-5)
(ACTION BALLROOM-F)
(GLOBAL FOOD)
(STATION BALLROOM-4)
(LINE 1 ;BALLROOM-LINE-C)
(CORRIDOR 32)>
<ROOM BALLROOM-2
(IN ROOMS)
(DESC "Near Band")
(FDESC "near the band")
(LDESC
"This is the northern end of the ballroom. A raised area provides a
band platform, and there is a stereo hookup for use when there is
no band.")
(SOUTH TO BALLROOM-5)
(IN TO BALLROOM-5)
(EAST TO BALLROOM-3)
(WEST TO BALLROOM-1)
(SW TO BALLROOM-4)
(SE TO BALLROOM-6)
(ACTION BALLROOM-F)
(GLOBAL FOOD)
(STATION BALLROOM-2)
(LINE 1 ;BALLROOM-LINE-C)>
<ROOM BALLROOM-3
(IN ROOMS)
(DESC "Near Kitchen")
(FDESC "near the kitchen door")
(LDESC
"The northern end of the ballroom, next to the door leading to the
kitchen. To the west is a band platform.")
(NORTH TO KITCHEN)
(SOUTH TO BALLROOM-6)
(WEST TO BALLROOM-2)
(IN TO BALLROOM-5)
(SW TO BALLROOM-5)
(ACTION BALLROOM-F)
(LINE 1 ;BALLROOM-LINE-C)
(STATION BALLROOM-3)
(GLOBAL WINDOW FOOD)>
<ROOM BALLROOM-4
(IN ROOMS)
(SYNONYM ENTRANCE)
(ADJECTIVE CENTER)
(DESC "Center Entrance")
(FDESC "near the center entrance")
(LDESC
"This is the middle area of the ballroom, near the center entrance.")
(NORTH TO BALLROOM-1)
(SOUTH TO BALLROOM-7)
(EAST TO BALLROOM-5)
(IN TO BALLROOM-5)
(WEST TO HALLWAY-13)
(NE TO BALLROOM-2)
(SE TO BALLROOM-8)
(ACTION BALLROOM-F)
(GLOBAL FOOD)
(LINE 1 ;BALLROOM-LINE-C)
(STATION BALLROOM-4)
(CORRIDOR 64)>
<ROOM BALLROOM-5
(IN ROOMS)
(SYNONYM FLOOR)
(ADJECTIVE DANCE)
(DESC "Dance Floor")
(FDESC "on the dance floor")
(LDESC
"This is the dance floor, smack in the center of the ballroom.")
(NORTH TO BALLROOM-2)
(SOUTH TO BALLROOM-8)
(EAST TO BALLROOM-6)
(WEST TO BALLROOM-4)
(SE TO BALLROOM-9)
(SW TO BALLROOM-7)
(NE TO BALLROOM-3)
(NW TO BALLROOM-1)
(ACTION BALLROOM-5-F)
(LINE 1 ;BALLROOM-LINE-C)
(STATION BALLROOM-5)>
<GLOBAL ON-DANCE-FLOOR? <>>
<ROUTINE BALLROOM-5-F ("OPTIONAL" (RARG <>))
<COND (<EQUAL? .RARG ,M-LOOK>
<BALLROOM-F .RARG>)
(<AND <EQUAL? .RARG ,M-ENTER>
<L? ,OVER-COUNT 3>>
<SETG ON-DANCE-FLOOR? T>
<RFALSE>)
(<EQUAL? .RARG ,M-BEG>
<COND (<AND <VERB? WALK FOLLOW> ,ON-DANCE-FLOOR?>
<SETG ON-DANCE-FLOOR? <>>
<TELL
"There are quite a few dancers on the floor, and it takes time to pick
your way among them. You eventually make some progress, though." CR>)
(<AND <VERB? ASK-FOR>
<IN? ,PRSO ,HERE>
<EQUAL? ,PRSI ,BALLROOM-5>>
<PERFORM ,V?DANCE ,PRSO>
<RTRUE>)
(<AND <VERB? PUT>
<EQUAL? ,PRSI ,BALLROOM-5>>
<PERFORM ,V?DROP ,PRSO>
<RTRUE>)>)>>
<ROOM BALLROOM-6
(IN ROOMS)
(DESC "Near French Door")
(FDESC "near the French door leading to the patio")
(LDESC
"This is near the middle of the ballroom, at a French door leading out
to the patio.")
(NORTH TO BALLROOM-3)
(SOUTH TO BALLROOM-9)
(EAST TO PATIO IF FRENCH-DOOR IS OPEN)
(WEST TO BALLROOM-5)
(IN TO BALLROOM-5)
(NW TO BALLROOM-2)
(SW TO BALLROOM-8)
(ACTION BALLROOM-F)
(LINE 1 ;BALLROOM-LINE-C)
(STATION BALLROOM-6)
(CORRIDOR 256)
(FLAGS OPENBIT)
(GLOBAL WINDOW FRENCH-DOOR FOOD)>
<ROOM BALLROOM-7
(IN ROOMS)
(SYNONYM ENTRANCE)
(ADJECTIVE SOUTH)
(DESC "South Entrance")
(FDESC "near the south entrance")
(LDESC
"This is near the south entrance to the ballroom. The fireplace is to
the east, and the long hall is visible outside the entrance.")
(NORTH TO BALLROOM-4)
(SE TO BALLROOM-8)
(EAST TO BALLROOM-8)
(WEST TO HALLWAY-12)
(IN TO BALLROOM-5)
(NE TO BALLROOM-5)
(ACTION BALLROOM-F)
(GLOBAL FOOD)
(LINE 1 ;BALLROOM-LINE-C)
(STATION BALLROOM-7)
(CORRIDOR 128)>
<ROOM BALLROOM-8
(IN ROOMS)
(DESC "Near Fireplace")
(FDESC "near the fireplace")
(LDESC
"This is the south end of the ballroom. A huge fieldstone fireplace
dominates the south wall. The bar is to the east.")
(NORTH TO BALLROOM-5)
(IN TO BALLROOM-5)
(EAST TO BALLROOM-9)
(WEST TO BALLROOM-7)
(NW TO BALLROOM-4)
(NE TO BALLROOM-6)
(STATION BALLROOM-8)
(LINE 1 ;BALLROOM-LINE-C)
(ACTION BALLROOM-8-F)
(GLOBAL FOOD)>
<OBJECT BAR
(IN BALLROOM-9)
(DESC "bar")
(SYNONYM BAR)
(ACTION BAR-F)
(FLAGS NDESCBIT)>
<ROUTINE BAR-F ()
<COND (<VERB? WALK-TO>
<COND (<EQUAL? ,HERE ,BALLROOM-9>
<TELL
"Jack Johnson, the bartender, greets you. He looks at you quizzically,
no doubt expecting you to order a drink." CR>)
(ELSE
<PERFORM ,V?WALK-TO ,BALLROOM-9>
<RTRUE>)>)>>
<OBJECT LOCAL-BAND
(IN BALLROOM-2)
(DESC "band")
(SYNONYM BAND)
(ACTION LOCAL-BAND-F)
(DESCFCN LOCAL-BAND-DESC-F)
(FLAGS PERSON THE)>
<ROUTINE LOCAL-BAND-DESC-F ("OPTIONAL" (RARG <>))
<COND (<IN? ,LOCAL-BAND ,KITCHEN>
<TELL
"The band members are on their break. They are sitting around joking,
drinking coffee, and wolfing down sandwiches and shrimp cocktail." CR>)
(ELSE
<TELL
"The band is here, playing their set." CR>)>>
<ROUTINE LOCAL-BAND-F ()
<COND (<EQUAL? ,LOCAL-BAND ,WINNER>
<TELL "The band is busy ">
<COND (<IN? ,LOCAL-BAND ,KITCHEN>
<TELL "resting and eating">)
(ELSE <TELL "performing">)>
<TELL ", and has no time to talk." CR>)
(<AND <VERB? SHOW> <EQUAL? ,PRSI ,LOCAL-BAND>>
<TELL "These guys are pretty cool, and react accordingly." CR>)
(<VERB? SMELL>
<TELL "The band stinks." CR>)
(<TALKING-TO? ,LOCAL-BAND>
<TELL "The band is too busy "
<COND (<IN? ,LOCAL-BAND ,KITCHEN> "eating")
(T "playing")> " to respond." CR>)
(<VERB? EXAMINE>
<COND (<G? ,PRESENT-TIME 764>
<TELL "What band?" CR>
<RTRUE>)>
<TELL
"The band consists of five guys in checked sport coats. They are very
professional, but their repertoire is basically middle-of-the-road,
either because they like it that way or because they were asked
to play that sort of thing." CR>)
(<VERB? FIND FOLLOW>
<COND (<G? ,PRESENT-TIME 764>
<TELL "What band? They've gone home." CR>)
(<EQUAL? ,HERE <LOC ,LOCAL-BAND>>
<TELL "They're right">
<TELL-HERE>)
(ELSE
<TELL
"They're either in the ballroom or the kitchen." CR>)>)
(<VERB? WALK-TO>
<COND (<G? ,PRESENT-TIME 764>
<TELL "What band? They've gone home." CR>)
(<EQUAL? ,HERE <LOC ,LOCAL-BAND>>
<TELL-CLOSE-ENOUGH>)
(ELSE
<PERFORM ,V?WALK-TO <LOC ,LOCAL-BAND>>
<RTRUE>)>)
(<VERB? LISTEN>
<COND (,BAND-PLAYING?
<TELL
"The band is playing \"" ,BAND-PLAYING? ".\"" CR>)
(<G? ,PRESENT-TIME 764>
<TELL
"The band has gone home." CR>)
(ELSE
<TELL
"The band is on its break." CR>)>)>>
<OBJECT RECORD-PLAYER
(IN BALLROOM-2)
(DESC "record player")
(SYNONYM PLAYER)
(ADJECTIVE RECORD)
(ACTION RECORD-PLAYER-F)
(FLAGS NDESCBIT)>
<ROUTINE RECORD-PLAYER-F ()
<COND (<VERB? EXAMINE>
<TELL
"This is a state-of-the-art stereo system, not really " A ,RECORD-PLAYER ".
It is actually installed in the wall behind the band. It looks very
high-tech and glitzy." CR>)
(<VERB? WALK-TO>
<COND (<EQUAL? ,HERE ,BALLROOM-2>
<TELL-CLOSE-ENOUGH>)
(ELSE
<PERFORM ,V?WALK-TO ,BALLROOM-2>
<RTRUE>)>)
(<VERB? LISTEN>
<TELL CTHE ,RECORD-PLAYER " is">
<COND (,RECORD-PLAYING?
<TELL
" playing \"" ,RECORD-PLAYING? ".\"" CR>)
(,PARTY-OVER
<TELL
" turned off." CR>)
(ELSE
<TELL
"n't playing anything." CR>)>)>>
<OBJECT MUSIC
(IN GLOBAL-OBJECTS)
(DESC "music")
(SYNONYM MUSIC)
(ACTION MUSIC-F)
(FLAGS NDESCBIT)>
<ROUTINE MUSIC-F ()
<COND (<VERB? LISTEN>
<COND (<IN-BALLROOM? ,PLAYER>
<COND (,BAND-PLAYING?
<PERFORM ,V?LISTEN ,LOCAL-BAND>)
(,RECORD-PLAYING?
<PERFORM ,V?LISTEN ,RECORD-PLAYER>)
(ELSE <TELL "You hear no music." CR>)>
<RTRUE>)
(ELSE
<TELL-YOU-CANT "hear any music">)>)>>
<OBJECT FIREPLACE
(IN BALLROOM-8)
(DESC "fieldstone fireplace")
(SYNONYM FIREPLACE FIRE CHIMNEY)
(ADJECTIVE LARGE FIELDSTONE)
(ACTION FIREPLACE-F)
(DESCFCN FIREPLACE-F)
(CONTFCN FIREPLACE-F)
(CAPACITY 500)
(FLAGS CONTBIT OPENBIT SEARCHBIT)>
<ROUTINE FIREPLACE-F ("OPTIONAL" (RARG <>))
<COND (<==? .RARG ,M-OBJDESC>
<COND (<FIRST? ,FIREPLACE>
<TELL
,THERE-IS "something other than logs burning in the fireplace." CR>)>
<RTRUE>)>
<COND (<AND <VERB? TAKE>
<NOT <EQUAL? ,PRSO ,FIREPLACE ,INVESTOR-LIST>>>
<COND (<FSET? ,PRSO ,BURNBIT>
<TELL
"You try, but it's aflame and you almost burn yourself." CR>)
(T
<TELL
"It's too hot from the fire." CR>)>)
(<AND <VERB? POUR-ON>
<EQUAL? ,PRSO ,DRINK>
<EQUAL? ,PRSI ,FIREPLACE>>
<TELL "Some of " THE ,DRINK " sizzles away to vapor." CR>)
(<AND <VERB? PUT BURN DROP>
<EQUAL? ,PRSI ,FIREPLACE>>
<COND (<EQUAL? ,PRSO ,ME ,PLAYER>
<PERFORM ,V?KILL ,PLAYER>
<RTRUE>)
(<EQUAL? ,PRSO ,CORPSE ,FAIRY-COSTUME>
<TELL
"You stop short, realizing that it would look very bad and ensure your
conviction for the murder." CR>
<RTRUE>)>
<FCLEAR ,PRSO ,WEARBIT>
<MOVE ,PRSO ,FIREPLACE>
<ENABLE <QUEUE I-BURN-OBJ 2>>
<TELL
CTHE ,PRSO " goes into the fire">
<COND (<FSET? ,PRSO ,BURNBIT>
<TELL ", where it begins to burn">)>
<TELL "." CR>)
(<VERB? LAMP-OFF>
<TELL-YOU-CANT "put out the fire">)
(<VERB? EXAMINE LOOK-INSIDE>
<COND (<PRINT-CONTENTS ,FIREPLACE
"In the fireplace, endangered by the fire, you can see ">
<TELL "." CR>)
(ELSE
<TELL
,THERE-IS "a cheery and warm fire burning in the fireplace." CR>)>)
(<VERB? THROUGH>
<TELL
"It's certainly chilly and damp tonight, but I don't think that's the best
way to do something about it." CR>)
(<VERB? WALK-TO>
<COND (<EQUAL? ,HERE ,BALLROOM-8>
<TELL-CLOSE-ENOUGH>)
(ELSE
<PERFORM ,V?WALK-TO ,BALLROOM-8>
<RTRUE>)>)>>
<ROUTINE TELL-CLOSE-ENOUGH ()
<TELL ,YOU-ARE "close enough already." CR>>
<ROUTINE I-BURN-OBJ ("AUX" (F <FIRST? ,FIREPLACE>) (BURNED <>))
<REPEAT ()
<COND (<FSET? .F ,BURNBIT>
<COND (.BURNED
<ENABLE <QUEUE I-BURN-OBJ 1>>)>
<SET BURNED .F>)>
<COND (<NOT <SET F <NEXT? .F>>>
<RETURN>)>>
<COND (.BURNED
<MOVE .BURNED ,POLICE-LAB>
<COND (<EQUAL? ,HERE ,BALLROOM-8>
<TELL
CTHE .BURNED " has now been consumed by the fire." CR>)>)>>
<GLOBAL MICHAEL-GREETING? <>>
<ROUTINE BALLROOM-8-F ("OPTIONAL" (RARG <>))
<COND (<==? .RARG ,M-LOOK>
<BALLROOM-F ,M-LOOK>)
(<==? .RARG ,M-END>
<COND (<IN-MOTION? ,VERONICA>
<RFALSE>)
(<AND <NOT ,MICHAEL-GREETING?>
<IN? ,MICHAEL ,HERE>
<IN? ,VERONICA ,HERE>>
<SETG MICHAEL-GREETING? T>
<DISABLE <INT I-WAVE-2>>
<ENABLE <QUEUE I-SPILL 1>>
<VERONICA-UNMASKS>
<CRLF>
<TELL
"The sheik, " 'MICHAEL ", nods a greeting. \"The weather out there is horrible: glad
you could make it.\" He introduces you to the group around him. \"...and
you already know " 'VERONICA ".\" The fairy nods in your direction. \"You might
find this worth adding to your story,\" he suggests." CR>)>)>>
<ROOM BALLROOM-9
(IN ROOMS)
(DESC "Near Bar")
(FDESC "at the bar")
(LDESC
"This is the south end of the ballroom, at the bar.")
(NORTH TO BALLROOM-6)
(WEST TO BALLROOM-8)
(NW TO BALLROOM-5)
(IN TO BALLROOM-5)
(ACTION BALLROOM-9-F)
(STATION BALLROOM-9)
(LINE 1 ;BALLROOM-LINE-C)
(FLAGS OPENBIT)
(GLOBAL WINDOW FOOD)>
<ROUTINE BALLROOM-9-F ("OPTIONAL" (RARG <>))
<COND (<==? .RARG ,M-LOOK>
<BALLROOM-F ,M-LOOK>)
(<AND <==? .RARG ,M-ENTER>
<G? ,ARGUMENT-COUNT 0>>
<TELL
"You seem to have come in on the midst of " A ,DISCUSSION "." CR>)>>
<GLOBAL COSTUMES
<LTABLE 0
"a man in street clothes wearing a square white plastic mask"
"a woman disguised as a peanut butter sandwich"
"a man who looks like Cardinal Richelieu"
"three people dressed as mice wearing dark glasses"
"a Pac-man"
"a giant spider"
"a short, cuddly-looking robot"
"a grue"
"a six-foot tall invisible rabbit">>
<ROUTINE BALLROOM-F (RARG)
<COND (<==? .RARG ,M-LOOK>
<TELL <GETP ,HERE ,P?LDESC> CR>
<COND (,PARTY-OVER
<TELL
"The ballroom has emptied of the mob that inhabited it a few hours ago.
Only a few crushed potato chips and some discarded shoes remain to
testify to the revelry.">)
(ELSE
<TELL
"Elsewhere in this large ballroom, there are ">
<COND (<EQUAL? ,OVER-COUNT 0>
<TELL "scores of other ">)>
<TELL "party
guests dressed in all sorts of outlandish costumes">
<COND (<PROB 50>
<TELL ", such as " <PICK-ONE ,COSTUMES>>)>
<TELL ". On the dance
floor are " <COND (,RECORD-PLAYING? "many of the younger")
(ELSE "some of the older")> " dancers. ">
<COND (,BAND-PLAYING?
<TELL "The band is playing \"" ,BAND-PLAYING? ".\"">)
(ELSE
<TELL
"A " 'RECORD-PLAYER " is playing \"" ,RECORD-PLAYING? "\" (the band is on
its break).">)>
<CRLF>
<TELL "On the
periphery of the room small groups can be seen, discussing everything
from politics to local scandals.">)>
<WHO-DERE ,BALLROOM-1>
<WHO-DERE ,BALLROOM-2>
<WHO-DERE ,BALLROOM-3>
<WHO-DERE ,BALLROOM-4>
<WHO-DERE ,BALLROOM-5>
<WHO-DERE ,BALLROOM-6>
<WHO-DERE ,BALLROOM-7>
<COND (<NOT <IN? ,VERONICA ,BALLROOM-8>>
<WHO-DERE ,BALLROOM-8>)>
<WHO-DERE ,BALLROOM-9>
<CRLF>)>>
<ROUTINE WHO-DERE (RM "AUX" F (CH? 0))
<COND (<NOT <EQUAL? .RM ,HERE>>
<SET F <FIRST? .RM>>
<REPEAT ()
<COND (<NOT .F>
<COND (<G? .CH? 1> <TELL "are">)
(<EQUAL? .CH? 1> <TELL "is">)
(ELSE <RETURN>)>
<TELL " " <GETP .RM ,P?FDESC> ".">
<RETURN>)
(<AND <FSET? .F ,PERSON>
<NOT <EQUAL? .F ,LOCAL-BAND>>>
<COND (<EQUAL? .CH? 0> <TELL " ">)
(ELSE <TELL "and ">)>
<COND (<EQUAL? .CH? 0> <TELL CD .F " ">)
(ELSE <TELL D .F " ">)>
<SET CH? <+ .CH? 1>>)>
<SET F <NEXT? .F>>>)>>
<GLOBAL BAND-PLAYING? <>>
<GLOBAL RECORD-PLAYING? <>>
<ROUTINE I-MUSIC ("AUX" MINUTES (IB? <IN-BALLROOM? ,WINNER>))
<COND (,PARTY-OVER
<SETG BAND-PLAYING? <>>
<SETG RECORD-PLAYING? <>>
<RFALSE>)>
<ENABLE <QUEUE I-MUSIC 10>>
<SET MINUTES <MOD ,PRESENT-TIME 60>>
<COND (<OR <G? .MINUTES 45> <G? ,PRESENT-TIME 764>>
<SETG RECORD-PLAYING? <PICK-ONE ,RECORDS>>
<COND (,BAND-PLAYING?
<COND (<G? ,PRESENT-TIME 764>
<MOVE ,LOCAL-BAND ,GLOBAL-OBJECTS>)
(ELSE
<MOVE ,LOCAL-BAND ,KITCHEN>)>
<SETG BAND-PLAYING? <>>
<COND (.IB?
<TELL
"The band is " <COND (<G? ,PRESENT-TIME 764> "going home")
(ELSE "starting its break")>
" now, but to fill the gap, " A ,RECORD-PLAYER "
has been started. It's playing \"" ,RECORD-PLAYING? ".\"" CR>)>)
(.IB?
<TELL
"The record changes. It's now playing \"" ,RECORD-PLAYING? ".\"" CR>)>)
(ELSE
<SETG BAND-PLAYING? <PICK-ONE ,TUNES>>
<COND (,RECORD-PLAYING?
<MOVE ,LOCAL-BAND ,BALLROOM-2>
<SETG RECORD-PLAYING? <>>
<COND (.IB?
<TELL
"The band has returned from its break. They start their new set with
\"" ,BAND-PLAYING? ".\"" CR>)>)
(.IB?
<TELL
"After a short pause, the band begins to play \"" ,BAND-PLAYING? ".\"" CR>)>)>
<RFALSE>>
<GLOBAL RECORDS
<LTABLE 0
"Karma Chameleon"
"Stairway to Heaven"
"Light My Fire"
"Pretty Woman">>
<GLOBAL TUNES
<LTABLE 0
"Michelle"
"Singing in the Rain"
"I Left My Heart in San Francisco"
"Mona Lisa"
"My Way"
"Tennessee Waltz">>
\
<ROOM PATIO
(IN ROOMS)
(SYNONYM PATIO)
(DESC "Patio")
(LDESC
"This is a large flagstone patio east of the house. Paths lead
north to the back porch and south towards the front of the house. To
east is a pond, and in the distance you can see fences marking off
the boundaries of pastures.")
(IN TO BALLROOM-6 IF FRENCH-DOOR IS OPEN)
(WEST TO BALLROOM-6 IF FRENCH-DOOR IS OPEN)
(EAST TO POND)
(SOUTH TO OUTSIDE)
(NORTH TO BACK-PORCH)
(STATION PATIO)
(LINE 4 ;OUTSIDE-LINE-C)
(FLAGS OPENBIT)
(GLOBAL WINDOW FRENCH-DOOR)>
<ROOM OUTSIDE
(IN ROOMS)
(DESC "Outside House")
(LDESC
"This is outside the house to the east, south of the patio
and west of the pond.")
(WEST TO HALLWAY-19 IF EAST-DOOR IS OPEN)
(NORTH TO PATIO)
(EAST TO POND)
(SOUTH TO CIRCLE)
(STATION OUTSIDE)
(LINE 4 ;OUTSIDE-LINE-C)
(FLAGS OPENBIT)
(GLOBAL WINDOW EAST-DOOR)>
<ROOM POND
(IN ROOMS)
(SYNONYM POND)
(DESC "Pond")
(LDESC
"This is a small pond, all of whose plants and animals have shut up shop
for the winter. A path leads northwest to the patio from here.")
(NW TO PATIO)
(WEST TO OUTSIDE)
(EAST
"Even if you win the Pulitzer prize for this story, you still won't be
able to walk on water.")
(STATION OUTSIDE)
(LINE 4 ;OUTSIDE-LINE-C)
(GLOBAL GLOBAL-PLANTS)
(PSEUDO "POND" POND-PSEUDO)>
<ROUTINE POND-PSEUDO ()
<COND (<VERB? EXAMINE>
<TELL "It's a small man-made pond." CR>)
(<VERB? THROUGH LEAP>
<TELL
"You would get all wet and slimy." CR>)>>
<ROOM WEST-OF-HOUSE
(IN ROOMS)
(DESC "West of House")
(LDESC
"Outside the house, just west of a door that opens onto a long east-west
hallway.")
(EAST TO HALLWAY-1 IF WEST-DOOR IS OPEN)
(IN TO HALLWAY-1 IF WEST-DOOR IS OPEN)
(NORTH TO WEST-OF-GARAGE)
(SOUTH TO CIRCLE)
(GLOBAL WEST-DOOR)
(LINE 4 ;OUTSIDE-LINE-C)
(STATION WEST-OF-HOUSE)>
<ROOM WEST-OF-GARAGE
(IN ROOMS)
(DESC "West of Garage")
(LDESC
"Outside the house, west of the garage. A path leads south to a door and
north to the back of the house. On the other side of the drive is a door
to one of the nearer horse barns.")
(EAST "The garage doors are closed and locked.")
(WEST TO BARN IF BARN-DOOR IS OPEN)
(NORTH TO NORTH-OF-HOUSE)
(SOUTH TO WEST-OF-HOUSE)
(LINE 4 ;OUTSIDE-LINE-C)
(STATION WEST-OF-GARAGE)
(GLOBAL GARAGE-DOOR BARN-DOOR)
(PSEUDO "BARN" BARN-F)>
<ROOM NORTH-OF-HOUSE
(IN ROOMS)
(DESC "North of House")
(LDESC
"This is north of the house and west of the garden, where the hill
slopes down to pastures and paddocks. To the south is the house and
to the west the garage.")
(WEST TO WEST-OF-GARAGE)
(EAST TO GARDEN)
(SE TO GARDEN)
(LINE 4 ;OUTSIDE-LINE-C)
(STATION NORTH-OF-HOUSE)>
<ROOM GARDEN
(IN ROOMS)
(SYNONYM GARDEN)
(DESC "Garden")
(LDESC
"This is a rain-drenched and soggy garden. Against the garage to the west is
a doghouse. Flagstone paths lead northeast and northwest, and a glass door
leads to the hallway.")
(NW TO NORTH-OF-HOUSE)
(NE TO BACK-PORCH)
(EAST TO HALLWAY-14 IF SLIDING-DOOR IS OPEN)
(SE TO HALLWAY-14 IF SLIDING-DOOR IS OPEN)
(SOUTH TO WALKWAY)
(ACTION GARDEN-F)
(GLOBAL SLIDING-DOOR GLOBAL-PLANTS)
(LINE 4 ;OUTSIDE-LINE-C)
(STATION GARDEN)>
<ROUTINE GARDEN-F ("OPTIONAL" (RARG <>))
<COND (<EQUAL? .RARG ,M-ENTER>
<COND (,DOG-FRIENDLY?
<TELL
"As you enter, the dog emerges briefly from his house, recognizes you,
and returns." CR CR>)
(ELSE
<MOVE ,DOG ,GARDEN>
<FCLEAR ,DOG ,NDESCBIT>
<ENABLE <QUEUE I-DOG 5>>
<TELL
"As you enter the garden, a large, rather vicious sounding dog emerges from "
THE ,DOGHOUSE ". He confronts you, growling and sniffing." CR CR>)>)
(<EQUAL? .RARG ,M-BEG>
<COND (<AND <IN? ,DOG ,HERE> <VERB? WALK>>
<COND (,DOG-FRIENDLY?
<TELL
"The dog watches you go, his tail wagging." CR>
<RFALSE>)
(<AND ,OHERE
<EQUAL? ,PRSO
<DIR-FROM ,HERE ,OHERE>>>
<TELL
"The dog somewhat reluctantly allows you to retreat." CR>
<RFALSE>)
(ELSE
<TELL
"The dog bars your way, growling and sniffing. He obviously doesn't trust
you. His teeth are bared and his neck hair stands on end." CR>)>)>)>>
<ROUTINE I-DOG ("AUX" (D <LOC ,DOG>))
<COND (<NOT <FSET? ,DOG ,RMUNGBIT>>
<MOVE ,DOG ,DOGHOUSE>
<FSET ,DOG ,NDESCBIT>
<COND (<EQUAL? ,HERE .D>
<SETG DOG-FRIENDLY? T>
<TELL
"Finally the dog decides you mean no harm, gives you one last sniff and
returns to his house." CR>)>)>>
<OBJECT DOGHOUSE
(IN GARDEN)
(DESC "doghouse")
(SYNONYM DOGHOUSE HOUSE)
(ADJECTIVE DOG)
(ACTION DOGHOUSE-F)
(FLAGS NDESCBIT OPENBIT CONTBIT)
(CAPACITY 30)>
<ROUTINE DOGHOUSE-F ("OPTIONAL" (RARG <>))
<COND (<NOT .RARG>
<COND (<VERB? THROUGH>
<TELL
"Your editor may want to send you to " THE ,DOGHOUSE ", but this is
ridiculous!" CR>)
(<VERB? EXAMINE>
<TELL
CTHE ,DOGHOUSE " is a miniature of the main house. It's quite cute. It's
also pretty large." CR>)
(<VERB? SMELL>
<TELL
"It smells of wet dog." CR>)
(<VERB? LOOK-INSIDE>
<COND (<IN? ,DOG ,DOGHOUSE>
<TELL
,THERE-IS "a large, wet Doberman pinscher in " THE ,DOGHOUSE "." CR>)
(ELSE
<TELL CTHE ,DOGHOUSE " is empty." CR>)>)>)>>
<OBJECT DOG
(IN DOGHOUSE)
(DESC "Doberman pinscher")
(SYNONYM DOG DOBERMAN PINSCHER)
(ADJECTIVE DOBERMAN GUARD WATCH)
(ACTION DOG-F)
(FLAGS NDESCBIT THE PERSON TAKEBIT TRYTAKEBIT)>
<GLOBAL DOG-FRIENDLY? <>>
<ROUTINE DOG-F ()
<COND (<OR <EQUAL? ,WINNER ,DOG>
<TALKING-TO? ,DOG>>
<COND (,DOG-FRIENDLY?
<TELL
"The dog listens intently, but doesn't seem to understand you." CR>)
(ELSE
<TELL
"The dog growls." CR>)>)
(<VERB? ATTACK KILL KICK SLAP>
<FSET ,DOG ,RMUNGBIT>
<TELL
"Its ">
<COND (,DOG-FRIENDLY?
<TELL "trust betrayed">)
(T
<TELL "suspicions confirmed">)>
<TELL ", the dog bites you on the leg. It continues
to block the path." CR>)
(<VERB? GIVE SHOW>
<TELL "The dog sniffs it, but doesn't want it." CR>)
(<VERB? TAKE MOVE>
<TELL "This dog is as big as you are." CR>)
(<VERB? RUB>
<COND (,DOG-FRIENDLY?
<TELL
"The dog wags his tail, spattering you with water. He enjoys being
patted." CR>)
(<FSET? ,DOG ,RMUNGBIT>
<TELL
"The dog bites your hand." CR>)
(ELSE
<TELL
"As your hand approaches, the dog snaps at it, more as a warning than as
a real attack." CR>)>)>>
;"RANDOM DOORS"
<OBJECT NORTH-DOOR
(IN LOCAL-GLOBALS)
(DESC "north hallway door")
(SYNONYM DOOR)
(ADJECTIVE NORTH HALLWAY)
(UNLOCK HALLWAY-7)
(GENERIC GENERIC-STUFF-F)
(FLAGS DOORBIT LOCKED NDESCBIT)>
<OBJECT WEST-DOOR
(IN LOCAL-GLOBALS)
(DESC "west hall door")
(SYNONYM DOOR)
(ADJECTIVE WEST HALL)
(UNLOCK HALLWAY-1)
(GENERIC GENERIC-STUFF-F)
(FLAGS DOORBIT LOCKED NDESCBIT)>
<OBJECT WEST-BATH-DOOR
(IN LOCAL-GLOBALS)
(DESC "west bath door")
(SYNONYM DOOR)
(ADJECTIVE WEST)
(UNLOCK WEST-BATH)
(GENERIC GENERIC-STUFF-F)
(FLAGS DOORBIT NDESCBIT)>
<OBJECT LINEN-CLOSET-DOOR
(IN LOCAL-GLOBALS)
(DESC "linen closet door")
(SYNONYM DOOR)
(ADJECTIVE LINEN CLOSET)
(UNLOCK ROOMS) ;"no lock"
(GENERIC GENERIC-STUFF-F)
(FLAGS DOORBIT NDESCBIT)>
<OBJECT GARAGE-DOOR
(IN LOCAL-GLOBALS)
(DESC "garage door")
(SYNONYM DOOR DOORS)
(ADJECTIVE GARAGE)
(FLAGS DOORBIT NDESCBIT LOCKED)>
<OBJECT WALKWAY-DOOR
(IN LOCAL-GLOBALS)
(DESC "walkway door")
(SYNONYM DOOR)
(ADJECTIVE WALKWAY)
(UNLOCK GARAGE)
(GENERIC GENERIC-STUFF-F)
(FLAGS DOORBIT NDESCBIT)>
<OBJECT SUN-ROOM-DOOR
(IN LOCAL-GLOBALS)
(DESC "sun room door")
(SYNONYM DOOR)
(ADJECTIVE SUN ROOM)
(UNLOCK SUN-ROOM)
(GENERIC GENERIC-STUFF-F)
(FLAGS DOORBIT NDESCBIT)>
<OBJECT EAST-DOOR
(IN LOCAL-GLOBALS)
(DESC "east hall door")
(SYNONYM DOOR)
(ADJECTIVE EAST HALL)
(UNLOCK HALLWAY-19)
(GENERIC GENERIC-STUFF-F)
(FLAGS LOCKED DOORBIT NDESCBIT)>
<OBJECT FRENCH-DOOR
(IN LOCAL-GLOBALS)
(DESC "french door")
(SYNONYM DOOR DOORS)
(ADJECTIVE FRENCH)
(UNLOCK BALLROOM-6)
(FLAGS LOCKED DOORBIT NDESCBIT)>
<OBJECT SLIDING-DOOR
(IN LOCAL-GLOBALS)
(DESC "sliding glass door")
(SYNONYM DOOR WINDOW GLASS)
(ADJECTIVE SLIDING GLASS)
(UNLOCK HALLWAY-14)
(FLAGS LOCKED DOORBIT NDESCBIT)>
<ROOM BARN
(IN ROOMS)
(SYNONYM BARN)
(DESC "Barn")
(EAST TO WEST-OF-GARAGE IF BARN-DOOR IS OPEN)
(ACTION BARN-F)
(GLOBAL BARN-DOOR)
(STATION WEST-OF-GARAGE)
(LINE 4 ;OUTSIDE-LINE-C)
(PSEUDO "BARN" BARN-F)>
<OBJECT BARN-DOOR
(IN LOCAL-GLOBALS)
(DESC "barn door")
(SYNONYM DOOR)
(ADJECTIVE BARN)
(UNLOCK BARN)
(GENERIC GENERIC-STUFF-F)
(FLAGS DOORBIT NDESCBIT LOCKED)>
<ROUTINE BARN-F (RARG)
<COND (<EQUAL? .RARG ,M-ENTER>
<TELL
"As you enter the barn, you see a horrific sight. Entering
in haste, and without light, " 'MICHAEL " and " 'ALICIA " scared " 'VERONICA
"'s horse
into a state of thrashing, rearing terror. It smashed the door of its
stall and trampled Michael, who lies in the straw, apparently dead. "
'ALICIA " is ">
<COND (<IN? ,ALICIA ,HERE>
<TELL
"screaming in terror. The poor horse, its flanks heaving, is
in a corner looking fearfully from side to side." CR>)
(ELSE
<TELL "nowhere to be seen." CR>)>
<SETG FLEEING? <>>
<SETG DETECTIVE-SEEN ,DETECTIVE-CONVINCED>
<SETG DETECTIVE-SEEN-CORPSE? T>
<SETG DETECTIVE-SEEN-ROPE? T>
<SETG DETECTIVE-SEEN-COAT? T>
<SETG DETECTIVE-SEEN-GLASS? T>
<SETG DETECTIVE-SEEN-HAIR? T>
<SETG DETECTIVE-SEEN-CARD? T>
<SETG DETECTIVE-SEEN-AGREEMENT? T>
<SETG DETECTIVE-SEEN-TRUST-DOCUMENTS? T>
<SETG DETECTIVE-SEEN-LIST? T>
<SETG GLASS-ANALYZED? T>
<SETG GLASS-ANALYZED-FOR-PRINTS? T>
<SETG DETECTIVE-TOLD-ABOUT-RAIN? T>
<COND (<IN? ,ALICIA ,BARN>
<SETG MICHAEL-DEAD? T>
<ARREST ,MICHAEL ,ALICIA>)
(ELSE
<FINISH>)>
<RFATAL>)
(<NOT .RARG>
<COND (<AND <VERB? THROUGH WALK-TO>
<EQUAL? ,PRSO ,PSEUDO-OBJECT>>
<PERFORM ,V?WALK-TO ,BARN>
<RTRUE>)
(<VERB? EXAMINE>
<TELL
"This is a well-kept, red-and-white-painted horse barn." CR>)>)>>
<GLOBAL MICHAEL-DEAD? <>>
;"end of places"