sherlock/places3.zil

1734 lines
63 KiB
Plaintext

; "context value meanings for descfcn (so far):"
; " 1 = The desc upon entering when the room is not touched (first time)"
; " 2 = The desc upon entering when the room is touched & the desc-level is verbose"
; " 3 = The desc of the room when the player types LOOK"
; "return value meanings for descfcn routines (so far):"
; " RTRUE means RT-DESCRIBE-PLACE-CONTENTS will NOT be executed"
; " RFALSE means RT-DESCRIBE-PLACE-CONTENTS will be executed"
; "TIME-OF-DAY-NUMBERS: 0=DARK 1=SUNRISE 2=DAY 3=SUNSET"
<ROUTINE RT-AC-RM-221B-BAKER-ST ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-221B-BAKER-ST" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<COND (<T? .CONTEXT> <RFALSE>)
(T
; "former shadow object code"
<COND (<MC-VERB? ENTER>
<COND (<MC-HERE? ,RM-ENTRY-HALL>
<RT-DO-WALK ,P?EAST>
<RTRUE>)>)>
<RFALSE>)>)
(<EQUAL? .CONTEXT ,K-M-DESC-2>
<COND (<EQUAL? ,GL-PLACE-PRV ,RM-ENTRY-HALL>
<TELL "You emerge from the house into">)
(T
<TELL "You">
<RT-DRIVE-WALK-MSG?>
<TELL "into">)>
<TELL " Baker Street." CR CR>)>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2 ,K-M-DESC-3>
<TELL "You are">
<RT-IN-VEHICLE-MSG>
<COND (<EQUAL? <RT-TIME-OF-DAY> 0 1 3>
<TELL "in the spill of a gas streetlight ">)>
<TELL "outside Holmes's house. The street ">
<COND (<EQUAL? <RT-TIME-OF-DAY> 0>
<TELL "disappears into the fog">)
(T
<TELL "continues">)>
<TELL " to the north and south. The door to the house is to
the west." CR>)>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,LG-BAKER-ST-DOOR ,FL-SEEN>
<MC-MAKE ,CH-PLAYER ,FL-SEEN>
<TELL CR
"You have come in response to an urgent summons from your old landlady,
Mrs Hudson. As the fog swirls around you, you huddle into your coat and
shiver in the predawn chill." CR>
<RTRUE>)
(<EQUAL? .CONTEXT ,K-M-DESC-3 ,K-M-DESC-2>
<COND (<IN? ,CH-HOLMES ,RM-221B-BAKER-ST>
<COND (<MC-F? ,GL-PUPPY>
<TELL CR
CTHE ,CH-HOLMES " says, \"Ah, there you are Watson. While you were inside
I gave our little problem some thought. Obviously the person who stole the
Crown Jewels wanted the authorities to turn to me for help, and it is equally
obvious that the thief has laid down a trail for me to follow, in hopes of
somehow entrapping me." CR CR
"\"So let's play his game, Doctor. But let's play it by our rules. The thief
will have tried to anticipate the sequence of my actions, and I'm sure he has
laid his trap accordingly. But if ">
<HLIGHT ,K-H-ITL>
<TELL "you">
<HLIGHT ,K-H-NRM>
<TELL " were to guide the course of our
investigations, he will certainly be thrown off the scent." CR CR
"\"Therefore, let us take surprise onto our side and rely on your instincts
as the man of action I know you to be - despite your frequent modest
assertions to the contrary.\" He steps to one side and says, \"Lead on, good
Doctor. I will follow.\" Holmes gestures for you to lead the way." CR>
<SETG GL-PUPPY ,CH-HOLMES>
<SETG GL-PUPPY-MSG? <>>
<RTRUE>)
(T
<RFALSE>)>)
(T
<RFALSE>)>)
(<EQUAL? .CONTEXT ,K-M-DESC-2 ,K-M-DESC-3>
<RFALSE>)>>
<ROUTINE RT-AC-RM-ENTRY-HALL ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-ENTRY-HALL" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<COND (<T? .CONTEXT> <RFALSE>)>
<COND (<MC-VERB? ENTER>
<COND (<MC-HERE? ,RM-221B-BAKER-ST>
<RT-DO-WALK ,P?WEST>
<RTRUE>)
(<MC-HERE? ,RM-PARLOUR>
<RT-DO-WALK ,P?SOUTH>
<RTRUE>)
(<MC-HERE? ,RM-VESTIBULE>
<RT-DO-WALK ,P?DOWN>
<RTRUE>)
(T
<TELL "You'll have to be more explicit." CR>)>)>
<RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,CH-HUDSON ,FL-SEEN>
;<MC-MAKE ,TH-GAS-LIGHT ,FL-SEEN>
;<MC-MAKE ,TH-HUDSON-BODY ,FL-SEEN>
<MC-MAKE ,RM-ENTRY-HALL ,FL-TOUCHED>
<TELL CR "You step inside and Mrs Hudson closes the door behind
you. The entry hall is just as you remember it - small, underheated, and lit
by a feeble gas light. " ,K-WELL-WORN-MSG>
<RTRUE>)
(<EQUAL? .CONTEXT ,K-M-DESC-2>
<COND (<EQUAL? ,GL-PLACE-PRV ,RM-221B-BAKER-ST>
<TELL
"You enter the house and pause in the entry hall. " ,K-WELL-WORN-MSG CR>)
(<EQUAL? ,GL-PLACE-PRV ,RM-VESTIBULE>
<TELL
"You descend the stairs into the entry hall. The parlour door is to
the north. ">
<RT-OPEN-CLOSED-MSG ,LG-BAKER-ST-DOOR>
<CRLF>)
(T
<TELL "You walk out into the entry hall. ">
<RT-OPEN-CLOSED-MSG ,LG-BAKER-ST-DOOR>
<CRLF>)>
<RFALSE>)
(<==? .CONTEXT ,K-M-DESC-3>
<TELL ,K-WELL-WORN-MSG " ">
<RT-OPEN-CLOSED-MSG ,LG-BAKER-ST-DOOR>
<CRLF>
<RFALSE>)
(<==? <GETP ,RM-ENTRY-HALL ,P?OBJ-NOUN> ,W?HOUSE>
<RETURN <RT-AC-LG-HOLMES-HOUSE>>)>>
<ROUTINE RT-AC-RM-PARLOUR ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-PARLOUR" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<COND (<T? .CONTEXT> <RFALSE>)>
<COND (<MC-VERB? ENTER>
<COND (<MC-HERE? ,RM-ENTRY-HALL>
<RT-DO-WALK ,P?NORTH>
<RTRUE>)>)
(<MC-VERB? EXIT>
<COND (<MC-HERE? ,RM-PARLOUR>
<RT-DO-WALK ,P?SOUTH>
<RTRUE>)>)>
<RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,TH-MATCHBOOK ,FL-SEEN>)>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<TELL "You walk into">)
(<==? .CONTEXT ,K-M-DESC-3>
<TELL "You are in">)>
<TELL " a dreary, late Victorian Era parlour." CR>
<RFALSE>>
<ROUTINE RT-AC-RM-VESTIBULE ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-VESTIBULE" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<COND (<T? .CONTEXT> <RFALSE>)>
<COND (<MC-VERB? ENTER>
<COND (<MC-HERE? ,RM-HOLMES-STUDY>
<RT-DO-WALK ,P?SOUTH>
<RTRUE>)
(<MC-HERE? ,RM-ENTRY-HALL>
<RT-DO-WALK ,P?UP>
<RTRUE>)>)>
<RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<COND (<EQUAL? ,GL-PLACE-PRV ,RM-ENTRY-HALL>
<TELL "You climb the stairs">)
(T
<TELL "You leave the study">)>
<TELL " and pause outside the door">
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,LG-HOLMES-STUDY-DOOR ,FL-SEEN>
<TELL " to Holmes's study, nervous about what you might
find inside. ">)
(T
<TELL ". ">)>)>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-2 ,K-M-DESC-3>
<TELL "You are on a landing at the top of the stairs.">)>
<TELL CR CR "Holmes's study is to the north." CR>
<RFALSE>>
<ROUTINE RT-AC-RM-HOLMES-STUDY ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-HOLMES-STUDY" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<COND (<T? .CONTEXT> <RFALSE>)>
<COND (<MC-VERB? ENTER>
<COND (<MC-HERE? ,RM-VESTIBULE>
<RT-DO-WALK ,P?NORTH>
<RTRUE>)
(<MC-HERE? ,RM-HOLMES-BEDROOM>
<RT-DO-WALK ,P?EAST>
<RTRUE>)>)>
<RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1>
<TELL
"You step back through time to your bachelor days, when you shared
these cluttered digs with the world's only consulting detective. Despite
the mess, you can see that the room is unchanged. The fireplace to the
north has a pile of letters transfixed to its mantelpiece by a jackknife.
Next to them lies Holmes's six-shot revolver, the tobacco slipper,
and Holmes's favorite pipe. The violin has been carelessly tossed onto a
stack of obviously unread newspapers." CR CR>
<RT-AC-CH-HOLMES ,K-M-DESCFCN>
<CRLF>
<MC-MAKE ,TH-MANTELPIECE ,FL-SEEN>
<MC-MAKE ,TH-VIOLIN ,FL-SEEN>
<MC-MAKE ,TH-NEWSPAPER ,FL-SEEN>
<MC-MAKE ,TH-SYRINGE ,FL-SEEN>
<MC-MAKE ,TH-PHIAL ,FL-SEEN>
<MC-MAKE ,TH-MAIL ,FL-SEEN>
;<MC-MAKE ,TH-FIREPLACE ,FL-SEEN>
<MC-MAKE ,TH-GUN ,FL-SEEN>
<MC-MAKE ,TH-KNIFE ,FL-SEEN>
<MC-MAKE ,TH-PERSIAN-SLIPPER ,FL-SEEN>
<MC-MAKE ,TH-PIPE ,FL-SEEN>
<MC-MAKE ,TH-LIQUID ,FL-SEEN>
<MC-MAKE ,TH-MOROCCO-CASE ,FL-SEEN>
<MC-MAKE ,TH-SOFA ,FL-SEEN>
<MC-MAKE ,CH-HOLMES ,FL-SEEN>
;<MC-MAKE ,TH-HOLMES-BODY ,FL-SEEN>
<MC-MAKE ,LG-HOLMES-BEDROOM-DOOR ,FL-SEEN>)>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-2>
<TELL "You return to Holmes's study, which">)
(<EQUAL? .CONTEXT ,K-M-DESC-3>
<TELL "The study">)>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-2 ,K-M-DESC-3>
<TELL " is in its usual disarray." CR>
<COND (<MC-IS? ,CH-HOLMES ,FL-ASLEEP>
<CRLF>
<RT-AC-CH-HOLMES ,K-M-DESCFCN>)>
<COND (<IN? ,CH-PRIME-MINISTER ,RM-HOLMES-STUDY>
<CRLF>
<COND (<MC-ISNOT? ,CH-PRIME-MINISTER ,FL-SEEN>
<MC-MAKE ,CH-PRIME-MINISTER ,FL-SEEN>
<RT-THIS-IS-IT ,CH-PRIME-MINISTER>
<TELL
"You see a distinguished-looking visitor sitting in the armchair. ">)
(T
<TELL "The visitor fidgets nervously in his chair. ">)>)
(T
<CRLF>)>)>
<TELL CTHE ,LG-HOLMES-BEDROOM-DOOR>
<TELL " to the west is ">
<COND (<MC-IS? ,LG-HOLMES-BEDROOM-DOOR ,FL-OPENED>
<TELL "open">)
(T
<TELL "closed">)>
<TELL ". The only other exit is the door to the south." CR>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1>
<RTRUE>)
(<EQUAL? .CONTEXT ,K-M-DESC-2 ,K-M-DESC-3>
<RFALSE>)>>
<ROUTINE RT-AC-RM-HOLMES-BEDROOM ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-HOLMES-BEDROOM" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<COND (<T? .CONTEXT> <RFALSE>)>
<COND (<MC-VERB? ENTER>
<COND (<MC-HERE? ,RM-HOLMES-STUDY>
<RT-DO-WALK ,P?WEST>
<RTRUE>)>)>
<RFALSE>)>
<TELL
"This is a sparsely furnished room, whose walls are adorned
only by scores of pictures of famous criminals. On a disorderly workbench
in the corner, a jumble of laboratory equipment suggests that Holmes is in
the middle of one of his chemical experiments. ">
<COND (<IN? ,TH-ETHERIUM-AMPOULE ,TH-WORKBENCH>
<TELL
"Set off to one side is a single ampoule with a neatly lettered label
affixed to it. ">)>
<TELL "The room's only exit is to the east." CR>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,TH-BED ,FL-SEEN>
<MC-MAKE ,TH-BEDSIDE-TABLE ,FL-SEEN>
<MC-MAKE ,TH-ETHERIUM-AMPOULE ,FL-SEEN>
<MC-MAKE ,TH-LAB-EQUIPMENT ,FL-SEEN>
<MC-MAKE ,TH-WORKBENCH ,FL-SEEN>
<MC-MAKE ,TH-LAMP ,FL-SEEN>
<MC-MAKE ,TH-MAGNIFYING-GLASS ,FL-SEEN>
;<MC-MAKE ,TH-PICTURES ,FL-SEEN>
<TELL CR "Next to the bed there is a table, on which you see a
lamp and Holmes's favorite magnifying glass. " CR>
<RTRUE>)
(<EQUAL? .CONTEXT ,K-M-DESC-2 ,K-M-DESC-3>
<RFALSE>)>>
<ROUTINE RT-AC-RM-YORK-PLACE ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-YORK-PLACE" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>> <RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2 ,K-M-DESC-3>
<COND (<EQUAL? <RT-TIME-OF-DAY> 0>
<TELL "Through the mist you see">)
(T
<TELL "This is">)>
<TELL " a quiet, residential street, lined with
undistinguished, four storey Georgian houses. To the south, York Place
opens up into Baker Street, and Marylebone Road comes in from the east." CR>)>
<COND (<EQUAL? <RT-TIME-OF-DAY> 1 2 3>
<TELL CR "The street isn't as quiet as usual, due to the surging
crowds of tourists." CR>)>
<RFALSE>>
<ROUTINE RT-AC-RM-MARYLEBONE-RD ("OPT" (CONTEXT <>) "AUX" WHO)
<DEBUGGING? <RT-DEBUG-RM-DF "RM-MARYLEBONE-RD" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<COND (<T? .CONTEXT> <RFALSE>)>
<COND (<MC-VERB? ENTER>
<COND (<MC-HERE? ,RM-MADAME-TUSSAUDS>
<RT-DO-WALK ,P?SOUTH>
<RTRUE>)>)>
<RFALSE>)>
<SET WHO <RT-WHO-SAYS?>>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<COND (<EQUAL? ,GL-PLACE-PRV ,RM-MADAME-TUSSAUDS>
<TELL "You go out the door and are now">)
(T
<TELL "You find yourself">)>)
(T
<TELL "You are">)>
<RT-IN-VEHICLE-MSG>
<TELL "in front of Madame Tussaud's famous wax
museum. From here the street continues east and west." CR CR>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<TELL "The museum is closed for renovations, and there is a
guard and a dog patrolling the street outside the entrance, which is just
to the north of you. The guard ">
<COND (<MC-PROB 33>
<TELL "lights">)
(<MC-PROB 50>
<TELL "puffs on">)
(T
<TELL "puts out">)>
<TELL " a cigarette, tips his hat, and says, \"">
<COND (<EQUAL? ,GL-PLACE-PRV ,RM-MADAME-TUSSAUDS>
<TELL "Goodbye">)
(<EQUAL? <RT-TIME-OF-DAY> 0>
<TELL "Hello">)
(<EQUAL? <RT-TIME-OF-DAY> 1>
<TELL "Top of the morning to you">)
(<EQUAL? <RT-TIME-OF-DAY> 2>
<TELL "Good day">)
(<EQUAL? <RT-TIME-OF-DAY> 3>
<TELL "Good evening">)>
<COND (<EQUAL? .WHO ,CH-HOLMES>
<TELL ", Mr Holmes">)
(T
<TELL ", Doctor Watson">)>
<TELL ".\"" CR>)
(<EQUAL? .CONTEXT ,K-M-DESC-3>
<TELL "The guard and the dog are still here, and they show
no signs of leaving." CR>)>
<COND (<NOT <OR <IN? ,CH-PLAYER ,TH-HANSOM-CAB>
<IN? ,CH-PLAYER ,TH-GROWLER-CAB>>>
<IFSOUND <SOUNDS ,S-GROWL>>
<TELL CR "The dog growls at you." CR>)>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,CH-TUSSAUDS-GUARD ,FL-SEEN>
<MC-MAKE ,CH-MATCH-SNIFFING-DOG ,FL-SEEN>
<MC-MAKE ,TH-CIGARETTE ,FL-SEEN>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE RT-AC-RM-CHAMBER-OF-HORRORS ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-CHAMBER-OF-HORRORS" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<COND (<T? .CONTEXT> <RFALSE>)>
<COND (<MC-VERB? ENTER>
<COND (<MC-HERE? ,RM-MADAME-TUSSAUDS>
<RT-DO-WALK ,P?WEST>
<RTRUE>)>)
(<MC-VERB? EXIT>
<COND (<MC-HERE? ,RM-CHAMBER-OF-HORRORS>
<RT-DO-WALK ,P?EAST>
<RTRUE>)>)>
<RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,TH-CHARLES-STATUE ,FL-SEEN>
<MC-MAKE ,TH-THOMAS-STATUE ,FL-SEEN>
<MC-MAKE ,TH-FAWKES-STATUE ,FL-SEEN>)>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<TELL "You enter">)
(T
<TELL "You are in">)>
<TELL " the Chamber of Horrors. Scattered around the room are wax
groupings of some of the most gruesome scenes from English history. The
only exit is to the east." CR>
<RFALSE>>
<ROUTINE RT-AC-RM-TOTTENHAM-COURT-RD ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-TOTTENHAM-COURT-RD" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,LG-SHOPS ,FL-SEEN>)>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2 ,K-M-DESC-3>
<TELL "This part of London is known for its furniture dealers,
but all the shops seem to be closed for the Jubilee." CR CR
"Marylebone Road goes off to the west here, and Tottenham Court
Road continues to the south." CR>)>
<COND (<EQUAL? <RT-TIME-OF-DAY> 1 2 3>
<TELL CR "Throngs of shoppers peer in the windows of the
closed shops." CR>)
(T
<CRLF>
<RT-FOG-MSG>)>
<RFALSE>>
<ROUTINE RT-AC-RM-ST-GILES-CIRCUS ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-ST-GILES-CIRCUS" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2 ,K-M-DESC-3>
<TELL "You are">
<RT-IN-VEHICLE-MSG>
<TELL
"in St Giles Circus. Roads lead off in many directions." CR>)>
<RFALSE>>
<ROUTINE RT-AC-RM-OXFORD-ST ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-OXFORD-ST" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<RFALSE>)>
<TELL "Oxford Street is London's busiest shopping thoroughfare">
<COND (<EQUAL? <RT-TIME-OF-DAY> 0>
<TELL ", although at this hour the street is deserted">)>
<TELL ". Fashionable emporiums line the street on either side, offering
goods from all over the British Empire. Unfortunately, they all seem
to be closed for the Jubilee." CR CR>
<COND (<EQUAL? <RT-TIME-OF-DAY> 1 2 3>
<TELL "Hoards of frustrated tourists mill about, peering in the
windows of the closed shops." CR CR>)>
<TELL "The street continues to the east and west." CR>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,LG-SHOPS ,FL-SEEN>
<COND (<AND <==? <RT-META-LOC ,TH-GROWLER-CAB> ,RM-OXFORD-ST>
<NOT <IN? ,CH-PLAYER ,TH-GROWLER-CAB>>>
<MC-MAKE ,TH-GROWLER-CAB ,FL-SEEN>
<TELL CR "At a cabstand along the curb you see a growler cab." CR>)>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE RT-AC-RM-ORCHARD-ST ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-ORCHARD-ST" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2 ,K-M-DESC-3>
<TELL "Orchard Street is the southern extension of Baker Street.
From here you can see Oxford Street off to the east,
Baker Street to the north, and Audley Street ">
<COND (<EQUAL? <RT-TIME-OF-DAY> 0>
<TELL "fading into the mists">)
(T
<TELL "continuing">)>
<TELL " to the south." CR CR>)>
<COND (<EQUAL? <RT-TIME-OF-DAY> 1 2>
<TELL "Crowds of tourists stream eastward, ">
<COND (<EQUAL? <RT-TIME-OF-DAY> 1>
<TELL "looking forward to spending the day in the shops
along Oxford Street." CR>)
(T
<TELL "intent on finding some bargains in the shops on
Oxford Street." CR>)>)
(<EQUAL? <RT-TIME-OF-DAY> 3>
<TELL "Frustrated tourists stream westward, angered by the
closed shops in Oxford Street." CR>)
(T
<RT-FOG-MSG>)>
<RFALSE>>
<ROUTINE RT-AC-RM-AUDLEY-ST ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-AUDLEY-ST" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>> <RFALSE>)>
<TELL "This is a pleasant street that winds through Mayfair,
a fashionable district which takes its name from an ancient fair
held there in May of each year." CR CR
"To the south is Hyde Park Corner, and to the north is Orchard
Street." CR>
<COND (<EQUAL? <RT-TIME-OF-DAY> 0>
<CRLF>
<RT-FOG-MSG>)>
<RFALSE>>
<ROUTINE RT-AC-RM-HYDE-PARK-CORNER ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-HYDE-PARK-CORNER" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<COND (<T? .CONTEXT> <RFALSE>)
(<MC-VERB? ENTER>
<COND (<MC-HERE? ,RM-KENSINGTON-GARDENS>
<RT-DO-WALK ,P?SE>
<RTRUE>)>)>
<RFALSE>)
;(<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,TH-ARCH ,FL-SEEN>
<MC-MAKE ,TH-CHARIOT ,FL-SEEN>)>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2 ,K-M-DESC-3>
<TELL "Hyde Park Corner is dominated by the Wellington Arch, a
soaring monument to the \"Iron Duke,\" who defeated Napoleon at the Battle
of Waterloo." CR CR>)>
<COND (<EQUAL? <RT-TIME-OF-DAY> 1 2 3>
<TELL "Huge crowds of tourists gape up at the Arch." CR CR>)
(T
<TELL "The arch is enshrouded in fog." CR CR>)>
<TELL "Roads lead off in many directions." CR>
<RFALSE>>
<ROUTINE RT-AC-RM-KENSINGTON-GARDENS ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-KENSINGTON-GARDENS" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<COND (<T? .CONTEXT> <RFALSE>)>
<COND (<MC-VERB? ENTER>
<COND (<MC-HERE? ,RM-HYDE-PARK-CORNER>
<RT-DO-WALK ,P?NW>
<RTRUE>)>)>
<RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,CH-NANNIES ,FL-SEEN>
<MC-MAKE ,TH-PRAMS ,FL-SEEN>
<MC-MAKE ,TH-PARK-FLOWERS ,FL-SEEN>)>
<COND (<EQUAL? <RT-TIME-OF-DAY> 1 2 3>
<TELL "A tide of perambulators pushed by well-starched nannies
surges along the crowded walk. Everywhere you look there are rows and rows
of beautiful flowers." CR>)
(T
<TELL "The flower gardens are deserted." CR>
<CRLF>
<RT-FOG-MSG>)>
<RFALSE>>
<ROUTINE RT-AC-RM-TRAFALGAR-SQUARE ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-TRAFALGAR-SQUARE" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<COND (<T? .CONTEXT> <RFALSE>)
(<MC-VERB? ENTER>
<COND (<MC-HERE? ,RM-DIOGENES-CLUB>
<RT-DO-WALK ,P?EAST>
<RTRUE>)>)>
<RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,TH-PIGEONS ,FL-SEEN>
<MC-MAKE ,TH-NELSON-COLUMN ,FL-SEEN>
<MC-MAKE ,TH-NELSON-EYE ,FL-SEEN>
<MC-MAKE ,TH-NELSON-STATUE ,FL-SEEN>)>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2 ,K-M-DESC-3>
<TELL "Pigeons, pigeons, everywhere. You are">
<RT-IN-VEHICLE-MSG>
<TELL "in one of the great open spaces of London, named for
Nelson's naval victory over Napoleon in 1805. Streets come in and go
out at all angles, and everywhere you look there are ">
<COND (<EQUAL? <RT-TIME-OF-DAY> 1 2 3>
<TELL "people feeding ">)>
<TELL "pigeons." CR CR
"The square is dominated by Nelson's Column, a 167 foot tall
Corinthian column with" ,K-NELSON-STATUE-MSG CR CR
"The entrance to the Diogenes Club is to the west." CR>)>
<COND (<EQUAL? <RT-TIME-OF-DAY> 0>
<CRLF>
<RT-FOG-MSG>)>
<RFALSE>>
<ROUTINE RT-AC-RM-DIOGENES-CLUB ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-DIOGENES-CLUB" .CONTEXT>>
<IFSOUND <COND (<==? .CONTEXT ,K-M-ENTERED>
<SOUNDS ,S-SNORE ,S-START>)
(<==? .CONTEXT ,K-M-EXIT>
<SOUNDS ,S-SNORE ,S-STOP>)>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<COND (<T? .CONTEXT> <RFALSE>)
(<MC-VERB? ENTER>
<COND (<MC-HERE? ,RM-TRAFALGAR-SQUARE>
<RT-DO-WALK ,P?WEST>
<RTRUE>)>)>
<RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<TELL
"You enter the hushed atmosphere of the Diogenes Club. The furnishings are
aging and opulent. The members are aging and asleep. The only exit is
to the east." CR CR>
<COND (<MC-ISNOT? ,CH-BUTLER ,FL-ASLEEP>
<TELL
"An ancient butler totters forward to greet you and says in a barely audible
whisper, \"May I be of some assistance?\"" CR>)
(T
<TELL ,K-EVERYONE-OUT-MSG CR>)>)
(T
<TELL "You are in the Diogenes Club. ">
<COND (<MC-ISNOT? ,CH-BUTLER ,FL-ASLEEP>
<TELL "The butler is here, waiting to serve you.">)
(T
<TELL ,K-EVERYONE-OUT-MSG>)>
<TELL CR>)>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,CH-BUTLER ,FL-SEEN>
<MC-MAKE ,CH-MEMBERS ,FL-SEEN>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE RT-AC-RM-GREAT-RUSSELL-ST ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-GREAT-RUSSELL-ST" .CONTEXT>>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2 ,K-M-DESC-3>
<TELL "Great Russell Street is the home of the British Museum,
the entrance of which is to the north. There is a sign next to the door." CR CR
"To the southwest you can see St Giles Circus." CR>)
(<T? .CONTEXT> <RFALSE>)
(T
<COND (<MC-VERB? ENTER>
<COND (<MC-HERE? ,RM-BRITISH-MUSEUM>
<RT-DO-WALK ,P?SOUTH>
<RTRUE>)>)>)>
<RFALSE>>
<ROUTINE RT-AC-RM-BRITISH-MUSEUM ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-BRITISH-MUSEUM" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<COND (<T? .CONTEXT> <RFALSE>)
(<MC-VERB? ENTER>
<COND (<MC-HERE? ,RM-GREAT-RUSSELL-ST>
<RT-DO-WALK ,P?NORTH>
<RTRUE>)
(<MC-HERE? ,RM-MANUSCRIPT-ROOM>
<RT-DO-WALK ,P?WEST>
<RTRUE>)>)>
<RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<COND (<EQUAL? ,GL-PLACE-PRV ,RM-GREAT-RUSSELL-ST>
<TELL "You walk up the grand staircase and into">)
(T
<TELL "You walk back down the long corridor and return to">)>)
(T
<TELL "You are standing in">)>
<TELL " the entrance hall of the museum. All the corridors
leading to the exhibit halls are packed with tourists, and there is a
steady stream of people going in and out of the street entrance to the
south. Only the corridor to the east seems to be of no interest to
the sightseers." CR>
<RFALSE>>
<ROUTINE RT-AC-RM-GROSVENOR-PLACE ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-GROSVENOR-PLACE" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<RFALSE>)>
<TELL
"This is a pleasant but out-of-the-way street that runs northwest to
southeast. Few tourists ever visit here. ">
<COND (<EQUAL? <RT-TIME-OF-DAY> 1 3>
<TELL "Despite the ">
<COND (<EQUAL? <RT-TIME-OF-DAY> 1>
<TELL "early">)
(T
<TELL "late">)>
<TELL " hour, some">)
(<EQUAL? <RT-TIME-OF-DAY> 2>
<TELL "Some">)>
<COND (<EQUAL? <RT-TIME-OF-DAY> 1 2 3>
<TELL " people are standing on the corner." CR>)
(T
<RT-FOG-MSG>)>
<RFALSE>>
<ROUTINE RT-AC-RM-VICTORIA-SQUARE ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-VICTORIA-SQUARE" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<TELL "You come upon">)
(T
<TELL "You are in">)>
<TELL " Victoria Square. Streets go off in many directions." CR>
<RFALSE>>
<ROUTINE RT-AC-RM-BROAD-SANCTUARY ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-BROAD-SANCTUARY" .CONTEXT>>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2 ,K-M-DESC-3>
<MC-MAKE ,LG-WESTMINSTER-DOOR ,FL-SEEN>
<TELL "You are">
<RT-IN-VEHICLE-MSG>
<COND (<EQUAL? <RT-TIME-OF-DAY> 1 2 3>
<TELL "in the midst of a crowd of tourists ">)>
<TELL "in front of the west door of Westminster
Abbey. The towers of the Abbey">
<COND (<EQUAL? <RT-TIME-OF-DAY> 0>
<TELL " loom in the fog">)
(T
<TELL " soar high">)>
<TELL " above you, and you marvel at this perfect example of
Gothic architecture, as generations have done before you." CR CR>
<RT-OPEN-CLOSED-MSG ,LG-WESTMINSTER-DOOR>
<CRLF>
<CRLF>
<TELL "On the wall next to the door is a small, discreet sign." CR>
<RFALSE>)
(<T? .CONTEXT> <RFALSE>)
(<MC-VERB? ENTER>
<COND (<MC-HERE? ,RM-NAVE>
<RT-DO-WALK ,P?WEST>)>)>>
<ROUTINE RT-AC-RM-PARLIAMENT-SQUARE ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-PARLIAMENT-SQUARE" .CONTEXT>>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2 ,K-M-DESC-3>
<TELL "This is an attractive square at the foot of Whitehall. ">
<COND (<EQUAL? <RT-TIME-OF-DAY> 1 2 3>
<TELL "Large crowds mill around">)
(T
<TELL "Through the mist you see">)>
<TELL " the entrance to the Houses of Parliament to the
southeast. To the west is Birdcage Walk. Broad Sanctuary goes off to
the southwest, and Whitehall ">
<COND (<EQUAL? <RT-TIME-OF-DAY> 0>
<TELL "disappears into the gloom">)
(T
<TELL "is">)>
<TELL " to the north." CR>)
(<T? .CONTEXT> <RFALSE>)
(<MC-VERB? ENTER>
<COND (<MC-HERE? ,RM-PARLIAMENT>
<RT-DO-WALK ,P?NW>)>)>
<RFALSE>>
<ROUTINE RT-AC-RM-PARLIAMENT ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-PARLIAMENT" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<COND (<T? .CONTEXT> <RFALSE>)
(<MC-VERB? ENTER>
<COND (<MC-HERE? ,RM-PARLIAMENT-SQUARE>
<RT-DO-WALK ,P?SE>
<RTRUE>)>)>
<RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<COND (<EQUAL? ,GL-PLACE-PRV ,RM-PARLIAMENT-SQUARE>
<COND (<EQUAL? <RT-TIME-OF-DAY> 0>
<TELL "You enter">)
(T
<TELL "You push your way into">)>)
(T
<TELL "You descend the stairs into">)>)
(T
<TELL "You are standing in">)>
<TELL " the ">
<COND (<EQUAL? <RT-TIME-OF-DAY> 1 2 3>
<TELL "jam-packed ">)>
<TELL "entrance hall of the House of Commons." CR CR>
<COND (<EQUAL? <RT-TIME-OF-DAY> 1 2 3>
<COND (<EQUAL? <RT-TIME-OF-DAY> 1 3>
<TELL "Despite the ">
<COND (<EQUAL? <RT-TIME-OF-DAY> 1>
<TELL "early">)
(T
<TELL "late">)>
<TELL " hour, there">)
(T
<TELL "There">)>
<TELL " are hundreds of people lined up to get in. But">)
(T
<TELL "The Chamber is closed, but">)>
<TELL " off to one side you see a flight of old stone steps leading
up into the darkness." CR>
<RFALSE>>
<ROUTINE RT-AC-RM-BUCKINGHAM-PALACE-RD ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-BUCKINGHAM-PALACE-RD" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<RFALSE>)>
<TELL
"Buckingham Palace Road connects Queens Gardens to the northeast
with Victoria Square to the southwest." CR>
<RFALSE>>
<ROUTINE RT-AC-RM-QUEENS-GARDENS ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-QUEENS-GARDENS" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,CH-PALACE-GUARD ,FL-SEEN>)>
<TELL "You are">
<RT-IN-VEHICLE-MSG>
<TELL "outside the gate to Buckingham Palace." CR>
<RFALSE>>
<ROUTINE RT-AC-RM-BIRDCAGE-WALK ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-BIRDCAGE-WALK" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<TELL "As you enter Birdcage Walk, your attention is diverted
to">)
(T
<TELL "You see">)>
<TELL " a man who has set up a small souvenir stand near where the
parade will pass on Tuesday. ">
<COND (<EQUAL? <RT-TIME-OF-DAY> 0>
<TELL "Oblivious to the fact that there are no crowds here to
buy his wares">)
(T
<TELL "Hoping to attract the attention of the crowd">)>
<TELL
", he is waving a handful of overpriced trinkets over his head." CR>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,CH-VENDOR ,FL-SEEN>
<MC-MAKE ,TH-TELESCOPE ,FL-SEEN>
<MC-MAKE ,TH-TRINKETS ,FL-SEEN>
<TELL CR "As soon as he sees you, the salesman ">
<COND (<EQUAL? <RT-TIME-OF-DAY> 1 2 3>
<TELL "ignores everyone else and ">)>
<TELL "says, \"'Ere, Guv. Come early for the parade, 'ave
you? There'll be thousands of people, you know. Now at the last
Jubilee - about a year and a 'alf ago, as I remembers it - I could 'ardly
see a fing. But if you was to buy one of my telescopes, you wouldn't
'ardly 'ave any problem, now would you? 'Ow 'bout it, Guv?\"" CR>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE RT-AC-RM-THE-MALL ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-THE-MALL" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<RFALSE>)>
<TELL
"The Mall runs southwest to northeast between the Queens Gardens
and Trafalgar Square." CR>
<RFALSE>>
<ROUTINE RT-AC-RM-WHITEHALL ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-WHITEHALL" .CONTEXT>>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2 ,K-M-DESC-3>
<TELL "Impressive government buildings line the street on either
side. The street continues north and south, and the entrance to
Scotland Yard is to the east." CR>)
(<T? .CONTEXT> <RFALSE>)
(<MC-VERB? ENTER>
<COND (<MC-HERE? ,RM-SCOTLAND-YARD>
<RT-DO-WALK ,P?WEST>
<RTRUE>)>)>
<RFALSE>>
<ROUTINE RT-AC-RM-SCOTLAND-YARD ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-SCOTLAND-YARD" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<COND (<T? .CONTEXT> <RFALSE>)
(<MC-VERB? ENTER>
<COND (<MC-HERE? ,RM-THE-BLACK-MUSEUM>
<RT-ALREADY-IN-ROOM-MSG>
<RTRUE>)
(<MC-HERE? ,RM-WHITEHALL>
<RT-DO-WALK ,P?EAST>
<RTRUE>)>)
(<MC-VERB? EXIT>
<COND (<MC-HERE? ,RM-SCOTLAND-YARD>
<RT-DO-WALK ,P?WEST>
<RTRUE>)
(<MC-HERE? ,RM-THE-BLACK-MUSEUM>
<RT-DO-WALK ,P?UP>
<RTRUE>)>)>
<RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<COND (<EQUAL? ,GL-PLACE-PRV ,RM-WHITEHALL>
<TELL
"You walk up the steps and into the building. Inside, it">)
(<EQUAL? ,GL-PLACE-PRV ,RM-THE-BLACK-MUSEUM>
<TELL "You return to the ground floor. It">)>)
(T
<TELL "It">)>
<TELL " looks just like any other government building - drab and
worn. The door to the street is to the west, and you see some steps
leading down." CR>
<RFALSE>>
<ROUTINE RT-AC-RM-THE-BLACK-MUSEUM ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-THE-BLACK-MUSEUM" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<COND (<T? .CONTEXT> <RFALSE>)
(<MC-VERB? ENTER>
<COND (<MC-HERE? ,RM-SCOTLAND-YARD>
<RT-DO-WALK ,P?DOWN>
<RTRUE>)>)
(<MC-VERB? EXIT>
<COND (<MC-HERE? ,RM-THE-BLACK-MUSEUM>
<RT-DO-WALK ,P?UP>
<RTRUE>)>)>
<RFALSE>)>
<MC-MAKE ,TH-BLIGH-BOAT ,FL-SEEN>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2 ,K-M-DESC-3>
<TELL "This is the Black Museum, where the Yard keeps relics
and mementos of famous crimes." CR CR
"Along one wall is a full-size rowboat with a small sign attached to
it." CR>)>
<RFALSE>>
<ROUTINE RT-AC-RM-NEW-OXFORD-ST ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-NEW-OXFORD-ST" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<COND (<EQUAL? ,GL-PLACE-PRV ,RM-CHEAPSIDE ,RM-ST-GILES-CIRCUS>
<TELL "The quality of the neighborhood seems to be ">
<COND (<EQUAL? ,GL-PLACE-PRV ,RM-ST-GILES-CIRCUS>
<TELL "deteriorating">)
(T
<TELL "improving">)>
<TELL " as you">
<RT-DRIVE-WALK-MSG?>
<COND (<EQUAL? ,GL-PLACE-PRV ,RM-ST-GILES-CIRCUS>
<TELL "eastward">)
(T
<TELL "westward">)>
<TELL " along">)
(<EQUAL? ,GL-PLACE-PRV ,RM-COVENT-GARDEN>
<TELL "You leave Covent Garden and enter">)
(T
<TELL "The cab stops in">)>)
(T
<TELL "You are">
<RT-IN-VEHICLE-MSG>
<TELL "in">)>
<TELL " New Oxford Street." CR>
<RFALSE>>
<ROUTINE RT-AC-RM-COVENT-GARDEN ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-COVENT-GARDEN" .CONTEXT>>
<IFSOUND <COND (<==? .CONTEXT ,K-M-ENTERED>
<SOUNDS ,S-CROWD ,S-START>)
(<==? .CONTEXT ,K-M-EXIT>
<SOUNDS ,S-CROWD ,S-STOP>)>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<TELL "You enter">)
(T
<TELL "You are in">)>
<TELL " Covent Garden, which is the central market for all of
London. Everywhere you look there are stalls packed with produce
from the English countryside." CR CR>
<COND (<EQUAL? <RT-TIME-OF-DAY> 0>
<TELL "Despite the hour, the">)
(T
<TELL "The">)>
<TELL " open-air market is crowded with housewives who are shopping
for fruits and vegetables." CR>
<COND (<IN? ,CH-ELIZA-DOOLITTLE ,RM-COVENT-GARDEN>
<CRLF>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<TELL "After looking around for a few moments, you">)
(T
<TELL "You">)>
<TELL " see a crowd of women gathered around a girl who
has collapsed on the ground. Her lifeless hand clutches a bunch of
flowers." CR>)>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,CH-ELIZA-DOOLITTLE ,FL-SEEN>
<MC-MAKE ,CH-HOUSEWIVES ,FL-SEEN>
<MC-MAKE ,TH-ELIZAS-FLOWERS ,FL-SEEN>
;<MC-MAKE ,TH-ELIZA-BODY ,FL-SEEN>
<MC-MAKE ,TH-ELIZAS-MOUTH ,FL-SEEN>
;<MC-MAKE ,TH-PRODUCE ,FL-SEEN>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE RT-AC-RM-THE-STRAND ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-THE-STRAND" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<RFALSE>)
;(<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,TH-MARQUEES ,FL-SEEN>)>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<TELL "You enter">)
(T
<TELL "You are lingering in">)>
<TELL " the Strand, which is the heart of London's theatre district">
<COND (<EQUAL? <RT-TIME-OF-DAY> 3>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<TELL ", and fight your way through">)
(T
<TELL ", and you are enjoying being in the midst of">)>
<TELL " the crowds of happy theatre goers">)
(<EQUAL? <RT-TIME-OF-DAY> 1 2>
<TELL "." CR CR "Crowds are gathering in front of the theatres,
trying to select a show to see later in the day">)>
<TELL ". Streets lead off to the north, east, and southwest." CR>
<COND (<EQUAL? <RT-TIME-OF-DAY> 0>
<TELL CR "As you">
<RT-DRIVE-WALK-MSG?>
<TELL "through the fog, the empty streets seem
haunted by the ghosts of actors from years gone by." CR>)>
<RFALSE>>
<ROUTINE RT-AC-RM-FLEET-STREET ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-FLEET-STREET" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<RFALSE>)>
<TELL
"Fleet Street is the centre of London's thriving newspaper industry">
<COND (<EQUAL? <RT-TIME-OF-DAY> 0>
<TELL
". The presses roar all night, turning out papers that will
be delivered by train around the country the next day." CR>)
(T
<TELL ", and it is crowded with the thousands of people
who put out the nation's newspapers." CR>)>
<TELL CR
"A street leads off to the west, and there is a passage
south to the Embankment." CR>
<RFALSE>>
<ROUTINE RT-AC-RM-THE-EMBANKMENT ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-THE-EMBANKMENT" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<COND (<T? .CONTEXT> <RFALSE>)
(<MC-VERB? ENTER>
<COND (<MC-HERE? ,RM-THAMES-ONE>
<RT-DO-WALK ,P?NORTH>
<RTRUE>)>)>
<RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<TELL "You arrive at">)
(T
<TELL "You are">
<RT-IN-VEHICLE-MSG>
<TELL "on">)>
<TELL " the Victoria Embankment, on the left bank of the Thames. ">
<COND (<EQUAL? <RT-TIME-OF-DAY> 1>
<TELL
"The early morning mist clings to the water and muffles
the sounds of the river.">)
(<EQUAL? <RT-TIME-OF-DAY> 2>
<TELL
"The river is crowded with pleasure boats here for the Jubilee.">)
(<EQUAL? <RT-TIME-OF-DAY> 3>
<TELL
"The river looks quiet and peaceful in the fading light.">)
(T
<TELL
"The river is barely visible through the thick fog.">)>
<CRLF>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,TH-BOAT ,FL-SEEN>
<MC-MAKE ,TH-OAR-1 ,FL-SEEN>
<MC-MAKE ,TH-OAR-LOCK ,FL-SEEN>
<TELL CR
"There is an incredibly old rowboat here. It's got one empty oarlock, and
it probably leaks, but it looks as if it might float." CR>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE RT-AC-RM-UPPER-THAMES-ST ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-UPPER-THAMES-ST" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<RFALSE>)>
<TELL
"Upper Thames Street runs east and west between the Embankment and Lower
Thames Street." CR>
<RFALSE>>
;<ROUTINE RT-AC-RM-BLIND-ALLEY ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-BLIND-ALLEY" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<COND (<T? .CONTEXT> <RFALSE>)
(<MC-VERB? ENTER>
<COND (<MC-HERE? ,RM-SIGN-OF-RED-HERRING>
<RT-DO-WALK ,P?WEST>
<RTRUE>)>)>
<RFALSE>)>
<TELL
"This is a sinister-looking alley that runs west from Fleet Street to what
looks like an abandoned pub. On the wall above you is a faded sign." CR>
<RFALSE>>
;<ROUTINE RT-AC-RM-SIGN-OF-RED-HERRING ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-SIGN-OF-RED-HERRING" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<COND (<T? .CONTEXT> <RFALSE>)
(<MC-VERB? ENTER>
<COND (<MC-HERE? ,RM-BLIND-ALLEY>
<RT-DO-WALK ,P?EAST>)>)
(<MC-VERB? EXIT>
<COND (<MC-HERE? ,RM-SIGN-OF-RED-HERRING>
<RT-DO-WALK P?WEST>
<RTRUE>)>)>
<RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,TH-UNINTERESTING-OBJECT ,FL-SEEN>)>
<TELL
"You peer through the gloom and discover that all the furnishings of the
alehouse have been removed. Nothing remains except an uninteresting object
on the floor.">
<RFALSE>>
<ROUTINE RT-AC-RM-PINCHIN-LANE ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-PINCHIN-LANE" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<COND (<T? .CONTEXT> <RFALSE>)
(<MC-VERB? ENTER>
<COND (<MC-HERE? ,RM-SHERMANS-HOUSE>
<RT-DO-WALK ,P?EAST>
<RTRUE>)>)>
<RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<COND (<EQUAL? ,GL-PLACE-PRV ,RM-CHEAPSIDE>
<TELL "You enter">)
(<EQUAL? ,GL-PLACE-PRV ,RM-SHERMANS-HOUSE>
<TELL "You emerge from Sherman's shop into">)
(T
<TELL "The cab stops in">)>)
(T
<TELL "You are">
<RT-IN-VEHICLE-MSG>
<TELL "in">)>
<TELL " Pinchin Lane, a dingy little alley that runs">
<COND (<EQUAL? ,GL-PLACE-PRV ,RM-CHEAPSIDE>
<TELL " south from">)
(T
<TELL " north to">)>
<TELL " Cheapside." CR CR "To the west is the entrance to ">
<COND (<OR <EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-ISNOT? ,RM-SHERMANS-HOUSE ,FL-SEEN>>
<TELL "what looks like a pet shop">)
(T
<TELL "Sherman's shop">)>
<TELL ".">
<COND (<AND <EQUAL? <RT-TIME-OF-DAY> 0>
<NOT <EQUAL? ,GL-PLACE-PRV ,RM-SHERMANS-HOUSE>>>
<TELL " Despite the hour, you see a light shining inside." CR>)
(T
<CRLF>)>
<RFALSE>>
<ROUTINE RT-AC-RM-CHEAPSIDE ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-CHEAPSIDE" .CONTEXT>>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2 ,K-M-DESC-3>
<TELL "This is a ramshackle part of town, with dark alleys
leading off the main street, which continues east and west. Pinchin Lane
leads off to the south." CR>)>
<RFALSE>>
<ROUTINE RT-AC-RM-BANK-OF-ENGLAND ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-BANK-OF-ENGLAND" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<COND (<T? .CONTEXT> <RFALSE>)
(<MC-VERB? ENTER>
<COND (<MC-HERE? ,RM-THREADNEEDLE-ST>
<RT-DO-WALK ,P?NORTH>
<RTRUE>)>)
(<MC-VERB? EXIT>
<COND (<MC-HERE? ,RM-BANK-OF-ENGLAND>
<RT-DO-WALK ,P?SOUTH>
<RTRUE>)
(<MC-HERE? ,RM-BANK-VAULT>
<RT-DO-WALK ,P?EAST>
<RTRUE>)>)>
<RFALSE>)>
<MC-MAKE ,LG-BANK-VAULT-DOOR ,FL-SEEN>
<MC-MAKE ,TH-DIAL ,FL-SEEN>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2 ,K-M-DESC-3>
<TELL "The bank has the eerie silence that normally crowded
places have when no one is there. The door to the vault is set into
the west wall." CR>)>
<RFALSE>>
<ROUTINE RT-AC-RM-BANK-VAULT ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-BANK-VAULT" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<COND (<==? .CONTEXT ,K-M-DESCFCN>
<COND (<EQUAL? ,GL-PLACE-CUR ,RM-BANK-OF-ENGLAND>
<COND (<MC-IS? ,LG-BANK-VAULT-DOOR ,FL-OPENED>
<RT-AC-RM-BANK-VAULT ,K-M-DESC-3>
<RT-DESCRIBE-PLACE-CONTENTS ,RM-BANK-VAULT>
<RTRUE>)
(T
<TELL
"It's a huge, reinforced-steel door that's set firmly into the wall."
CR CR "In the middle of the door you see a big shiny dial." CR>
<RTRUE>)>)
(T
<RT-AC-RM-BANK-VAULT ,K-M-DESC-3>
<RT-DESCRIBE-PLACE-CONTENTS ,RM-BANK-VAULT>
<RTRUE>)>)
(<T? .CONTEXT> <RFALSE>)
(<MC-THIS-PRSO?>
<COND (<MC-VERB? ENTER>
<COND (<MC-HERE? ,RM-BANK-OF-ENGLAND>
<RT-DO-WALK ,P?WEST>
<RTRUE>)>)
(<MC-VERB? EXIT>
<COND (<MC-HERE? ,RM-BANK-VAULT>
<RT-DO-WALK ,P?EAST>
<RTRUE>)>)
(<MC-VERB? LOOK-INSIDE SEARCH>
<COND (<MC-IS? ,LG-BANK-VAULT-DOOR ,FL-OPENED>
<RT-CYOU-MSG "see" "sees">
<TELL "row upon row of " D ,TH-BOXES
"." CR>
<RTRUE>)
(T
<TELL CTHE ,LG-BANK-VAULT-DOOR
" is closed." CR>
<RTRUE>)>)
(<MC-VERB? UNLOCK>
<COND (<MC-IS? ,LG-BANK-VAULT-DOOR ,FL-OPENED>
<TELL CTHE ,LG-BANK-VAULT-DOOR
" is already opened." CR>)
(T
<TELL ,K-HOW-TO-MSG CR>)>
<RTRUE>)
(<MC-VERB? OPEN>
<COND (<MC-IS? ,LG-BANK-VAULT-DOOR ,FL-OPENED>
<TELL "The vault door is already open." CR>
<RTRUE>)
(<MC-IS? ,TH-DIAL ,FL-LOCKED>
<TELL "The vault door is locked." CR>
<RTRUE>)
(T
<MC-MAKE ,LG-BANK-VAULT-DOOR ,FL-OPENED>
<TELL "The vault door swings open." CR>
<RTRUE>)>)
(<MC-VERB? SHOOT>
<TELL ,K-RICOCHET-MSG CR>
<RTRUE>)>)>
<RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,TH-BOXES ,FL-SEEN>
<MC-MAKE ,TH-BOX-LOCK ,FL-SEEN>
<MC-MAKE ,TH-SAFETY-DEPOSIT-BOX ,FL-SEEN>)>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<TELL "Upon entering, you">)
(T
<TELL "You">)>
<TELL " see rows and rows of safety deposit boxes." CR>
<RFALSE>>
<ROUTINE RT-AC-RM-KING-WILLIAM-ST ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-KING-WILLIAM-ST" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<RFALSE>)>
<TELL
"King William Street runs northwest to southeast, from Threadneedle
Street to Monument." CR>
<RFALSE>>
<ROUTINE RT-AC-RM-MONUMENT ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-MONUMENT" .CONTEXT>>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2 ,K-M-DESC-3>
<TELL "The intersection is dominated by the Monument, a
huge obelisk that commemorates the Great Fire of London. On the side of
the monument is a plaque." CR>)
(<==? .CONTEXT ,K-M-DESCFCN>
<TELL
"It's a huge obelisk designed by Christopher Wren that towers
202 feet in the air." CR>
<RTRUE>)
(<T? .CONTEXT> <RFALSE>)
(<MC-VERB? ENTER>
<COND (<MC-HERE? ,RM-MONUMENT>
<TELL "You can't go inside " THEO "." CR>
<RTRUE>)>)
(<MC-VERB? EXIT>
<COND (<MC-HERE? ,RM-MONUMENT>
<TELL "You're not in " THEO "." CR>
<RTRUE>)>)>
<RFALSE>>
<ROUTINE RT-AC-RM-LOWER-THAMES-ST ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-LOWER-THAMES-ST" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<TELL "You enter">)
(T
<TELL "You are in">)>
<TELL
" Lower Thames Street. Roads lead off in many directions, some
more savory than others. There is a set of particularly slovenly stairs
leading down to an alley that runs alongside the river." CR>
<RFALSE>>
<ROUTINE RT-AC-RM-TOWER-ENTRANCE ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-TOWER-ENTRANCE" .CONTEXT>>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2 ,K-M-DESC-3>
<TELL "You are">
<RT-IN-VEHICLE-MSG>
<TELL "outside the entrance to the Tower of
London. Next to the entrance there is a sign." CR>)>
<RFALSE>>
<ROUTINE RT-DF-RM-SOUTH-AISLE ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-SOUTH-AISLE" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>> <RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,TH-POPE-TOMB ,FL-SEEN>)>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<TELL "You enter">)
(T
<TELL "You are in">)>
<TELL " the South Aisle of the Nave. ">
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<TELL "In the gloom, you bump into one of the tombs. ">)>
<TELL
"There is an exit to the southeast and a door set into the south wall." CR>
<RFALSE>>
<ROUTINE RT-DF-RM-JERICHO-PARLOUR ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-JERICHO-PARLOUR" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>> <RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<COND (<EQUAL? ,GL-PLACE-PRV ,RM-SOUTH-AISLE>
<TELL
"From the vastness of the Nave, you pass into">)
(T
<TELL "You leave the Chamber for">)>
<TELL " the more intimate">)
(T
<TELL "You are in the">)>
<TELL " Jericho Parlour">
<COND (<AND <EQUAL? .CONTEXT ,K-M-DESC-2>
<EQUAL? ,GL-PLACE-PRV ,RM-JERUSALEM-CHAMBER>>
<TELL "." CR>)
(T
<TELL
", which is the anteroom to the famous Jerusalem Chamber just to the west." CR>)>
<TELL CR "The exit to the Nave is to the north." CR>
<RFALSE>>
<ROUTINE RT-DF-RM-JERUSALEM-CHAMBER ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-JERUSALEM-CHAMBER" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>> <RFALSE>)
;(<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,TH-PANELLING ,FL-SEEN>)>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<TELL "You enter">)
(T
<TELL "You are standing in">)>
<TELL " the Jerusalem Chamber, one of the oldest
parts of the Abbey. In contrast to the cold and forbidding stone
elsewhere in the Abbey, this room is panelled in oak and cedar. Just
inside the entrance you see a small sign." CR>
<RFALSE>>
<ROUTINE RT-DF-RM-NORTH-CLOISTER ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-NORTH-CLOISTER" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>> <RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,TH-PACKET-OF-PAPER ,FL-SEEN>
<MC-MAKE ,TH-CRAYON ,FL-SEEN>
<MC-MAKE ,TH-RUBBINGS ,FL-SEEN>
<TELL "You enter">)
(T
<TELL "You are now in">)>
<TELL
" the North Cloister, which is the brass-rubbing centre of the
abbey. On the walls are completed rubbings that others have
made.">
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1>
<TELL
" Someone has left a pacquet of paper and a rubbing crayon here." CR>
<RTRUE>)
(T
<CRLF>
<RFALSE>)>>
<ROUTINE RT-DF-RM-SOUTH-TRANSEPT ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-SOUTH-TRANSEPT" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>> <RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,TH-DICKENS-TOMB ,FL-SEEN>)>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<TELL "You enter">)
(T
<TELL "You are in">)>
<TELL " the South " ,K-TRANSEPT-MSG CR CR ,K-SHAFT-OF-LIGHT-MSG CR>
<RFALSE>>
<ROUTINE RT-DF-RM-NORTH-TRANSEPT ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-NORTH-TRANSEPT" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>> <RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,TH-PITT-TOMB ,FL-SEEN>
<MC-MAKE ,TH-FIGURES ,FL-SEEN>)>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<TELL "You enter">)
(T
<TELL "You are in">)>
<TELL " the North " ,K-TRANSEPT-MSG CR CR ,K-SHAFT-OF-LIGHT-MSG CR>
<RFALSE>>
<ROUTINE RT-DF-RM-POETS-CORNER ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-POETS-CORNER" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>> <RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,TH-CHAUCER-TOMB ,FL-SEEN>)>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<TELL "You walk into">)
(T
<TELL "You are in">)>
<TELL
" the hushed, secluded part of the Abbey known as Poets' Corner. The
monuments here are dedicated to Britain's literary giants. The oldest
of the tombs is that of Geoffrey Chaucer, who died in the year 1400." CR>
<RFALSE>>
<ROUTINE RT-DF-RM-SOUTH-AMBULATORY ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-SOUTH-AMBULATORY" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>> <RFALSE>)>
<TELL ,K-AMBULATORY-MSG CR>
<RFALSE>>
<ROUTINE RT-DF-RM-SANCTUARY ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-SANCTUARY" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>> <RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,TH-ANNE-OF-CLEVES-TOMB ,FL-SEEN>)>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<TELL "You walk into">)
(T
<TELL "You are in">)>
<TELL
" the Sanctuary. This is where the actual Coronation Ceremony
takes place whenever a new monarch is crowned. A modest tomb is near
the south wall." CR>
<RFALSE>>
<ROUTINE RT-DF-RM-NORTH-AMBULATORY ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-NORTH-AMBULATORY" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>> <RFALSE>)>
<TELL ,K-AMBULATORY-MSG CR>
<RFALSE>>
<ROUTINE RT-DF-RM-CONFESSOR-CHAPEL ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-CONFESSOR-CHAPEL" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>> <RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,TH-EDWARD-TOMB ,FL-SEEN>
<MC-MAKE ,TH-HENRY-V-TOMB ,FL-SEEN>)>
<TELL
"The Confessor Chapel is dominated by the tomb of the founder
of the Abbey, although there are several other tombs here. It is this
chapel that first gave Westminster the name \"Burial place of kings.\"" CR>
<RFALSE>>
<ROUTINE RT-DF-RM-SOUTH-CHAPEL-AISLE ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-SOUTH-CHAPEL-AISLE" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>> <RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,TH-MARY-QUEEN-OF-SCOTS-TOMB ,FL-SEEN>)>
<TELL
"The South Chapel Aisle is the final resting place of Mary, Queen
of Scots." CR>
<RFALSE>>
<ROUTINE RT-DF-RM-NORTH-CHAPEL-AISLE ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-NORTH-CHAPEL-AISLE" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>> <RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,TH-ELIZABETH-TOMB ,FL-SEEN>)>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<TELL "You enter">)
(T
<TELL "You are in">)>
<TELL " the North Chapel Aisle. There is a very large tomb here." CR>
<RFALSE>>
<ROUTINE RT-DF-RM-INNOCENTS-CORNER ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-INNOCENTS-CORNER" .CONTEXT>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>> <RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,TH-LITTLE-PRINCES-TOMB ,FL-SEEN>)>
<TELL
"This is Innocents' corner, the traditional burial site of
royalty who die in infancy. There are several tombs here." CR>
<RFALSE>>
<ROUTINE RT-AC-RM-DRAWBRIDGE ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-DRAWBRIDGE" .CONTEXT>>
<COND (<==? .CONTEXT ,K-M-ENTERED>
<SETG ALLOW-IN-TOWER <>>
<RFALSE>)
(<NOT <RT-DESCFCN-CONTEXT .CONTEXT>>
<RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1>
<TELL
"So far, so good. No one has challenged your right to be here. Maybe the
Tower has been left unguarded.">)
(<EQUAL? .CONTEXT ,K-M-DESC-2>
<COND (<EQUAL? ,GL-PLACE-PRV ,RM-TOWER-ENTRANCE>
<TELL "You walk back up onto the drawbridge.">)
(T
<TELL
"Stung by the guard's rejection, you retrace your steps to the drawbridge.">)>)
(T
<TELL
"You are standing on the drawbridge to the Tower of London.">)>
<TELL CR CR
"To the east you see the Byward Tower, and to the west is the Tower
Entrance." CR>
<RFALSE>>
<ROUTINE RT-DF-RM-BYWARD-TOWER ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-BYWARD-TOWER" .CONTEXT>>
<IFSOUND <COND (<AND <==? .CONTEXT ,K-M-EXIT>
<MC-IS? ,TH-SUIT-OF-ARMOUR ,FL-WORN>>
<SOUNDS ,S-ARMOR>)>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>> <RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,CH-TOWER-GUARD ,FL-SEEN>
<MC-MAKE ,LG-RAVENS ,FL-SEEN>
<TELL "Your luck runs out. ">)>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<TELL
"A costumed Yeoman of the Guard steps forward to challenge you." CR>)>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-3>
<TELL
"You are standing in the Byward Tower, which was built by Edward I in the
thirteenth century to control access to the fortress. A burly Beefeater
stands in your path." CR>)>
<TELL CR "A few of the Tower's famous ravens are perched here,
watching your every move." CR>
<RFALSE>>
<ROUTINE RT-DF-RM-OUTER-WARD ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-OUTER-WARD" .CONTEXT>>
<IFSOUND <COND (<AND <==? .CONTEXT ,K-M-EXIT>
<MC-IS? ,TH-SUIT-OF-ARMOUR ,FL-WORN>>
<SOUNDS ,S-ARMOR>)>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>> <RFALSE>)>
<TELL
"This is the Outer Ward. From here you can go north, south, or west." CR CR
"A few of the Tower's famous ravens are perched here, watching your
every move." CR>
<RFALSE>>
<ROUTINE RT-DF-RM-BLOODY-TOWER ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-BLOODY-TOWER" .CONTEXT>>
<IFSOUND <COND (<AND <==? .CONTEXT ,K-M-EXIT>
<MC-IS? ,TH-SUIT-OF-ARMOUR ,FL-WORN>>
<SOUNDS ,S-ARMOR>)>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>> <RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<TELL "You enter">)
(T
<TELL "You are in">)>
<TELL
" the Bloody Tower where, allegedly, the \"Little Princes in the
Tower\" met their death. One exit leads north. The other leads south." CR>
<RFALSE>>
<ROUTINE RT-DF-RM-WAKEFIELD-TOWER ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-WAKEFIELD-TOWER" .CONTEXT>>
<IFSOUND <COND (<AND <==? .CONTEXT ,K-M-EXIT>
<MC-IS? ,TH-SUIT-OF-ARMOUR ,FL-WORN>>
<SOUNDS ,S-ARMOR>)>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>> <RFALSE>)
(<EQUAL? ,GL-PLACE-PRV ,RM-TOWER-GREEN>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<TELL "You leave the">
<COND (<EQUAL? <RT-TIME-OF-DAY> 0 1 3>
<TELL " gloom of the">)>
<TELL " Tower Green for the gloom of the Wakefield Tower.">)>)
(T
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<TELL "You descend the stairs into the ground floor
of the Wakefield Tower.">)>)>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-3>
<TELL "You see only the thick stone walls of the Wakefield Tower.">)>
<CRLF>
<CRLF>
<TELL "There is a dark stone staircase leading up, and the only other
exit is to the northwest." CR>
<RFALSE>>
<ROUTINE RT-DF-RM-JEWEL-ROOM ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-JEWEL-ROOM" .CONTEXT>>
<IFSOUND <COND (<AND <==? .CONTEXT ,K-M-EXIT>
<MC-IS? ,TH-SUIT-OF-ARMOUR ,FL-WORN>>
<SOUNDS ,S-ARMOR>)>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>> <RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<TELL "The stairs take you up to">)
(T
<TELL "You are in">)>
<TELL
" the Jewel Room of the Tower of London. The case that once
held the Regalia is twisted and smashed">
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,TH-MACE ,FL-SEEN>
<MC-MAKE ,TH-JEWEL-CASE ,FL-SEEN>
<TELL
", and the weapon that the thief used is lying on the ground nearby." CR>
<RTRUE>)
(T
<TELL "." CR>
<RFALSE>)>>
<ROUTINE RT-DF-RM-DUNGEON ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-DUNGEON" .CONTEXT>>
<IFSOUND <COND (<AND <==? .CONTEXT ,K-M-EXIT>
<MC-IS? ,TH-SUIT-OF-ARMOUR ,FL-WORN>>
<SOUNDS ,S-ARMOR>)>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>> <RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<TELL "You inch your way down the dark stairs and arrive">)
(T
<TELL "You are">)>
<TELL " in the oldest part of the Tower, the Dungeon." CR>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,TH-SUIT-OF-ARMOUR ,FL-SEEN>
<IFSOUND <SOUNDS ,S-ARMOR ,S-INIT>>
<TELL
CR "The room has been converted into museum space, and prominently featured
is a man-size suit of armour." CR>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE RT-DF-RM-TORTURE-ROOM ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-TORTURE-ROOM" .CONTEXT>>
<IFSOUND <COND (<AND <==? .CONTEXT ,K-M-EXIT>
<MC-IS? ,TH-SUIT-OF-ARMOUR ,FL-WORN>>
<SOUNDS ,S-ARMOR>)>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>> <RFALSE>)
;(<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,TH-INSTRUMENTS ,FL-SEEN>)>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<TELL "You enter">)
(T
<TELL "You are in">)>
<TELL
" the torture room below the Bowyer Tower. Around the walls are hung
various instruments of torture. The stairs leading up are the only way
out." CR>
<RFALSE>>
<ROUTINE RT-DF-RM-WHITE-TOWER ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-WHITE-TOWER" .CONTEXT>>
<IFSOUND <COND (<AND <==? .CONTEXT ,K-M-EXIT>
<MC-IS? ,TH-SUIT-OF-ARMOUR ,FL-WORN>>
<SOUNDS ,S-ARMOR>)>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>> <RFALSE>)>
<TELL
"This is the White Tower, which was started by William the
Conqueror in 1078. Exits lead out and down." CR>
<RFALSE>>
<ROUTINE RT-DF-RM-TOWER-GREEN ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-TOWER-GREEN" .CONTEXT>>
<IFSOUND <COND (<AND <==? .CONTEXT ,K-M-EXIT>
<MC-IS? ,TH-SUIT-OF-ARMOUR ,FL-WORN>>
<SOUNDS ,S-ARMOR>)>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>> <RFALSE>)>
<TELL
"You are on Tower Green, which is at the centre of the Tower of
London. Entrances to various towers lie to the northeast, east, southeast,
and south. A few ravens are strolling around the green, eyeing you with
interest." CR>
<RFALSE>>
<ROUTINE RT-DF-RM-BOWYER-TOWER ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-BOWYER-TOWER" .CONTEXT>>
<IFSOUND <COND (<AND <==? .CONTEXT ,K-M-EXIT>
<MC-IS? ,TH-SUIT-OF-ARMOUR ,FL-WORN>>
<SOUNDS ,S-ARMOR>)>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>> <RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,TH-BUNG ,FL-SEEN>
<MC-MAKE ,TH-BUTT-OF-MALMSEY ,FL-SEEN>
<MC-MAKE ,TH-MALMSEY ,FL-SEEN>)>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<TELL "You enter">)
(T
<TELL "You are in">)>
<TELL
" the Bowyer Tower. It was in this room that the Duke of Clarence
was drowned in a Butt of Malmsey in 1478. The keg still stands over in
the corner." CR CR>
<TELL "Exits lead out and down." CR>
<RFALSE>>
<ROUTINE RT-DF-RM-INSIDE-TRAITORS-GATE ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-INSIDE-TRAITORS-GATE" .CONTEXT>>
<IFSOUND <COND (<AND <==? .CONTEXT ,K-M-EXIT>
<MC-IS? ,TH-SUIT-OF-ARMOUR ,FL-WORN>>
<SOUNDS ,S-ARMOR>)>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>> <RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1>
<MC-MAKE ,TH-PORTCULLIS-CHAIN ,FL-SEEN>)>
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<COND (<EQUAL? ,GL-PLACE-PRV ,RM-OUTSIDE-TRAITORS-GATE>
<TELL "You pass under the portcullis">)
(T
<TELL "You walk south from the Outer Ward">)>
<TELL " and find yourself">)
(T
<TELL "You are">)>
<TELL " just north of Traitors Gate. The portcullis is ">
<COND (<MC-IS? ,LG-PORTCULLIS-DOOR ,FL-OPENED>
<TELL "up">)
(T
<TELL "down">)>
<TELL ". From the wall near the portcullis hangs a chain, and perched
on top of the wall are some ravens." CR>
<RFALSE>>
<ROUTINE RT-DF-RM-OUTSIDE-TRAITORS-GATE ("OPT" (CONTEXT <>))
<DEBUGGING? <RT-DEBUG-RM-DF "RM-OUTSIDE-TRAITORS-GATE" .CONTEXT>>
<IFSOUND <COND (<AND <==? .CONTEXT ,K-M-EXIT>
<MC-IS? ,TH-SUIT-OF-ARMOUR ,FL-WORN>>
<SOUNDS ,S-ARMOR>)>>
<COND (<NOT <RT-DESCFCN-CONTEXT .CONTEXT>> <RFALSE>)
(<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
<COND (<EQUAL? ,GL-PLACE-PRV ,RM-INSIDE-TRAITORS-GATE>
<TELL "You pass under the portcullis">)
(T
<TELL "You leave the boat">)>
<TELL " and find yourself">)
(T
<TELL "You are">)>
<TELL
" just south of Traitors Gate, through which condemned prisoners
were brought in to the Tower prior to being executed. The massive iron
portcullis is ">
<COND (<MC-IS? ,LG-PORTCULLIS-DOOR ,FL-OPENED>
<TELL "up">)
(T
<TELL "down">)>
<TELL "." CR>
<RFALSE>>