902 lines
32 KiB
Plaintext
902 lines
32 KiB
Plaintext
;*****************************************************************************
|
|
; "game : SHERLOCK!"
|
|
; "file : PLACES2.ZIL"
|
|
; "auth : $Author: RAB $"
|
|
; "date : $Date: 28 Oct 1987 4:31:22 $"
|
|
; "rev : $Revision: 1.72 $"
|
|
; "vers : 1.00"
|
|
;*****************************************************************************
|
|
|
|
<ROUTINE RT-SURGE ()
|
|
<COND (<EQUAL? <RT-TIME-OF-DAY> 0>
|
|
<TELL
|
|
"The fog is so thick that even your light cannot penetrate it,
|
|
so you retrace your steps." CR>
|
|
<RFALSE>)
|
|
(T
|
|
<TELL "Surging crowds of ">
|
|
<COND (<EQUAL? ,GL-PLACE-CUR ,RM-KENSINGTON-GARDENS>
|
|
<TELL "haughty nannies">)
|
|
(<EQUAL? ,GL-PLACE-CUR ,RM-COVENT-GARDEN>
|
|
<TELL "housewives intent on a bargain">)
|
|
(T
|
|
<TELL "tourists">)>
|
|
<TELL " block your path." CR>
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE RT-AC-RM-MADAME-TUSSAUDS ("OPTIONAL" (CONTEXT <>))
|
|
<DEBUGGING? <RT-DEBUG-RM-AC "RM-MADAME-TUSSAUDS" .CONTEXT>>
|
|
<COND (<RT-DESCFCN-CONTEXT .CONTEXT>
|
|
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1>
|
|
<MC-MAKE ,TH-ASH ,FL-SEEN>
|
|
<MC-MAKE ,TH-WILLIAM-STATUE ,FL-SEEN>
|
|
<MC-MAKE ,TH-WALTER-STATUE ,FL-SEEN>
|
|
<MC-MAKE ,TH-ELIZABETH-STATUE ,FL-SEEN>
|
|
<MC-MAKE ,TH-DRAKE-STATUE ,FL-SEEN>
|
|
<MC-MAKE ,TH-JOHN-STATUE ,FL-SEEN>)>
|
|
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
|
|
<COND (<EQUAL? ,GL-PLACE-PRV ,RM-MARYLEBONE-RD>
|
|
<TELL "You come in off the street and are now standing in">)
|
|
(T
|
|
<TELL "You leave the Chamber of Horrors and go back into">)>)
|
|
(T
|
|
<TELL "You are in">)>
|
|
<TELL " the lobby." CR CR "All around you are wax statues of
|
|
famous people. To the west is a dark and ominous-looking doorway with a sign
|
|
over it. The exit to the street is to the south." CR>
|
|
<COND (<AND <MC-IS? ,TH-ASH ,FL-ASLEEP>
|
|
<IN? ,CH-HOLMES ,GL-PLACE-CUR>>
|
|
<MC-MAKE ,TH-ASH ,FL-SEEN>
|
|
<MC-UNMAKE ,TH-ASH ,FL-ASLEEP>
|
|
<MC-UNMAKE ,TH-ASH ,FL-NODESC>
|
|
<TELL CR CTHE ,CH-HOLMES
|
|
" drops to his hands and knees and begins a minute examination of the floor.
|
|
After a few moments he cries, \"Aha! Look here, Watson.\" He points to a
|
|
miniscule speck of ash on the floor." CR>
|
|
<SETG GL-PUPPY-MSG? <>>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>)
|
|
(<AND <EQUAL? .CONTEXT ,K-M-ENTERED>
|
|
<MC-ISNOT? ,TH-TOBACCO ,FL-ASLEEP>
|
|
<MC-IS? ,TH-TOBACCO ,FL-LIGHTED>>
|
|
<RT-UPDATE-SCORE 1>
|
|
<MC-MAKE ,TH-TOBACCO ,FL-ASLEEP>)
|
|
(<F? .CONTEXT>
|
|
<COND (<MC-VERB? ENTER>
|
|
<COND (<MC-HERE? ,RM-MARYLEBONE-RD>
|
|
<RT-DO-WALK ,P?NORTH>
|
|
<RTRUE>)
|
|
(<MC-HERE? ,RM-CHAMBER-OF-HORRORS>
|
|
<RT-DO-WALK ,P?EAST>
|
|
<RTRUE>)>)>)>
|
|
<RFALSE>>
|
|
|
|
; "FL-OPENED = player exited room while librarian was talking to him"
|
|
<ROUTINE RT-AC-RM-MANUSCRIPT-ROOM ("OPTIONAL" (CONTEXT <>) "AUX" VALUE)
|
|
<DEBUGGING? <RT-DEBUG-RM-AC "RM-MANUSCRIPT-ROOM" .CONTEXT>>
|
|
<COND (<RT-DESCFCN-CONTEXT .CONTEXT>
|
|
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
|
|
<TELL "The deserted corridor leads to">)
|
|
(T
|
|
<TELL "You are in">)>
|
|
<TELL
|
|
" the manuscript room, which contains a dusty collection of
|
|
old books on obscure subjects. ">
|
|
<COND (<IN? ,CH-LIBRARIAN ,RM-MANUSCRIPT-ROOM>
|
|
<TELL
|
|
"There is an old librarian here, on whose desk sits a handwritten sign that
|
|
reads \"Quiet, please.\" ">)>
|
|
<TELL "There are thousands of books behind glass cases">
|
|
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1>
|
|
<TELL ", but one is lying unattended on a table">)>
|
|
<TELL ". The only exit is to the west." CR>
|
|
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1>
|
|
<MC-MAKE ,CH-LIBRARIAN ,FL-SEEN>
|
|
<MC-MAKE ,TH-CLUE-BOOK ,FL-SEEN>
|
|
;<MC-MAKE ,TH-LIBRARY-OBJ ,FL-SEEN>
|
|
<MC-MAKE ,TH-LIBRARY-TABLE ,FL-SEEN>
|
|
<TELL
|
|
CR "The librarian - who is as dusty as the books - looks up in surprise as
|
|
you come in. He ">
|
|
<COND (<MC-IS? ,TH-COTTON-BALLS ,FL-WORN>
|
|
<TELL "whispers">)
|
|
(T
|
|
<TELL "says loudly">)>
|
|
<TELL
|
|
", \"Oh, I say! Hello! I don't get many visitors here. Is there
|
|
something I can help you with? Some information about the Jubilee,
|
|
perhaps? It's quite rare, you know, for a British ruler to
|
|
celebrate 50 years on the throne. Unique, in fact. The closest anyone
|
|
else came was Elizabeth, who ruled 45 years - although our records are
|
|
somewhat vague before the year 900. The Anglo-Saxon chronicles do get rather
|
|
sketchy, what? Still, they're the best we have. I think I can find a copy
|
|
for you somewhere here.\"" CR CR
|
|
|
|
"The librarian's voice trails off as he bustles from shelf to shelf,
|
|
squinting at the books to find the one he thinks you want." CR>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>)
|
|
(<AND .CONTEXT
|
|
<IN? ,CH-LIBRARIAN ,RM-MANUSCRIPT-ROOM>
|
|
<MC-ISNOT? ,CH-LIBRARIAN ,FL-ASLEEP>>
|
|
<COND (<AND <EQUAL? .CONTEXT ,K-M-ENTERED>
|
|
<MC-IS? ,CH-LIBRARIAN ,FL-OPENED>>
|
|
<TELL CR
|
|
CTHE ,CH-LIBRARIAN " says, \"Welcome back! I have more interesting things to
|
|
tell you!\"" CR>
|
|
<RTRUE>)
|
|
(<EQUAL? .CONTEXT ,K-M-EXIT>
|
|
<TELL
|
|
"As you leave, the librarian calls out, \"Must you be going? I have
|
|
so many other interesting things to tell you.\"" CR CR>
|
|
<MC-MAKE ,CH-LIBRARIAN ,FL-OPENED>)
|
|
(<EQUAL? .CONTEXT ,K-M-BEG>
|
|
<COND (<OR <MC-VERB? WALK EXIT>
|
|
<INTBL? ,GL-PRSA <REST ,GL-GAME-VERBS 2> <GET ,GL-GAME-VERBS 0>>>
|
|
<RFALSE>)
|
|
(<MC-VERB? WAIT LISTEN>
|
|
<TELL "The librarian says ">
|
|
<COND (<MC-IS? ,TH-COTTON-BALLS ,FL-WORN>
|
|
<TELL "softly">)
|
|
(T
|
|
<TELL "loudly">)>
|
|
<TELL ", ">
|
|
<RT-LIBRARIAN-SAYS-MSG>
|
|
<RTRUE>)
|
|
(<MC-VERB? HUSH>
|
|
<TELL
|
|
"The librarian stops in midsentence and gets an embarrassed look on
|
|
his face. \"Oh, I say. I'm sorry to have rambled on like this, but I do
|
|
so enjoy speaking with visitors. I get them so seldom, you know. Thank
|
|
you for listening.\"" CR CR
|
|
|
|
"He leaves the room, mumbling something to himself about the articulation of
|
|
the third joint of the hind leg of an extinct species of dung beetle." CR>
|
|
<REMOVE ,CH-LIBRARIAN>
|
|
<RTRUE>)
|
|
(<MC-VERB? LOOK>
|
|
<RT-DESC-ALL <> T>
|
|
<TELL CR "As you look around, the librarian says ">
|
|
<COND (<MC-IS? ,TH-COTTON-BALLS ,FL-WORN>
|
|
<TELL "softly">)
|
|
(T
|
|
<TELL "loudly">)>
|
|
<TELL ", ">
|
|
<RT-LIBRARIAN-SAYS-MSG>
|
|
<RTRUE>)
|
|
(<AND <MC-VERB? TELL>
|
|
<MC-PRSO? ,CH-LIBRARIAN>>
|
|
<RFALSE>)
|
|
;(<EQUAL? ,GL-P-PRSA-WORD ,W?ECHO>
|
|
<TELL
|
|
"The librarian pauses for a second as if he is finally going to stop
|
|
talking...but then he continues ">
|
|
<COND (<MC-IS? ,TH-COTTON-BALLS ,FL-WORN>
|
|
<TELL "quietly">)
|
|
(T
|
|
<TELL "noisily">)>
|
|
<TELL " and says, ">
|
|
<RT-LIBRARIAN-SAYS-MSG>
|
|
<RTRUE>)
|
|
(<RT-TALK-VERB?>
|
|
<TELL
|
|
"The librarian interrupts you as you attempt to speak, and ">
|
|
<COND (<MC-IS? ,TH-COTTON-BALLS ,FL-WORN>
|
|
<TELL "whispers">)
|
|
(T
|
|
<TELL "says">)>
|
|
<TELL ", ">
|
|
<RT-LIBRARIAN-SAYS-MSG>
|
|
<RFATAL>)
|
|
(T
|
|
<TELL "The librarian launches off into another
|
|
speech, and it distracts you from what you wanted to do. ">
|
|
<RT-LIBRARIAN-SAYS-MSG>
|
|
<RTRUE>)>)>)
|
|
(.CONTEXT <RFALSE>)
|
|
(T
|
|
<COND (<MC-VERB? ENTER>
|
|
<COND (<MC-HERE? ,RM-BRITISH-MUSEUM>
|
|
<RT-DO-WALK ,P?EAST>
|
|
<RTRUE>)>)
|
|
(<MC-VERB? EXIT>
|
|
<COND (<MC-HERE? ,RM-MANUSCRIPT-ROOM>
|
|
<RT-DO-WALK ,P?WEST>
|
|
<RTRUE>)>)>
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE RT-AC-RM-VICTORIA-STREET ("OPTIONAL" (CONTEXT <>))
|
|
<DEBUGGING? <RT-DEBUG-RM-AC "RM-VICTORIA-STREET" .CONTEXT>>
|
|
<COND (<RT-DESCFCN-CONTEXT .CONTEXT>
|
|
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
|
|
<TELL "You enter">)
|
|
(T
|
|
<TELL "You are loitering in">)>
|
|
<TELL
|
|
" Victoria Street, which runs east and west between Victoria Square
|
|
and Broad Sanctuary." CR CR
|
|
|
|
"You see a sign outside one of the shops." CR>
|
|
<RFALSE>)
|
|
(<AND <==? .CONTEXT ,K-M-BEG>
|
|
<MC-VERB? WAIT>>
|
|
<COND (<MC-ISNOT? ,RM-VICTORIA-STREET ,FL-ASLEEP>
|
|
<MC-MAKE ,RM-VICTORIA-STREET ,FL-ASLEEP>
|
|
<TELL
|
|
"After a few moments, a constable strolls by, bops you on the head
|
|
with his billy club, and says, \"Move along, you.\"" CR>
|
|
<RTRUE>)
|
|
(T
|
|
<TELL
|
|
"The same constable as before walks by and says, \"You again? That's it,
|
|
mate. Come along with me.\" He bops you on the head again and arrests you
|
|
on a charge of vagrancy." CR CR
|
|
|
|
"You spend the night in gaol, and in the morning Inspector Lestrade drops
|
|
by to tell you that there has been a mix-up in the paperwork and you are
|
|
to be deported to Australia the following day. He gives you a letter to
|
|
deliver to his sister in Melbourne and wishes you luck." CR CR>
|
|
<RT-QSR>)>)
|
|
(<T? .CONTEXT> <RFALSE>)>>
|
|
|
|
<ROUTINE RT-AC-RM-CLOCK-TOWER ("OPTIONAL" (CONTEXT <>))
|
|
<DEBUGGING? <RT-DEBUG-RM-AC "RM-CLOCK-TOWER" .CONTEXT>>
|
|
<COND (<RT-DESCFCN-CONTEXT .CONTEXT>
|
|
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
|
|
<TELL
|
|
"The stairs seem to wind up forever. Finally, you emerge into">)
|
|
(T
|
|
<TELL "You are in">)>
|
|
<TELL " the interior of the clock tower, high above the Houses
|
|
of Parliament." CR CR
|
|
|
|
"The immense bell known as Big Ben is hanging from the
|
|
ceiling, suspended over a hollow shaft that is so deep it might as
|
|
well be bottomless. A wooden railing runs around the shaft
|
|
for safety." CR CR
|
|
|
|
"Inside the bell, you see an enormous clapper">
|
|
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1>
|
|
<MC-MAKE ,TH-BELL ,FL-SEEN>
|
|
<MC-MAKE ,TH-SAPPHIRE ,FL-SEEN>
|
|
<MC-MAKE ,TH-CLAPPER ,FL-SEEN>
|
|
<MC-MAKE ,TH-SHAFT ,FL-SEEN>
|
|
<MC-MAKE ,TH-RAILING ,FL-SEEN>
|
|
<TELL ,K-SAPPHIRE-MSG CR>
|
|
<RTRUE>)
|
|
(T
|
|
<COND (<IN? ,TH-SAPPHIRE ,TH-CLAPPER>
|
|
<TELL ,K-SAPPHIRE-MSG CR>)
|
|
(T
|
|
<TELL "." CR>)>
|
|
<RFALSE>)>)
|
|
(<NOT <RT-ALARM-SET? ,RT-I-SWING-BELL>>
|
|
<RT-ZERO-SECONDS>)>
|
|
<RFALSE>>
|
|
|
|
<ROUTINE RT-AC-RM-THAMES-ONE ("OPTIONAL" (CONTEXT <>))
|
|
<DEBUGGING? <RT-DEBUG-RM-AC "RM-THAMES-ONE" .CONTEXT>>
|
|
;<IFSOUND <COND (<==? .CONTEXT ,K-M-BEG>
|
|
<SOUNDS ,S-BOATING ,S-START>)>>
|
|
<COND (<RT-DESCFCN-CONTEXT .CONTEXT>
|
|
<TELL "You are">
|
|
<RT-IN-VEHICLE-MSG>
|
|
<TELL "on the Thames, just south of the Embankment." CR>
|
|
<RFALSE>)
|
|
(T
|
|
<RT-PROCESS-BOAT-ON-THAMES>)>>
|
|
|
|
<ROUTINE RT-AC-RM-THAMES-TWO ("OPTIONAL" (CONTEXT <>))
|
|
<DEBUGGING? <RT-DEBUG-RM-AC "RM-THAMES-TWO" .CONTEXT>>
|
|
;<IFSOUND <COND (<==? .CONTEXT ,K-M-BEG>
|
|
<SOUNDS ,S-BOATING ,S-START>)>>
|
|
<COND (<RT-DESCFCN-CONTEXT .CONTEXT>
|
|
<TELL "You are">
|
|
<RT-IN-VEHICLE-MSG>
|
|
<TELL "on the Thames. Downstream you can see London Bridge." CR>
|
|
<RFALSE>)
|
|
(T
|
|
<RT-PROCESS-BOAT-ON-THAMES>)>>
|
|
|
|
<ROUTINE RT-AC-RM-THAMES-THREE ("OPTIONAL" (CONTEXT <>))
|
|
<DEBUGGING? <RT-DEBUG-RM-AC "RM-THAMES-THREE" .CONTEXT>>
|
|
;<IFSOUND <COND (<==? .CONTEXT ,K-M-BEG>
|
|
<SOUNDS ,S-BOATING ,S-START>)>>
|
|
<COND (<RT-DESCFCN-CONTEXT .CONTEXT>
|
|
<TELL "You are">
|
|
<RT-IN-VEHICLE-MSG>
|
|
<TELL "underneath London Bridge." CR>
|
|
<RFALSE>)
|
|
(<OR <AND <MC-VERB? EXAMINE LOOK-UNDER>
|
|
<MC-PRSO? ,RM-LONDON-BRIDGE>>
|
|
<AND <MC-VERB? LOOK-UP>
|
|
<MC-PRSO? ,ROOMS ,RM-LONDON-BRIDGE>>>
|
|
<TELL "You see nothing of interest">
|
|
<COND (<IN? ,TH-CLUMP-OF-MOSS ,RM-THAMES-THREE>
|
|
<MC-MAKE ,TH-CLUMP-OF-MOSS ,FL-SEEN>
|
|
<TELL
|
|
", other than a clump of moss lodged among the supports overhead." CR>)
|
|
(T
|
|
<TELL "." CR>)>
|
|
<RT-PROCESS-BOAT-ON-THAMES>
|
|
<RTRUE>)
|
|
(T
|
|
<RT-PROCESS-BOAT-ON-THAMES>)>>
|
|
|
|
<ROUTINE RT-AC-RM-THAMES-FOUR ("OPTIONAL" (CONTEXT <>))
|
|
<DEBUGGING? <RT-DEBUG-RM-AC "RM-THAMES-FOUR" .CONTEXT>>
|
|
;<IFSOUND <COND (<==? .CONTEXT ,K-M-BEG>
|
|
<SOUNDS ,S-BOATING ,S-START>)>>
|
|
<COND (<RT-DESCFCN-CONTEXT .CONTEXT>
|
|
<TELL "You are">
|
|
<RT-IN-VEHICLE-MSG>
|
|
<TELL "on the Thames, just south of Traitor's Gate." CR>
|
|
<RFALSE>)
|
|
(T
|
|
<RT-PROCESS-BOAT-ON-THAMES>)>>
|
|
|
|
<ROUTINE RT-AC-RM-THAMES-FIVE ("OPTIONAL" (CONTEXT <>))
|
|
<DEBUGGING? <RT-DEBUG-RM-AC "RM-THAMES-FIVE" .CONTEXT>>
|
|
;<IFSOUND <COND (<==? .CONTEXT ,K-M-BEG>
|
|
<SOUNDS ,S-BOATING ,S-START>)>>
|
|
<COND (<RT-DESCFCN-CONTEXT .CONTEXT>
|
|
<TELL "You are">
|
|
<RT-IN-VEHICLE-MSG>
|
|
<TELL "on the Thames, in danger of drifting out to sea." CR>
|
|
<RFALSE>)
|
|
(T
|
|
<RT-PROCESS-BOAT-ON-THAMES>)>>
|
|
|
|
<ROUTINE RT-AC-RM-SHERMANS-HOUSE ("OPTIONAL" (CONTEXT <>))
|
|
<DEBUGGING? <RT-DEBUG-RM-AC "RM-SHERMANS-HOUSE" .CONTEXT>>
|
|
<COND (<RT-DESCFCN-CONTEXT .CONTEXT>
|
|
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1>
|
|
<RT-THIS-IS-IT ,CH-SHERMAN>
|
|
<MC-MAKE ,CH-SHERMAN ,FL-SEEN>
|
|
<MC-MAKE ,RM-SHERMANS-HOUSE ,FL-SEEN>
|
|
<TELL "You enter the cramped quarters of Sherman's
|
|
shop. The old animal-trainer's eyes brighten up when he sees you." CR CR
|
|
|
|
"\"You've probably come looking for Toby,\" he says. \"But I'm afraid I
|
|
won't be able to help you this time. Toby's not feeling too well, and all my
|
|
other animals are already out on loan. All I have left is a half-trained
|
|
pigeon.\"" CR>
|
|
<RTRUE>)
|
|
(<EQUAL? .CONTEXT ,K-M-DESC-2 ,K-M-DESC-3>
|
|
<TELL "Sherman's shop is dingy and cramped. Dozens of
|
|
empty cages are stacked up against the walls." CR>
|
|
<RFALSE>)>)
|
|
(<EQUAL? .CONTEXT ,K-M-ENTERED>
|
|
; "If the house is asleep, then the player has entered it for the first time,
|
|
and Sherman should not act -- DEB"
|
|
<COND (<MC-IS? ,RM-SHERMANS-HOUSE ,FL-ASLEEP>
|
|
<MC-UNMAKE ,RM-SHERMANS-HOUSE ,FL-ASLEEP>
|
|
<RFALSE>)
|
|
; "If the house is not asleep, then the player has entered it more than once,
|
|
and Sherman should act based on whether or not the trained pigeon is alive
|
|
-- DEB"
|
|
(<MC-IS? ,CH-SHERMAN ,FL-ASLEEP>
|
|
<RFALSE>)
|
|
(<MC-IS? ,CH-TRAINED-PIGEON ,FL-ALIVE>
|
|
<TELL CR
|
|
"Sherman says, \"Welcome back. It's a pleasure to see you again.\"" CR>
|
|
<RT-THIS-IS-IT ,CH-SHERMAN>)
|
|
(T
|
|
<RT-SHERMAN-RAGE T>)>)
|
|
(<T? .CONTEXT> <RFALSE>)
|
|
(<MC-VERB? ENTER>
|
|
<COND (<MC-HERE? ,RM-PINCHIN-LANE>
|
|
<RT-DO-WALK ,P?WEST>
|
|
<RTRUE>)>)
|
|
(<MC-VERB? EXIT>
|
|
<COND (<MC-HERE? ,RM-SHERMANS-HOUSE>
|
|
<RT-DO-WALK ,P?EAST>
|
|
<RTRUE>)>)>>
|
|
|
|
<ROUTINE RT-AC-RM-THREADNEEDLE-ST ("OPTIONAL" (CONTEXT <>))
|
|
<DEBUGGING? <RT-DEBUG-RM-AC "RM-THREADNEEDLE-ST" .CONTEXT>>
|
|
<COND (<F? .CONTEXT>
|
|
<COND (<MC-VERB? ENTER>
|
|
<COND (<MC-HERE? ,RM-BANK-OF-ENGLAND>
|
|
<RT-DO-WALK ,P?SOUTH>
|
|
<RTRUE>)>)>
|
|
<RFALSE>)>
|
|
<COND (<RT-DESCFCN-CONTEXT .CONTEXT>
|
|
<MC-MAKE ,CH-BANK-GUARD ,FL-SEEN>
|
|
<MC-MAKE ,CH-URCHINS ,FL-SEEN>
|
|
<MC-MAKE ,TH-GUARDS-POCKET ,FL-SEEN>
|
|
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
|
|
<COND (<EQUAL? ,GL-PLACE-PRV ,RM-BANK-OF-ENGLAND>
|
|
<TELL "You emerge into">)
|
|
(T
|
|
<TELL "You enter">)>
|
|
<TELL " Threadneedle Street and are now">)
|
|
(T
|
|
<TELL "You are">)>
|
|
<TELL " in front of the Bank of England. The entrance to
|
|
the bank is to the north, Cheapside leads off to the west, and King
|
|
William Street ">
|
|
<COND (<EQUAL? <RT-TIME-OF-DAY> 0>
|
|
<TELL "disappears off into the darkness">)
|
|
(T
|
|
<TELL "continues">)>
|
|
<TELL " to the southeast. On the wall is a small sign." CR>
|
|
<COND (<OR <EQUAL? .CONTEXT ,K-M-DESC-1>
|
|
<IN? ,CH-BANK-GUARD ,RM-THREADNEEDLE-ST>>
|
|
<TELL
|
|
CR "A bank guard is lounging up against the wall, idly jangling some keys
|
|
in his pocket while he watches a group of urchins playing in the street." CR>
|
|
<COND (<MC-IS? ,CH-WIGGINS ,FL-BROKEN>
|
|
<TELL CR ,K-URCHIN-MSG CR>
|
|
<RTRUE>)>)
|
|
(T
|
|
<TELL CR "A group of urchins is playing in the street." CR>)>
|
|
<RFALSE>)
|
|
(<AND <EQUAL? .CONTEXT ,K-M-BEG>
|
|
<IN? ,CH-HOLMES ,RM-LAIR>
|
|
<MC-ISNOT? ,TH-TOPAZ ,FL-LOCKED>>
|
|
<RT-WIGGINS-HELP-MSG>
|
|
<CRLF>
|
|
<MC-MAKE ,TH-TOPAZ ,FL-LOCKED>)
|
|
(<AND <EQUAL? .CONTEXT ,K-M-ENTERED>
|
|
<EQUAL? ,GL-PLACE-PRV ,RM-BANK-OF-ENGLAND>
|
|
<MC-ISNOT? ,TH-TOPAZ ,FL-ASLEEP>>
|
|
<RT-KIDNAP>
|
|
<MC-MAKE ,TH-TOPAZ ,FL-ASLEEP>)>
|
|
<RFALSE>>
|
|
|
|
<ROUTINE RT-AC-RM-LONDON-BRIDGE ("OPTIONAL" (CONTEXT <>))
|
|
<DEBUGGING? <RT-DEBUG-RM-AC "RM-LONDON-BRIDGE" .CONTEXT>>
|
|
<COND (<RT-DESCFCN-CONTEXT .CONTEXT>
|
|
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
|
|
<COND (<EQUAL? ,GL-PLACE-PRV ,RM-LAIR>
|
|
<TELL
|
|
"When you emerge from the lair you are momentarily disoriented, blinking
|
|
your eyes in the bright sunlight. After a few moments, you realize you
|
|
are standing on London bridge, but you have no idea from which direction
|
|
you came." CR>
|
|
<RTRUE>)
|
|
(T
|
|
<TELL "You">
|
|
<RT-DRIVE-WALK-MSG?>
|
|
<TELL "up onto">)>)
|
|
(T
|
|
<TELL "You are">
|
|
<RT-IN-VEHICLE-MSG>
|
|
<TELL "on">)>
|
|
<TELL " London Bridge. ">
|
|
<COND (<EQUAL? <RT-TIME-OF-DAY> 1 2 3>
|
|
<TELL "The view of the river from here is spectacular,
|
|
and hoards of sightseers are here with you to share the view." CR>)
|
|
(T
|
|
<TELL
|
|
"The fog is so dense you can barely see the river from here." CR>)>
|
|
<RFALSE>)
|
|
(<OR <AND <F? .CONTEXT>
|
|
<MC-VERB? LOOK-UNDER LOOK-DOWN>
|
|
<MC-PRSO? ,RM-LONDON-BRIDGE>>
|
|
<AND <==? .CONTEXT ,K-M-BEG>
|
|
<MC-VERB? LOOK-DOWN>
|
|
<MC-PRSO? ,ROOMS>>>
|
|
<TELL "You see the Thames flowing slowly by, just as it has
|
|
done for centuries past." CR>
|
|
<RTRUE>)
|
|
(<T? .CONTEXT> <RFALSE>)
|
|
(<MC-THIS-PRSO?>
|
|
<COND (<MC-VERB? ENTER>
|
|
<COND (<MC-HERE? ,RM-LOWER-THAMES-ST>
|
|
<RT-DO-WALK ,P?SOUTH>
|
|
<RTRUE>)
|
|
(<MC-HERE? ,RM-THAMES-THREE>
|
|
<TELL "You can't climb onto the bridge." CR>
|
|
<RTRUE>)>)
|
|
(<MC-VERB? EXIT>
|
|
<COND (<MC-HERE? ,RM-LONDON-BRIDGE>
|
|
<RT-DO-WALK ,P?NORTH>
|
|
<RTRUE>)>)
|
|
(<MC-VERB? SHOOT>
|
|
<TELL ,K-RICOCHET-MSG CR>
|
|
<RTRUE>)>)
|
|
(<MC-THIS-PRSI?>
|
|
<COND (<AND <IN? ,CH-PLAYER ,TH-BOAT>
|
|
<MC-VERB? PUT PUT-ON>>
|
|
<TELL "You can't attach anything to the bridge." CR>
|
|
<RTRUE>)>)>>
|
|
|
|
<ROUTINE RT-AC-RM-SWAN-LANE ("OPTIONAL" (CONTEXT <>))
|
|
<DEBUGGING? <RT-DEBUG-RM-AC "RM-SWAN-LANE" .CONTEXT>>
|
|
<COND (<RT-DESCFCN-CONTEXT .CONTEXT>
|
|
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
|
|
<COND (<EQUAL? ,GL-PLACE-PRV ,RM-LOWER-THAMES-ST>
|
|
<TELL "With increasing apprehension, you descend">)
|
|
(T
|
|
<TELL "With considerable relief, you emerge">)>
|
|
<TELL " into">)
|
|
(T
|
|
<TELL "With increasing apprehension, you are standing in">)>
|
|
<TELL " Swan Lane, which runs along the waterfront of the Thames." CR CR>
|
|
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1>
|
|
<TELL "It is a seedy, disreputable, run-down part of town
|
|
that normally you wouldn't be caught dead in. After a moment's reflection,
|
|
you wish you hadn't thought of it in quite those terms." CR CR>)>
|
|
<TELL
|
|
"To the west is the entrance to one of the least savory buildings
|
|
you have ever seen. There is a faded sign above the door that informs
|
|
you that the establishment was, in better days, known as the Bar
|
|
of Gold." CR CR
|
|
|
|
"Fortunately, it is only a short walk back up the stairs to Lower
|
|
Thames Street." CR>
|
|
<RFALSE>)
|
|
(<AND <EQUAL? .CONTEXT ,K-M-ENTERED>
|
|
<EQUAL? ,GL-PLACE-PRV ,RM-BAR-OF-GOLD>
|
|
<IN? ,CH-WIGGINS ,RM-SWAN-LANE>>
|
|
<TELL CR
|
|
CTHE ,CH-WIGGINS " says, \"Blimey!! I didn't think you would make it
|
|
out of there alive.\"" CR>
|
|
<SETG GL-PUPPY ,CH-WIGGINS>
|
|
;<MC-UNMAKE ,CH-WIGGINS ,FL-NODESC> ;"FLAGS NEVER SET"
|
|
;<MC-UNMAKE ,CH-WIGGINS ,FL-BROKEN>)
|
|
(<T? .CONTEXT> <RFALSE>)
|
|
(<MC-VERB? ENTER>
|
|
<COND (<MC-HERE? ,RM-BAR-OF-GOLD>
|
|
<RT-DO-WALK ,P?EAST>
|
|
<RTRUE>)>)>>
|
|
|
|
<ROUTINE RT-AC-RM-BAR-OF-GOLD ("OPTIONAL" (CONTEXT <>))
|
|
<DEBUGGING? <RT-DEBUG-RM-AC "RM-BAR-OF-GOLD" .CONTEXT>>
|
|
<COND (<RT-DESCFCN-CONTEXT .CONTEXT>
|
|
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1>
|
|
<MC-MAKE ,CH-DENKEEPER ,FL-SEEN>
|
|
<MC-MAKE ,TH-OPIUM-GAS ,FL-SEEN>)>
|
|
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
|
|
<TELL
|
|
"After fighting the urge to turn and run, you enter and find yourself ">)
|
|
(T
|
|
<TELL "You are standing - rather nervously - ">)>
|
|
<TELL
|
|
"in the Bar of Gold, the most infamous opium den in London. The
|
|
proprietor is a most unsavory character who ">
|
|
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
|
|
<TELL
|
|
"gives you a sidelong glance as you enter and then ignores you">)
|
|
(T
|
|
<TELL "hasn't given you a second look since you came in">)>
|
|
<TELL "." CR>
|
|
<RFALSE>)
|
|
(<AND <EQUAL? .CONTEXT ,K-M-ENTERING>
|
|
<EQUAL? ,GL-PUPPY ,CH-WIGGINS>>
|
|
<TELL THE ,CH-WIGGINS " says, \"You must be stark raving
|
|
bonkers. That's the most dangerous place in London. I'll wait
|
|
out here, thank you very much!\"" CR CR>
|
|
<SETG GL-PUPPY <>>)
|
|
(<T? .CONTEXT> <RFALSE>)
|
|
(<MC-VERB? ENTER>
|
|
<COND (<MC-HERE? ,RM-SWAN-LANE>
|
|
<RT-DO-WALK ,P?WEST>
|
|
<RTRUE>)>)
|
|
(<MC-VERB? EXIT>
|
|
<COND (<MC-HERE? ,RM-BAR-OF-GOLD>
|
|
<RT-DO-WALK ,P?EAST>
|
|
<RTRUE>)>)>>
|
|
|
|
<ROUTINE RT-AC-RM-LAIR ("OPTIONAL" (CONTEXT <>))
|
|
<DEBUGGING? <RT-DEBUG-RM-AC "RM-LAIR" .CONTEXT>>
|
|
<COND (<RT-DESCFCN-CONTEXT .CONTEXT>
|
|
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1>
|
|
<MC-MAKE ,CH-MORIARTY ,FL-SEEN>
|
|
<MC-MAKE ,TH-LAIR-KEY ,FL-SEEN>
|
|
<MC-MAKE ,TH-CROWN-JEWELS ,FL-SEEN>
|
|
<MC-MAKE ,TH-MORIARTY-DESK ,FL-SEEN>
|
|
<MC-MAKE ,TH-ROPE ,FL-SEEN>
|
|
<TELL "At last you come face to face with the evil
|
|
Professor. He is sitting placidly behind his desk, looking at you as if
|
|
you were some botanical specimen." CR CR
|
|
|
|
"As you look around the room, you see Sherlock Holmes tied to a
|
|
chair. He is only inches away from the Crown Jewels, which Moriarty has
|
|
spread out on his desk, the better to taunt Holmes." CR CR
|
|
|
|
"Holmes looks up and says, \"Ah, there you are Watson.\" He turns his head
|
|
towards Moriarty and says, \"You see, Professor, you grossly underestimate
|
|
the intelligence and determination of your fellow countrymen.\"" CR CR
|
|
|
|
"\"Watson,\" he continues. \"The Professor and I have just been chatting about
|
|
why he led us on this merry chase. If you care to ask him, I'm sure he would
|
|
be happy to fill you in as well.\"" CR>
|
|
<RTRUE>)
|
|
(<EQUAL? .CONTEXT ,K-M-DESC-3>
|
|
<TELL "The room is simply, but elegantly, furnished.">
|
|
<COND (<MC-IS? ,CH-HOLMES ,FL-LOCKED>
|
|
<SETG GL-PUPPY-MSG? <>>
|
|
<TELL " " <RT-PICK-NEXT ,GL-HOLMES-DESC-TXT>
|
|
,K-SECURELY-BOUND-MSG ".">)>
|
|
<CRLF>)>
|
|
<RFALSE>)
|
|
(<EQUAL? .CONTEXT ,K-M-ENTERED>
|
|
<SETG GL-PUPPY ,CH-HOLMES>)>
|
|
<COND (<==? .CONTEXT ,K-M-BEG>
|
|
<COND (<MC-VERB? TAKE SHOW>
|
|
<COND (<MC-PRSO? ,TH-BREATH>
|
|
<RFALSE>)
|
|
(<MC-IS? ,GL-PRSO ,FL-BODYPART>
|
|
<RFALSE>)
|
|
(<MC-IS? ,GL-PRSO ,FL-WORN>
|
|
<RFALSE>)
|
|
(<AND <MC-ISNOT? ,CH-MORIARTY ,FL-LOCKED>
|
|
<MC-ISNOT? ,CH-MORIARTY ,FL-ASLEEP>>
|
|
<COND (<RT-META-IN? ,GL-PRSO ,GL-WINNER>
|
|
<RT-ALARM-SET-REL ,RT-I-TAKE-WATSONS-STUFF
|
|
<RT-PARM-SET 0 1 0>>
|
|
<MOVE ,GL-PRSO ,GL-WINNER>
|
|
<TELL
|
|
"Moriarty's normally emotionless features dissolve in rage. He shouts at
|
|
Akbar, \"Why didn't you take that from him when you brought him
|
|
in?\"" CR CR
|
|
|
|
"The outburst startles Akbar into momentary inaction, but he quickly recovers
|
|
and starts to come towards you with a violent look in his eyes." CR>)
|
|
(T
|
|
<TELL "Akbar steps in your way">
|
|
<COND (<MC-IS? ,TH-WATSONS-HAT ,FL-WORN>
|
|
<TELL ", says, \"Pardon me, honourable sir,\"">)>
|
|
<TELL " and stops you from taking " THEO "." CR>)>)>)
|
|
(<AND <MC-VERB? RELEASE>
|
|
<MC-PRSO? ,TH-BREATH>>
|
|
<RFALSE>)
|
|
(<MC-VERB? UNTIE RELEASE>
|
|
<COND (<==? ,GL-PRSO ,TH-ROPE>
|
|
<RFALSE>)
|
|
(<MC-IS? ,GL-PRSO ,FL-LOCKED>
|
|
<COND (<OR <MC-IS? ,CH-AKBAR ,FL-ASLEEP>
|
|
<MC-IS? ,CH-AKBAR ,FL-LOCKED>>
|
|
<MC-UNMAKE ,GL-PRSO ,FL-LOCKED>
|
|
<RT-CYOU-MSG "untie" "unties">
|
|
<TELL THEO>
|
|
<COND (<EQUAL? ,GL-PRSO ,TH-ROPE-AUX1>
|
|
<SETG TH-ROPE-AUX1 ,TH-ROPE-AUX2>
|
|
<SETG TH-ROPE-AUX2 -1>
|
|
<COND (<EQUAL? ,TH-ROPE-AUX1 -1>
|
|
<MOVE ,TH-ROPE ,CH-PLAYER>
|
|
<MC-UNMAKE ,TH-ROPE ,FL-NODESC>
|
|
<TELL ", keeping " THE ,TH-ROPE>)>)
|
|
(<EQUAL? ,GL-PRSO ,TH-ROPE-AUX2>
|
|
<SETG TH-ROPE-AUX2 -1>)>
|
|
<TELL "." CR>
|
|
<COND (<AND <MC-PRSO? ,CH-MORIARTY ,CH-AKBAR>
|
|
<MC-ISNOT? ,CH-AKBAR ,FL-ASLEEP>>
|
|
<CRLF>
|
|
<COND (<EQUAL? ,GL-PRSO ,CH-MORIARTY>
|
|
<TELL
|
|
"Bad move. As soon as he is free, Moriarty">)
|
|
(T
|
|
<TELL
|
|
"Akbar immediately unties Moriarty, who">)>
|
|
<TELL
|
|
" unlocks his desk and pulls out a pistol. \"Thank you for releasing
|
|
me, gentlemen,\" he says, waving the gun at you. \"Very sporting of
|
|
you.\" He glances at his pocketwatch. \"We shouldn't have too long to
|
|
wait.\" Minutes later you hear newsboys running through the
|
|
streets shouting about the resignation of the Prime Minister." CR>
|
|
<RT-QSR>)>
|
|
<RTRUE>)
|
|
(T
|
|
<RT-ROPE-MSG>)>)
|
|
(<MC-VERB? RELEASE>
|
|
<RFALSE>)
|
|
(T
|
|
<TELL CTHEO>
|
|
<RT-ISNT-ARENT-MSG ,GL-PRSO>
|
|
<TELL "tied up." CR>)>)
|
|
(<AND <MC-VERB? TIE-UP>
|
|
<NOT <MC-PRSI? ,TH-ROPE ROOMS>>>
|
|
<RT-IMPOSSIBLE-MSG>)
|
|
(<AND <MC-VERB? TIE TIE-UP>
|
|
<OR <MC-PRSO? ,CH-PLAYER ,CH-ME>
|
|
<MC-PRSI? ,CH-PLAYER ,CH-ME>>>
|
|
<TELL "We'll assume you're joking." CR>
|
|
<RTRUE>)
|
|
(<MC-VERB? TIE TIE-UP>
|
|
<COND (<RT-VISIBLE? ,TH-ROPE>
|
|
<COND (<OR <MC-IS? ,CH-AKBAR ,FL-ASLEEP>
|
|
<MC-IS? ,CH-AKBAR ,FL-LOCKED>>
|
|
<COND (<EQUAL? ,CH-HOLMES ,GL-PRSI ,GL-PRSO>
|
|
<TELL "Surely you jest." CR>
|
|
<RTRUE>)>
|
|
<COND (<EQUAL? ,TH-ROPE-AUX1 -1>
|
|
<SETG TH-ROPE-AUX1 ,GL-PRSO>)
|
|
(<EQUAL? ,TH-ROPE-AUX2 -1>
|
|
<SETG TH-ROPE-AUX2 ,GL-PRSO>)
|
|
(T
|
|
<TELL CTHE ,TH-ROPE " is not long enough." CR>
|
|
<RTRUE>)>
|
|
<COND (<EQUAL? ,GL-PRSI ,ROOMS>
|
|
<SETG GL-PRSI <>>)>
|
|
<MOVE ,TH-ROPE ,GL-PLACE-CUR>
|
|
<MC-MAKE ,TH-ROPE ,FL-NODESC>
|
|
<MC-MAKE ,GL-PRSO ,FL-LOCKED>
|
|
<COND (<MC-PRSI? <> ,TH-ROPE>
|
|
<RT-CYOU-MSG "tie" "ties">
|
|
<TELL "up " THEO "." CR>)
|
|
(<NOT <EQUAL? ,TH-ROPE-AUX2 -1>>
|
|
<RT-CYOU-MSG "tie" "ties">
|
|
<TELL "up " THEO ", but "
|
|
THE ,TH-ROPE " is not long enough to tie up " THEI " as well." CR>)
|
|
(T
|
|
<MC-MAKE ,GL-PRSI ,FL-LOCKED>
|
|
<TELL "You tie " THEO " to " THEI "." CR>)>)
|
|
(T
|
|
<RT-ROPE-MSG>)>)
|
|
(T
|
|
<TELL "You don't have " A ,TH-ROPE "." CR>)>)>)>>
|
|
|
|
<ROUTINE RT-AC-RM-NAVE ("OPTIONAL" (CONTEXT <>))
|
|
<DEBUGGING? <RT-DEBUG-RM-AC "RM-NAVE" .CONTEXT>>
|
|
<COND (<RT-DESCFCN-CONTEXT .CONTEXT>
|
|
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1>
|
|
<MC-MAKE ,TH-NEWTON-TOMB ,FL-SEEN>
|
|
<TELL
|
|
"You enter the Abbey and pause in the Nave, struck by the sheer magnificence
|
|
of the building. Massive Purbeck columns march the length of the Nave, and
|
|
they rise in perfect proportion to meet each other in a series of pointed
|
|
arches that are the hallmark of the Gothic style." CR CR
|
|
|
|
"The interior of the Abbey is dark, cold, and gloomy - but after a few
|
|
moments your eyes adjust and you can make out a tomb at the far end of
|
|
the room." CR>
|
|
<RTRUE>)
|
|
(<EQUAL? .CONTEXT ,K-M-DESC-2 ,K-M-DESC-3>
|
|
<COND (<EQUAL? .CONTEXT ,K-M-DESC-2>
|
|
<COND (<EQUAL? ,GL-PLACE-PRV ,RM-BROAD-SANCTUARY>
|
|
<TELL
|
|
"You walk through the massive door and find yourself once again in">)
|
|
(T
|
|
<TELL "You return to">)>)
|
|
(<EQUAL? .CONTEXT ,K-M-DESC-3>
|
|
<TELL "You are standing in">)>
|
|
<TELL
|
|
" the Nave. Amidst the massive columns, one tomb in particular catches your
|
|
attention." CR>
|
|
<RFALSE>)>)
|
|
(<EQUAL? .CONTEXT ,K-M-ENTERED>
|
|
<SETG PLAYER-IN-ABBEY T>)
|
|
(<AND <EQUAL? .CONTEXT ,K-M-EXIT>
|
|
<EQUAL? ,GL-P-WALK-DIR ,P?OUT ,P?WEST>>
|
|
<SETG PLAYER-IN-ABBEY <>>)>
|
|
<RFALSE>>
|
|
|
|
<ROUTINE RT-AC-RM-EVANGELIST-CHAPEL ("OPTIONAL" (CONTEXT <>))
|
|
<DEBUGGING? <RT-DEBUG-RM-AC "RM-EVANGELIST-CHAPEL" .CONTEXT>>
|
|
<COND (<RT-DESCFCN-CONTEXT .CONTEXT>
|
|
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1>
|
|
<MC-MAKE ,TH-BANK-OF-CANDLES ,FL-SEEN>
|
|
<MC-MAKE ,TH-VERE-TOMB ,FL-SEEN>
|
|
<TELL
|
|
"You enter the Evangelist Chapel and wonder what it is
|
|
about this room that makes you feel it is somehow different from the
|
|
rest of the Abbey." CR>)
|
|
(<EQUAL? .CONTEXT ,K-M-DESC-2>
|
|
<TELL "You return to the welcome warmth provided by
|
|
the array of candles in the Evangelist Chapel." CR>)
|
|
(T
|
|
<TELL "Light! Warmth! There is a bank of candles
|
|
here lit by devoted worshippers. The candles warm the room so effectively
|
|
that after a few moments you actually become uncomfortable." CR CR
|
|
|
|
"One of the most unusual tombs in the Abbey is here." CR>)>
|
|
<RFALSE>)
|
|
(<EQUAL? .CONTEXT ,K-M-BEG>
|
|
<RT-PAPER-WARMING ,TH-WHITE-PAPER>
|
|
<RT-PAPER-WARMING ,TH-BLUE-PAPER>
|
|
<RT-PAPER-WARMING ,TH-ORANGE-PAPER>
|
|
<RT-PAPER-WARMING ,TH-YELLOW-PAPER>
|
|
<RT-PAPER-WARMING ,TH-BROWN-PAPER>
|
|
<RT-PAPER-WARMING ,TH-GREEN-PAPER>
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE RT-AC-RM-HENRY-VII-CHAPEL ("OPTIONAL" (CONTEXT <>))
|
|
<DEBUGGING? <RT-DEBUG-RM-AC "RM-HENRY-VII-CHAPEL" .CONTEXT>>
|
|
<COND (<RT-DESCFCN-CONTEXT .CONTEXT>
|
|
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1>
|
|
<MC-MAKE ,TH-HENRY-VII-TOMB ,FL-SEEN>)>
|
|
<COND (<EQUAL? .CONTEXT ,K-M-DESC-1 ,K-M-DESC-2>
|
|
<TELL "You enter">)
|
|
(T
|
|
<TELL "You are in">)>
|
|
<TELL
|
|
" Henry VII's chapel, which is one of the most beautiful chapels
|
|
in the world. The ceiling is a masterpiece of delicate fan vaulting, and
|
|
the Renaissance gilt-bronze tomb is obviously the work of one of the
|
|
Italian masters." CR>
|
|
<RFALSE>)
|
|
(<MC-VERB? LOOK-UP>
|
|
<TELL ,K-BREATH-TAKING-MSG CR>)>>
|
|
|
|
<ROUTINE RT-EX-ENTER-BANK-OF-ENGLAND ()
|
|
<COND (<L? ,CH-BANK-GUARD-AUX1 4>
|
|
<TELL
|
|
"The guard stops you as you try to enter. \"Excuse me, sir. You can't go
|
|
in there. And don't even THINK about trying to bribe me.\"" CR>
|
|
<RT-THIS-IS-IT ,CH-BANK-GUARD>
|
|
<RFALSE>)
|
|
(<IN? ,TH-BOX-KEY ,TH-GUARDS-POCKET>
|
|
<TELL
|
|
"Holmes takes you to one side and whispers, \"It is obvious, dear fellow, that
|
|
it would be pointless to enter the bank with no means of unlocking anything we
|
|
may find inside.\"" CR>
|
|
<RFALSE>)
|
|
(T
|
|
<COND (<IN? ,CH-BANK-GUARD ,RM-THREADNEEDLE-ST>
|
|
<TELL "As soon as you enter, the guard leaves." CR CR>
|
|
<REMOVE ,CH-BANK-GUARD>)>
|
|
<RETURN ,RM-BANK-OF-ENGLAND>)>>
|
|
|
|
<ROUTINE RT-AC-RM-BUCKINGHAM-PALACE ("OPT" (CONTEXT <>))
|
|
<COND (<T? .CONTEXT> <RFALSE>)
|
|
(<MC-VERB? ENTER>
|
|
<COND (<MC-HERE? ,RM-QUEENS-GARDENS>
|
|
<RT-DO-WALK ,P?WEST>
|
|
<RTRUE>)>)
|
|
(<MC-VERB? EXIT>
|
|
<COND (<MC-HERE? ,RM-BUCKINGHAM-PALACE>
|
|
<RT-DO-WALK ,P?EAST>
|
|
<RTRUE>)>)>>
|
|
|
|
<ROUTINE RT-EX-RM-ENTER-BUCKINGHAM-PALACE ()
|
|
<COND (<AND <EQUAL? ,GL-PRSO ,P?WEST ,P?IN>
|
|
<MC-HERE? ,RM-QUEENS-GARDENS>>
|
|
<TELL CTHE ,CH-PALACE-GUARD
|
|
" steps into your path and says, \"I'm sorry, but I've
|
|
been instructed to let no one into the Palace unless I receive certain items
|
|
of interest to the Crown.\"" CR>
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE RT-EX-RM-STEER-BOAT ()
|
|
<RT-ALARM-CLR ,RT-I-MOVE-DOWNSTREAM>
|
|
<TELL
|
|
"[To move the boat, ROW or PADDLE in a given direction, or LAND it.]" CR>
|
|
<RFALSE>>
|
|
|
|
<ROUTINE RT-EX-RM-LAND-BOAT ()
|
|
<TELL "[Land the Boat.]" CR>
|
|
<RT-LAND-BOAT>
|
|
<RFALSE>>
|
|
|
|
<ROUTINE RT-EX-RM-LAUNCH-BOAT ()
|
|
<COND (<IN? ,CH-PLAYER ,TH-BOAT>
|
|
<TELL "[Launch the Boat.]" CR>
|
|
<RT-LAUNCH-BOAT>)
|
|
(T
|
|
<TELL
|
|
"The last man who walked on water was killed by a bunch of Romans. Why
|
|
don't you play it safe and use a boat?" CR>)>
|
|
<RFALSE>>
|
|
|
|
<ROUTINE RT-EX-PARLOUR-ENTRY ()
|
|
<COND (<MC-IS? ,CH-HOLMES ,FL-ASLEEP>
|
|
<TELL CTHE ,CH-HUDSON ,K-HUDSON-WORRIED-MSG CR>
|
|
<RFALSE>)
|
|
(<MC-ISNOT? ,LG-PARLOUR-DOOR ,FL-OPENED>
|
|
<TELL CTHE ,LG-PARLOUR-DOOR " is closed." CR>
|
|
<RFALSE>)
|
|
(<AND <MC-PRSO? ,P?NORTH ,P?IN>
|
|
<MC-HERE? ,RM-ENTRY-HALL>>
|
|
<RETURN ,RM-PARLOUR>)>>
|
|
|
|
<ROUTINE RT-EX-LEAVE-EMBANKMENT ()
|
|
<COND (<MC-IS? ,TH-SUIT-OF-ARMOUR ,FL-WORN>
|
|
<TELL ,K-HEAVY-ARMOUR-MSG CR>
|
|
<RFALSE>)>
|
|
<COND (<IN? ,GL-WINNER ,TH-BOAT>
|
|
<RT-PERFORM ,V?EXIT ,TH-BOAT>
|
|
<COND (<NOT <IN? ,GL-WINNER ,RM-THE-EMBANKMENT>>
|
|
<RFALSE>)>)>
|
|
<COND (<AND <EQUAL? ,GL-PRSO ,P?NORTH>
|
|
<MC-HERE? ,RM-THE-EMBANKMENT>>
|
|
<RETURN ,RM-FLEET-STREET>)
|
|
(<AND <EQUAL? ,GL-PRSO ,P?EAST>
|
|
<MC-HERE? ,RM-THE-EMBANKMENT>>
|
|
<RETURN ,RM-UPPER-THAMES-ST>)>>
|