mirror of
https://github.com/historicalsource/arthur
synced 2024-05-01 16:49:30 +03:00
1834 lines
39 KiB
Plaintext
1834 lines
39 KiB
Plaintext
;"***************************************************************************"
|
|
; "game : Arthur"
|
|
; "file : CASTLE.ZIL"
|
|
; "auth : $Author: DEB $"
|
|
; "date : $Date: 15 May 1989 19:41:50 $"
|
|
; "revs : $Revision: 1.116 $"
|
|
; "vers : 1.0"
|
|
;"---------------------------------------------------------------------------"
|
|
; "Castle Puzzle"
|
|
; "Copyright (C) 1989 Infocom, Inc. All rights reserved."
|
|
;"***************************************************************************"
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "RM-PASSAGE-1"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<ROOM RM-PASSAGE-1
|
|
(LOC ROOMS)
|
|
(DESC "dark passage")
|
|
(FLAGS FL-INDOORS FL-LIGHTED)
|
|
(SYNONYM PASSAGE PASSAGEWAY)
|
|
(ADJECTIVE DARK SECRET)
|
|
(WEST TO RM-SMALL-CHAMBER)
|
|
(NORTH TO RM-PASSAGE-2)
|
|
(SOUTH TO RM-PASSAGE-3)
|
|
(OUT TO RM-SMALL-CHAMBER)
|
|
(UP PER RT-EXIT-PASSAGE-1)
|
|
(SCORE <ORB <LSH 2 ,K-WISD-SHIFT> <LSH 1 ,K-QUEST-SHIFT>>)
|
|
(GLOBAL LG-BADGER-TAPESTRY LG-WALL RM-SMALL-CHAMBER)
|
|
(ACTION RT-RM-PASSAGE-1)
|
|
>
|
|
|
|
<ROUTINE RT-RM-PASSAGE-1 ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(<MC-CONTEXT? ,M-F-LOOK ,M-V-LOOK ,M-LOOK>
|
|
<FSET ,LG-BADGER-TAPESTRY ,FL-SEEN>
|
|
<TELL
|
|
"You are in a dark underground passageway whose walls have been carved out of
|
|
solid rock. You peer into the darkness and "
|
|
>
|
|
<COND
|
|
(<MC-CONTEXT? ,M-F-LOOK>
|
|
<TELL "discover">
|
|
)
|
|
(T
|
|
<TELL "see">
|
|
)
|
|
>
|
|
<TELL
|
|
" a secret passage leading upward to both the north and south. To the west is
|
|
the back of a tapestry.|"
|
|
>
|
|
<RFALSE>
|
|
)
|
|
(<MC-CONTEXT? ,M-ENTER>
|
|
<SETG GL-PICTURE-NUM ,K-PIC-PASSAGE>
|
|
<COND
|
|
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-PICT>
|
|
<RT-UPDATE-PICT-WINDOW>
|
|
)
|
|
>
|
|
<RFALSE>
|
|
)
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<NOT <EVERYWHERE-VERB? <COND (,NOW-PRSI 2) (T 1)>>>
|
|
<COND
|
|
(<FSET? ,LG-BADGER-TAPESTRY ,FL-LOCKED>
|
|
<NP-CANT-SEE>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
>
|
|
|
|
<ROUTINE RT-EXIT-PASSAGE-1 ("OPT" (QUIET <>))
|
|
<COND
|
|
(<NOT .QUIET>
|
|
<TELL "[Which way, north or south?]|">
|
|
)
|
|
>
|
|
<RFALSE>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "RM-PASSAGE-2"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<ROOM RM-PASSAGE-2
|
|
(LOC ROOMS)
|
|
(DESC "dark passage")
|
|
(FLAGS FL-INDOORS FL-LIGHTED)
|
|
(SYNONYM PASSAGE)
|
|
(ADJECTIVE DARK)
|
|
(NORTH TO RM-BEHIND-THRONE)
|
|
(SOUTH TO RM-PASSAGE-1)
|
|
(UP TO RM-BEHIND-THRONE)
|
|
(DOWN TO RM-PASSAGE-1)
|
|
(GLOBAL LG-WALL)
|
|
(ACTION RT-RM-PASSAGE-2)
|
|
>
|
|
|
|
<ROUTINE RT-RM-PASSAGE-2 ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(<MC-CONTEXT? ,M-F-LOOK ,M-V-LOOK ,M-LOOK>
|
|
<TELL "You are in a dark passage that continues ">
|
|
<COND
|
|
(<EQUAL? ,OHERE ,RM-PASSAGE-1>
|
|
<TELL "up to the north and back down behind you to the south.|">
|
|
)
|
|
(T
|
|
<TELL "down to the south and back up behind you to the north.|">
|
|
)
|
|
>
|
|
<RFALSE>
|
|
)
|
|
(<MC-CONTEXT? ,M-ENTER>
|
|
<SETG GL-PICTURE-NUM ,K-PIC-PASSAGE>
|
|
<COND
|
|
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-PICT>
|
|
<RT-UPDATE-PICT-WINDOW>
|
|
)
|
|
>
|
|
<RFALSE>
|
|
)
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "RM-PASSAGE-3"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<ROOM RM-PASSAGE-3
|
|
(LOC ROOMS)
|
|
(DESC "dark passage")
|
|
(FLAGS FL-INDOORS FL-LIGHTED)
|
|
(SYNONYM PASSAGE)
|
|
(ADJECTIVE DARK)
|
|
(NORTH TO RM-PASSAGE-1)
|
|
(SOUTH TO RM-BEHIND-FIRE)
|
|
(UP TO RM-BEHIND-FIRE)
|
|
(DOWN TO RM-PASSAGE-1)
|
|
(GLOBAL LG-WALL)
|
|
(ACTION RT-RM-PASSAGE-3)
|
|
>
|
|
|
|
<ROUTINE RT-RM-PASSAGE-3 ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(<MC-CONTEXT? ,M-F-LOOK ,M-V-LOOK ,M-LOOK>
|
|
<TELL "You are in a dark passage that continues ">
|
|
<COND
|
|
(<EQUAL? ,OHERE ,RM-PASSAGE-1>
|
|
<TELL
|
|
"up to the south and back down behind you to the north.|"
|
|
>
|
|
)
|
|
(T
|
|
<TELL
|
|
"down to the north and back up behind you to the south.|"
|
|
>
|
|
)
|
|
>
|
|
<RFALSE>
|
|
)
|
|
(<MC-CONTEXT? ,M-ENTER>
|
|
<SETG GL-PICTURE-NUM ,K-PIC-PASSAGE>
|
|
<COND
|
|
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-PICT>
|
|
<RT-UPDATE-PICT-WINDOW>
|
|
)
|
|
>
|
|
<RFALSE>
|
|
)
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "RM-BEHIND-FIRE"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<ROOM RM-BEHIND-FIRE
|
|
(LOC ROOMS)
|
|
(DESC "end of passage")
|
|
(FLAGS FL-INDOORS FL-LIGHTED)
|
|
(SYNONYM PASSAGE)
|
|
(ADJECTIVE DARK)
|
|
(WEST PER RT-THRU-FIRE)
|
|
(OUT PER RT-THRU-FIRE)
|
|
(NORTH TO RM-PASSAGE-3)
|
|
(DOWN TO RM-PASSAGE-3)
|
|
(ADJACENT <TABLE (LENGTH BYTE PURE) RM-CAS-KITCHEN T>)
|
|
(GLOBAL LG-WALL RM-CAS-KITCHEN RM-PASSAGE-3)
|
|
(ACTION RT-RM-BEHIND-FIRE)
|
|
>
|
|
|
|
<ROUTINE RT-RM-BEHIND-FIRE ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(<MC-CONTEXT? ,M-F-LOOK ,M-V-LOOK ,M-LOOK>
|
|
<COND
|
|
(<MC-CONTEXT? ,M-LOOK>
|
|
<TELL
|
|
"You are in a small, cramped room that is solid on three sides."
|
|
>
|
|
)
|
|
(T
|
|
<COND
|
|
(<EQUAL? ,OHERE ,RM-CAS-KITCHEN>
|
|
<TELL "You" walk " back through the fire">
|
|
<COND
|
|
(<NOT <FSET? ,TH-CASTLE-FIRE ,FL-LIGHTED>>
|
|
<TELL "place">
|
|
)
|
|
>
|
|
<TELL " to the small room.">
|
|
)
|
|
(T
|
|
<TELL
|
|
"The passage ends in a small, cramped room that is solid on three sides."
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
<COND
|
|
(<FSET? ,TH-CASTLE-FIRE ,FL-LIGHTED>
|
|
<FSET ,TH-CASTLE-FIRE ,FL-SEEN>
|
|
<TELL
|
|
" The fourth side is a blazing wall of fire whose bright flames leap high
|
|
into the air.">
|
|
)
|
|
>
|
|
<TELL " A dark passage leads down to the north. The fire">
|
|
<COND
|
|
(<NOT <FSET? ,TH-CASTLE-FIRE ,FL-LIGHTED>>
|
|
<TELL "place">
|
|
)
|
|
>
|
|
<TELL " is to the west.|">
|
|
<RFALSE>
|
|
)
|
|
(<MC-CONTEXT? ,M-ENTER>
|
|
<SETG GL-PICTURE-NUM ,K-PIC-PASSAGE>
|
|
<COND
|
|
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-PICT>
|
|
<RT-UPDATE-PICT-WINDOW>
|
|
)
|
|
>
|
|
<MOVE ,TH-CASTLE-FIRE ,RM-BEHIND-FIRE>
|
|
<RFALSE>
|
|
)
|
|
(<MC-CONTEXT? ,M-BEG>
|
|
<COND
|
|
(<AND <NOT ,GL-PUPPY>
|
|
<IN? ,CH-PRISONER ,RM-BEHIND-FIRE>
|
|
>
|
|
<RT-SET-PUPPY ,CH-PRISONER>
|
|
)
|
|
>
|
|
)
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
>
|
|
>
|
|
|
|
<ROUTINE RT-THRU-FIRE ("OPT" (QUIET <>))
|
|
<COND
|
|
(.QUIET
|
|
<COND
|
|
(<MC-HERE? ,RM-CAS-KITCHEN>
|
|
<RETURN ,RM-BEHIND-FIRE>
|
|
)
|
|
(<MC-HERE? ,RM-BEHIND-FIRE>
|
|
<RETURN ,RM-CAS-KITCHEN>
|
|
)
|
|
>
|
|
)
|
|
(<OR <MC-FORM? ,K-FORM-SALAMANDER>
|
|
<NOT <FSET? ,TH-CASTLE-FIRE ,FL-LIGHTED>>
|
|
>
|
|
<COND
|
|
(<FSET? ,TH-CASTLE-FIRE ,FL-LIGHTED>
|
|
<RT-CLEAR-PUPPY>
|
|
)
|
|
>
|
|
<COND
|
|
(<MC-HERE? ,RM-CAS-KITCHEN>
|
|
<RETURN ,RM-BEHIND-FIRE>
|
|
)
|
|
(<MC-HERE? ,RM-BEHIND-FIRE>
|
|
<RETURN ,RM-CAS-KITCHEN>
|
|
)
|
|
>
|
|
)
|
|
(T
|
|
<TELL The ,WINNER " would surely perish in the flames.|">
|
|
; <COND
|
|
(<NOT <EQUAL? ,WINNER ,CH-PLAYER>>
|
|
<RT-AUTHOR-ON>
|
|
<TELL The+verb ,WINNER "are" "n't as stupid as you look.">
|
|
<RT-AUTHOR-OFF>
|
|
)
|
|
>
|
|
<RFALSE>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-CASTLE-FIRE"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-CASTLE-FIRE
|
|
(LOC LOCAL-GLOBALS)
|
|
(FLAGS FL-BURNABLE FL-CONTAINER FL-HAS-SDESC FL-LIGHTED FL-NO-DESC FL-OPEN FL-SEARCH)
|
|
(SYNONYM FIRE FLAMES FIREPLACE PLACE)
|
|
(ADJECTIVE FIRE)
|
|
(CAPACITY K-CAP-MAX)
|
|
(CONTFCN RT-TH-CASTLE-FIRE)
|
|
(ACTION RT-TH-CASTLE-FIRE)
|
|
>
|
|
|
|
; "TH-CASTLE-FIRE flags:"
|
|
; " FL-LOCKED - Things in fire are cooling off"
|
|
|
|
<ROUTINE RT-TH-CASTLE-FIRE ("OPT" (CONTEXT <>) (ART <>) (CAP? <>))
|
|
<COND
|
|
(<MC-CONTEXT? ,M-OBJDESC>
|
|
<COND
|
|
(.ART
|
|
<PRINT-ARTICLE ,TH-CASTLE-FIRE .ART .CAP?>
|
|
)
|
|
>
|
|
<COND
|
|
(<EQUAL? .ART <> ,K-ART-THE ,K-ART-A ,K-ART-ANY>
|
|
<COND
|
|
(.ART
|
|
<TELL " ">
|
|
)
|
|
>
|
|
<TELL "fire">
|
|
<COND
|
|
(<NOT <FSET? ,TH-CASTLE-FIRE ,FL-LIGHTED>>
|
|
<TELL "place">
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<MC-CONTEXT? ,M-CONT>
|
|
<COND
|
|
(<TOUCH-VERB?>
|
|
<COND
|
|
(<MC-FORM? ,K-FORM-SALAMANDER>
|
|
<TELL
|
|
The+verb ,WINNER "poke" " around in" the ,TH-CASTLE-FIRE " but find nothing
|
|
of interest." CR
|
|
>
|
|
)
|
|
(<FSET? ,TH-CASTLE-FIRE ,FL-LIGHTED>
|
|
<TELL ,K-HOT-MSG>
|
|
)
|
|
(<OR <AND ,NOW-PRSI <FSET? ,PRSI ,FL-AIR>>
|
|
<AND <NOT ,NOW-PRSI> <FSET? ,PRSO ,FL-AIR>>
|
|
>
|
|
<TELL ,K-HOT-MSG>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(,NOW-PRSI
|
|
<COND
|
|
(<VERB? EMPTY>
|
|
<COND
|
|
(<MC-PRSO? ,TH-BARREL ,TH-BARREL-WATER>
|
|
<COND
|
|
(<IN? ,TH-BARREL-WATER ,TH-BARREL>
|
|
<COND
|
|
(<MC-FORM? ,K-FORM-ARTHUR>
|
|
<RT-PUT-OUT-FIRE-MSG>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? PUT PUT-IN>
|
|
<COND
|
|
(<NOT <FSET? ,TH-CASTLE-FIRE ,FL-LIGHTED>>
|
|
<RFALSE>
|
|
)
|
|
(<OR <MC-PRSO? ,CH-PLAYER ,TH-HANDS ,TH-LEGS ,TH-HEAD ,TH-MOUTH>
|
|
<AND
|
|
<FSET? ,PRSI ,FL-BODY-PART>
|
|
<EQUAL? <GET-OWNER ,PRSI> ,CH-PLAYER>
|
|
>
|
|
>
|
|
<TELL ,K-HOT-MSG>
|
|
)
|
|
(<AND <MC-PRSO? ,TH-WHISKY-JUG>
|
|
<IN? ,TH-WHISKY ,TH-WHISKY-JUG>
|
|
>
|
|
<RT-PUT-WHISKY-IN-FIRE-MSG ,TH-CASTLE-FIRE>
|
|
)
|
|
(<FSET? ,PRSO ,FL-BURNABLE>
|
|
<REMOVE ,PRSO>
|
|
<TELL
|
|
"The flames leap higher, and soon" the ,PRSO " can no longer be seen." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? PUT-THRU>
|
|
<COND
|
|
(<MC-HERE? ,RM-BEHIND-FIRE>
|
|
<COND
|
|
(<IDROP>
|
|
<RT-THROW-INTO-ROOM-MSG ,PRSO ,RM-CAS-KITCHEN>
|
|
)
|
|
>
|
|
)
|
|
(<MC-HERE? ,RM-CAS-KITCHEN>
|
|
<COND
|
|
(<IDROP>
|
|
<RT-THROW-INTO-ROOM-MSG ,PRSO ,RM-BEHIND-FIRE>
|
|
)
|
|
>
|
|
)
|
|
(T
|
|
<NOT-HERE ,PRSI> ; "not close enough"
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? ENTER>
|
|
<COND
|
|
(<MC-HERE? ,RM-BEHIND-FIRE>
|
|
<RT-DO-WALK ,P?WEST>
|
|
)
|
|
(<MC-HERE? ,RM-CAS-KITCHEN>
|
|
<RT-DO-WALK ,P?EAST>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? CLIMB-ON>
|
|
<COND
|
|
(<MC-FORM? ,K-FORM-SALAMANDER>
|
|
<TELL
|
|
"You step" in ,TH-CASTLE-FIRE "to" the ,TH-CASTLE-FIRE " and look around
|
|
for a few moments. Finding nothing of interest, you step" out ,TH-CASTLE-FIRE
|
|
" again." CR
|
|
>
|
|
)
|
|
(T
|
|
<TELL ,K-HOT-MSG>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? EXTINGUISH>
|
|
<COND
|
|
(<MC-PRSI? ,TH-BARREL ,TH-BARREL-WATER>
|
|
<COND
|
|
(<IN? ,TH-BARREL-WATER ,TH-BARREL>
|
|
<COND
|
|
(<MC-FORM? ,K-FORM-ARTHUR>
|
|
<RT-PUT-OUT-FIRE-MSG>
|
|
)
|
|
(T
|
|
<RT-ANIMAL-CANT-MSG "put out">
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<OR <VERB? EXAMINE>
|
|
; <AND
|
|
<VERB? LOOK-IN LOOK-ON>
|
|
<NOT <FIRST? ,TH-CASTLE-FIRE>>
|
|
>
|
|
>
|
|
<FSET ,TH-CASTLE-FIRE ,FL-SEEN>
|
|
<COND
|
|
(<FSET? ,TH-CASTLE-FIRE ,FL-LIGHTED>
|
|
<TELL "It's a roaring fire that gives off intense heat." CR>
|
|
)
|
|
(T
|
|
<TELL "The fire has gone out." CR>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? LOOK-THRU>
|
|
<TELL The ,WINNER " can't see much from here." CR>
|
|
)
|
|
(<VERB? LISTEN>
|
|
<COND
|
|
(<FSET? ,TH-CASTLE-FIRE ,FL-LIGHTED>
|
|
<TELL "The fire roars like a furnace." CR>
|
|
)
|
|
>
|
|
)
|
|
(<TOUCH-VERB?>
|
|
<COND
|
|
(<FSET? ,TH-CASTLE-FIRE ,FL-LIGHTED>
|
|
<COND
|
|
(<AND <NOT <MC-FORM? ,K-FORM-SALAMANDER>>
|
|
<OR
|
|
<MC-PRSI? <> ,ROOMS ,CH-PLAYER ,TH-HANDS ,TH-LEGS ,TH-HEAD ,TH-MOUTH>
|
|
<AND
|
|
<FSET? ,PRSI ,FL-BODY-PART>
|
|
<EQUAL? <GET-OWNER ,PRSI> ,CH-PLAYER>
|
|
>
|
|
>
|
|
>
|
|
<TELL ,K-HOT-MSG>
|
|
)
|
|
(T
|
|
<TELL
|
|
The+verb ,WINNER "poke" " around in" the ,TH-CASTLE-FIRE " but find nothing
|
|
of interest." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
>
|
|
|
|
<ROUTINE RT-PUT-OUT-FIRE-MSG ("AUX" OBJ)
|
|
<RT-QUEUE ,RT-I-COOL-FIRE <+ ,GL-MOVES 60>>
|
|
<FCLEAR ,TH-CASTLE-FIRE ,FL-LIGHTED>
|
|
; <FSET ,TH-CASTLE-FIRE ,FL-LOCKED>
|
|
; <FSET ,TH-CASTLE-FIRE ,FL-INVISIBLE>
|
|
<REMOVE ,TH-BARREL-WATER>
|
|
<RT-MOVE-ALL ,TH-BARREL ,HERE>
|
|
<SET OBJ <FIRST? ,TH-CASTLE-FIRE>>
|
|
<REPEAT ()
|
|
<COND
|
|
(<NOT .OBJ>
|
|
<RETURN>
|
|
)
|
|
(T
|
|
<FSET .OBJ ,FL-AIR>
|
|
<SET OBJ <NEXT? .OBJ>>
|
|
)
|
|
>
|
|
>
|
|
<TELL
|
|
"You strain against the barrel. It teeters for a moment, but then finally
|
|
crashes over on its side, sending a flood of water directly onto the blaze.
|
|
The roar of the fire disappears in a loud hiss, and a huge cloud of steam
|
|
pours out of the fireplace. When the steam clears, you see that the fire has
|
|
gone out."
|
|
>
|
|
<SETG GL-PICTURE-NUM ,K-PIC-CAS-FIREPLACE>
|
|
<COND
|
|
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-PICT>
|
|
<RT-UPDATE-PICT-WINDOW>
|
|
)
|
|
>
|
|
<COND
|
|
(<IN? ,CH-PRISONER ,RM-BEHIND-FIRE>
|
|
<RT-SET-PUPPY ,CH-PRISONER>
|
|
<MOVE ,CH-PRISONER ,HERE>
|
|
<THIS-IS-IT ,CH-PRISONER>
|
|
<TELL " The prisoner steps through to join you in the kitchen.">
|
|
)
|
|
>
|
|
<CRLF>
|
|
<RT-SCORE-MSG 0 2 0 1>
|
|
>
|
|
|
|
<ROUTINE RT-I-COOL-FIRE ("AUX" OBJ)
|
|
; <FCLEAR ,TH-CASTLE-FIRE ,FL-LOCKED>
|
|
<SET OBJ <FIRST? ,TH-CASTLE-FIRE>>
|
|
<REPEAT ()
|
|
<COND
|
|
(<NOT .OBJ>
|
|
<RETURN>
|
|
)
|
|
(T
|
|
<FCLEAR .OBJ ,FL-AIR>
|
|
<SET OBJ <NEXT? .OBJ>>
|
|
)
|
|
>
|
|
>
|
|
<RFALSE>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "RM-CAS-KITCHEN"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<ROOM RM-CAS-KITCHEN
|
|
(LOC ROOMS)
|
|
(DESC "castle kitchen")
|
|
(FLAGS FL-INDOORS FL-LIGHTED)
|
|
(SYNONYM KITCHEN)
|
|
(ADJECTIVE CASTLE)
|
|
(EAST PER RT-THRU-FIRE)
|
|
(IN PER RT-THRU-FIRE)
|
|
(NW TO RM-PARADE-AREA IF LG-KITCHEN-DOOR IS OPEN)
|
|
(OUT TO RM-PARADE-AREA IF LG-KITCHEN-DOOR IS OPEN)
|
|
(ADJACENT <TABLE (LENGTH BYTE PURE) RM-BEHIND-FIRE T>)
|
|
(GLOBAL LG-KITCHEN-DOOR LG-WALL)
|
|
(ACTION RT-RM-CAS-KITCHEN)
|
|
>
|
|
|
|
<ROUTINE RT-RM-CAS-KITCHEN ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(<MC-CONTEXT? ,M-F-LOOK ,M-V-LOOK ,M-LOOK>
|
|
<TELL "You">
|
|
<COND
|
|
(<MC-CONTEXT? ,M-LOOK>
|
|
<COND
|
|
(<IN? ,CH-PLAYER ,TH-BARREL>
|
|
<TELL " are in" a ,TH-BARREL ", in">
|
|
)
|
|
(T
|
|
<TELL " are" standing " in">
|
|
)
|
|
>
|
|
)
|
|
(T
|
|
<COND
|
|
(<AND <EQUAL? ,OHERE ,RM-BEHIND-FIRE>
|
|
<FSET? ,TH-CASTLE-FIRE ,FL-LIGHTED>
|
|
>
|
|
<TELL walk " through the flames unharmed and are now in">
|
|
)
|
|
(T
|
|
<TELL " enter">
|
|
)
|
|
>
|
|
)
|
|
>
|
|
<FSET ,LG-KITCHEN-DOOR ,FL-SEEN>
|
|
<TELL
|
|
" the castle's kitchen. It is a huge stone room with a cavernous fireplace
|
|
along the east wall. There is a door in the northwest corner of the room."
|
|
>
|
|
<COND
|
|
(<NOT <IN? ,CH-PLAYER ,TH-BARREL>>
|
|
<FSET ,TH-BARREL ,FL-SEEN>
|
|
<TELL
|
|
" On the floor next to a nearby table you see a barrel."
|
|
>
|
|
)
|
|
>
|
|
<CRLF>
|
|
<RFALSE>
|
|
)
|
|
(<MC-CONTEXT? ,M-ENTER>
|
|
<COND
|
|
(<FSET? ,TH-CASTLE-FIRE ,FL-LIGHTED>
|
|
<SETG GL-PICTURE-NUM ,K-PIC-CAS-KITCHEN>
|
|
)
|
|
(T
|
|
<SETG GL-PICTURE-NUM ,K-PIC-CAS-FIREPLACE>
|
|
)
|
|
>
|
|
<COND
|
|
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-PICT>
|
|
<RT-UPDATE-PICT-WINDOW>
|
|
)
|
|
>
|
|
<MOVE ,TH-CASTLE-FIRE ,RM-CAS-KITCHEN>
|
|
<RFALSE>
|
|
)
|
|
(<MC-CONTEXT? ,M-ENTERED>
|
|
<COND
|
|
(<NOT <FSET? ,RM-CAS-KITCHEN ,FL-BROKEN>>
|
|
<COND
|
|
(<EQUAL? ,OHERE ,RM-BEHIND-FIRE>
|
|
<COND
|
|
(<FSET? ,TH-CASTLE-FIRE ,FL-LIGHTED>
|
|
<FSET ,RM-CAS-KITCHEN ,FL-BROKEN>
|
|
<RT-SCORE-MSG 0 3 3 1>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<MC-CONTEXT? ,M-EXIT>
|
|
<COND
|
|
(<AND <EQUAL? ,P-WALK-DIR ,P?NW ,P?OUT>
|
|
<EQUAL? ,GL-PUPPY ,CH-PRISONER>
|
|
<NOT <IN? ,TH-HELMET ,CH-PRISONER>>
|
|
; <FSET? ,LG-KITCHEN-DOOR ,FL-OPEN>
|
|
>
|
|
<TELL
|
|
"Before you step through the door, the smith taps you on the shoulder and
|
|
says, \"I can't go out there. Someone might recognize me.\"" CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(,NOW-PRSI
|
|
<COND
|
|
(<OR <VERB? THROW>
|
|
<AND
|
|
<VERB? PUT PUT-IN>
|
|
<VERB-WORD? ,W?THROW ,W?TOSS ,W?HURL ,W?CHUCK ,W?FLING ,W?PITCH ,W?HEAVE>
|
|
>
|
|
>
|
|
<COND
|
|
(<MC-HERE? ,RM-BEHIND-FIRE>
|
|
<COND
|
|
(<IDROP>
|
|
<RT-THROW-INTO-ROOM-MSG ,PRSO ,RM-CAS-KITCHEN>
|
|
)
|
|
(T
|
|
<RTRUE>
|
|
)
|
|
>
|
|
)
|
|
(T
|
|
<NOT-HERE ,PRSI> ; "not close enough"
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? EXAMINE>
|
|
<COND
|
|
(<NOT <MC-HERE? ,RM-CAS-KITCHEN>>
|
|
<FSET ,RM-CAS-KITCHEN ,FL-SEEN>
|
|
<COND
|
|
(<MC-HERE? ,RM-BEHIND-FIRE>
|
|
<TELL The ,WINNER " can't see much from here." CR>
|
|
)
|
|
(T
|
|
<TELL "It's a small building to the south of the great hall." CR>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-CASTLE-TABLE"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-CASTLE-TABLE
|
|
(LOC RM-CAS-KITCHEN)
|
|
(DESC "kitchen table")
|
|
(FLAGS FL-NO-LIST FL-SEARCH FL-SURFACE)
|
|
(SYNONYM TABLE)
|
|
(ADJECTIVE KITCHEN WOODEN)
|
|
(CAPACITY 50)
|
|
(ACTION RT-TH-CASTLE-TABLE)
|
|
>
|
|
|
|
<ROUTINE RT-TH-CASTLE-TABLE ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<VERB? CLIMB-UP CLIMB-ON CLIMB-OVER>
|
|
<RT-AUTHOR-ON>
|
|
<TELL "It's not polite to " vw " on tables.">
|
|
<RT-AUTHOR-OFF>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-BARREL"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-BARREL
|
|
(LOC RM-CAS-KITCHEN)
|
|
(DESC "barrel")
|
|
(FLAGS FL-CONTAINER FL-NO-LIST FL-OPEN FL-SEARCH FL-TRY-TAKE)
|
|
(SYNONYM BARREL)
|
|
(ADJECTIVE BIG WOODEN WATER)
|
|
(CAPACITY 150)
|
|
(ACTION RT-TH-BARREL)
|
|
>
|
|
|
|
<ROUTINE RT-TH-BARREL ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(<MC-CONTEXT? ,M-BEG>
|
|
<COND
|
|
(<AND <VERB? EXIT>
|
|
<MC-FORM? ,K-FORM-EEL>
|
|
<MC-PRSO? ,TH-BARREL <> ,ROOMS>
|
|
>
|
|
<TELL "Eels can't live out of water." CR>
|
|
)
|
|
(<OR <AND
|
|
<VERB? EMPTY MOVE TIP>
|
|
<MC-PRSO? ,TH-BARREL>
|
|
>
|
|
<AND
|
|
<TOUCH-VERB?>
|
|
<NOT <RT-META-IN? ,PRSO ,TH-CASTLE-TABLE>>
|
|
<NOT <RT-META-IN? ,PRSO ,TH-BARREL>>
|
|
<NOT <RT-META-IN? ,PRSO ,CH-PLAYER>>
|
|
>
|
|
>
|
|
<TELL
|
|
The ,WINNER " would have to get out of" the ,TH-BARREL " first." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(,NOW-PRSI
|
|
<RFALSE>
|
|
)
|
|
(<VERB? DRINK-FROM>
|
|
<COND
|
|
(<IN? ,TH-BARREL-WATER ,TH-BARREL>
|
|
<PERFORM ,V?DRINK ,TH-BARREL-WATER>
|
|
<RTRUE>
|
|
)
|
|
(T
|
|
<TELL "There is nothing to drink in" the ,TH-BARREL "." CR>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? TAKE RAISE>
|
|
<TELL The+verb ,TH-BARREL "are" " too heavy to lift." CR>
|
|
)
|
|
(<VERB? EMPTY>
|
|
<COND
|
|
(<NOT <MC-FORM? ,K-FORM-ARTHUR>>
|
|
<RT-ANIMAL-CANT-MSG>
|
|
)
|
|
(<IN? ,TH-BARREL-WATER ,TH-BARREL>
|
|
<COND
|
|
(<MC-PRSI? <> ,ROOMS ,TH-GROUND ,TH-CASTLE-FIRE>
|
|
<RT-PUT-OUT-FIRE-MSG>
|
|
)
|
|
(T
|
|
<RT-WASTE-OF-TIME-MSG>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? MOVE TIP>
|
|
<COND
|
|
(<NOT <MC-FORM? ,K-FORM-ARTHUR>>
|
|
<RT-ANIMAL-CANT-MSG "tip over">
|
|
)
|
|
(<IN? ,TH-BARREL-WATER ,TH-BARREL>
|
|
<RT-PUT-OUT-FIRE-MSG>
|
|
)
|
|
(T
|
|
<RT-NO-POINT-MSG "Moving">
|
|
)
|
|
>
|
|
)
|
|
(<VERB? ENTER>
|
|
<COND
|
|
(<AND <IN? ,TH-BARREL-WATER ,TH-BARREL>
|
|
<NOT <MC-FORM? ,K-FORM-ARTHUR>>
|
|
>
|
|
<COND
|
|
(<MC-FORM? ,K-FORM-OWL ,K-FORM-BADGER ,K-FORM-SALAMANDER>
|
|
<TELL ,K-WOULD-DROWN-MSG>
|
|
)
|
|
(<MC-FORM? ,K-FORM-TURTLE>
|
|
<RT-ANIMAL-CANT-MSG "climb into">
|
|
)
|
|
>
|
|
<RTRUE>
|
|
)
|
|
>
|
|
<MOVE ,WINNER ,TH-BARREL>
|
|
<TELL The+verb ,WINNER "get" " into" the ,TH-BARREL "." CR>
|
|
<SETG GL-UPDATE-WINDOW <BOR ,GL-UPDATE-WINDOW ,K-UPD-DESC>>
|
|
<COND
|
|
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-DESC>
|
|
<RT-UPDATE-DESC-WINDOW>
|
|
)
|
|
>
|
|
<RTRUE>
|
|
)
|
|
(<VERB? EXIT>
|
|
<MOVE ,WINNER ,HERE>
|
|
<TELL The+verb ,WINNER "get" " out of" the ,TH-BARREL "." CR>
|
|
<SETG GL-UPDATE-WINDOW <BOR ,GL-UPDATE-WINDOW ,K-UPD-DESC>>
|
|
<COND
|
|
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-DESC>
|
|
<RT-UPDATE-DESC-WINDOW>
|
|
)
|
|
>
|
|
<RTRUE>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-BARREL-WATER"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-BARREL-WATER
|
|
(LOC TH-BARREL)
|
|
(DESC "water")
|
|
(FLAGS FL-COLLECTIVE FL-PLURAL FL-WATER)
|
|
(SYNONYM WATER)
|
|
(SIZE 30)
|
|
(ACTION RT-TH-BARREL-WATER)
|
|
>
|
|
|
|
<ROUTINE RT-TH-BARREL-WATER ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<VERB? DRINK EAT>
|
|
<TELL The+verb ,WINNER "take" " a small, refreshing sip of water." CR>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-PUMICE"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-PUMICE
|
|
(LOC TH-CASTLE-TABLE)
|
|
(DESC "pumice stone")
|
|
(FLAGS FL-TAKEABLE)
|
|
(SYNONYM STONE PUMICE)
|
|
(ADJECTIVE PUMICE)
|
|
(SCORE <LSH 1 ,K-QUEST-SHIFT>)
|
|
(SIZE 5)
|
|
(GENERIC RT-GN-STONE)
|
|
(ACTION RT-TH-PUMICE)
|
|
>
|
|
|
|
<ROUTINE RT-TH-PUMICE ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<VERB? EXAMINE>
|
|
<FSET ,TH-PUMICE ,FL-SEEN>
|
|
<TELL "It is a small, rough stone." CR>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "LG-KITCHEN-DOOR"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT LG-KITCHEN-DOOR
|
|
(LOC LOCAL-GLOBALS)
|
|
(DESC "kitchen door")
|
|
(FLAGS FL-DOOR FL-OPENABLE FL-LOCKED FL-NO-DESC)
|
|
(SYNONYM DOOR BAR)
|
|
(ADJECTIVE KITCHEN)
|
|
(ACTION RT-LG-KITCHEN-DOOR)
|
|
>
|
|
|
|
<ROUTINE RT-LG-KITCHEN-DOOR ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(<NOUN-USED? ,LG-KITCHEN-DOOR ,W?BAR>
|
|
<COND
|
|
(<MC-HERE? ,RM-PARADE-AREA>
|
|
<NP-CANT-SEE>
|
|
)
|
|
(<VERB? EXAMINE>
|
|
<TELL "It's a stout piece of wood that has been ">
|
|
<COND
|
|
(<FSET? ,LG-KITCHEN-DOOR ,FL-LOCKED>
|
|
<TELL "lowered">
|
|
)
|
|
(T
|
|
<TELL "raised">
|
|
)
|
|
>
|
|
<TELL " to ">
|
|
<COND
|
|
(<FSET? ,LG-KITCHEN-DOOR ,FL-LOCKED>
|
|
<TELL "bar">
|
|
)
|
|
(T
|
|
<TELL "unbar">
|
|
)
|
|
>
|
|
<TELL " the door." CR>
|
|
)
|
|
(<AND <TOUCH-VERB?>
|
|
<NOT <MC-FORM? ,K-FORM-ARTHUR>>
|
|
>
|
|
<TELL The ,WINNER " can't reach the bar." CR>
|
|
)
|
|
(<VERB? TAKE>
|
|
<TELL
|
|
The+verb ,WINNER "tug" " at the bar, but it is firmly attached to the
|
|
wall." CR
|
|
>
|
|
)
|
|
(<VERB? RAISE OPEN UNLOCK>
|
|
<COND
|
|
(<NOT <FSET? ,LG-KITCHEN-DOOR ,FL-LOCKED>>
|
|
<SETG CLOCK-WAIT T>
|
|
<TELL "The bar is already up." CR>
|
|
)
|
|
(T
|
|
<FCLEAR ,LG-KITCHEN-DOOR ,FL-LOCKED>
|
|
<TELL "You lift the bar." CR>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? LOWER CLOSE LOCK>
|
|
<COND
|
|
(<FSET? ,LG-KITCHEN-DOOR ,FL-LOCKED>
|
|
<SETG CLOCK-WAIT T>
|
|
<TELL "The bar is already down." CR>
|
|
)
|
|
(T
|
|
<FSET ,LG-KITCHEN-DOOR ,FL-LOCKED>
|
|
<TELL "You lower the bar." CR>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? EXAMINE>
|
|
<FSET ,LG-KITCHEN-DOOR ,FL-SEEN>
|
|
<TELL "It's a massive wooden door">
|
|
<COND
|
|
(<MC-HERE? ,RM-CAS-KITCHEN>
|
|
<TELL " with a stout bar to lock it">
|
|
)
|
|
>
|
|
<TELL "." CR>
|
|
)
|
|
(<VERB? OPEN>
|
|
<COND
|
|
(<FSET? ,LG-KITCHEN-DOOR ,FL-OPEN>
|
|
<TELL The ,LG-KITCHEN-DOOR " is already open." CR>
|
|
)
|
|
(<NOT <MC-FORM? ,K-FORM-ARTHUR>>
|
|
<RT-ANIMAL-CANT-MSG>
|
|
)
|
|
(<AND <FSET? ,LG-KITCHEN-DOOR ,FL-LOCKED>
|
|
<MC-HERE? ,RM-PARADE-AREA>
|
|
>
|
|
<TELL
|
|
"You rattle" the ,LG-KITCHEN-DOOR " for a few moments, but it refuses
|
|
to open. It must be barred from the other side." CR
|
|
>
|
|
)
|
|
(T
|
|
<FSET ,LG-KITCHEN-DOOR ,FL-OPEN>
|
|
<RT-CHECK-ADJ ,LG-KITCHEN-DOOR>
|
|
<TELL "You ">
|
|
<COND
|
|
(<FSET? ,LG-KITCHEN-DOOR ,FL-LOCKED>
|
|
<FCLEAR ,LG-KITCHEN-DOOR ,FL-LOCKED>
|
|
<TELL "lift the bar and ">
|
|
)
|
|
>
|
|
<TELL "open" the ,LG-KITCHEN-DOOR "." CR>
|
|
<COND
|
|
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-MAP>
|
|
<RT-UPDATE-MAP-WINDOW>
|
|
)
|
|
>
|
|
<RTRUE>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? CLOSE>
|
|
<COND
|
|
(<NOT <FSET? ,LG-KITCHEN-DOOR ,FL-OPEN>>
|
|
<TELL The ,LG-KITCHEN-DOOR " is already closed." CR>
|
|
)
|
|
(<NOT <MC-FORM? ,K-FORM-ARTHUR>>
|
|
<RT-ANIMAL-CANT-MSG>
|
|
)
|
|
(T
|
|
<FCLEAR ,LG-KITCHEN-DOOR ,FL-OPEN>
|
|
<RT-CHECK-ADJ ,LG-KITCHEN-DOOR>
|
|
<TELL "You close" the ,LG-KITCHEN-DOOR "." CR>
|
|
<COND
|
|
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-MAP>
|
|
<RT-UPDATE-MAP-WINDOW>
|
|
)
|
|
>
|
|
<RTRUE>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? LOCK>
|
|
<COND
|
|
(<NOT <MC-VERB-WORD? ,W?BAR>>
|
|
<RT-NO-KEYHOLE-MSG ,LG-KITCHEN-DOOR>
|
|
)
|
|
(<NOT <MC-FORM? ,K-FORM-ARTHUR>>
|
|
<RT-ANIMAL-CANT-MSG>
|
|
)
|
|
(<MC-HERE? ,RM-PARADE-AREA>
|
|
<TELL "There is no bar on this side." CR>
|
|
)
|
|
(<FSET? ,LG-KITCHEN-DOOR ,FL-LOCKED>
|
|
<TELL The ,LG-KITCHEN-DOOR " is already barred." CR>
|
|
)
|
|
(<AND <EQUAL? ,P-PRSA-WORD ,W?BAR>
|
|
<NOT <MC-PRSI? ,ROOMS>>
|
|
>
|
|
<TELL
|
|
The ,WINNER " can't bar" the ,LG-KITCHEN-DOOR " with" the ,PRSI "." CR
|
|
>
|
|
)
|
|
(T
|
|
<TELL "You ">
|
|
<COND
|
|
(<FSET? ,LG-KITCHEN-DOOR ,FL-OPEN>
|
|
<FCLEAR ,LG-KITCHEN-DOOR ,FL-OPEN>
|
|
<RT-CHECK-ADJ ,LG-KITCHEN-DOOR>
|
|
<TELL "close and ">
|
|
)
|
|
>
|
|
<FSET ,LG-KITCHEN-DOOR ,FL-LOCKED>
|
|
<TELL "bar" the ,LG-KITCHEN-DOOR "." CR>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? UNLOCK>
|
|
<COND
|
|
(<NOT <MC-VERB-WORD? ,W?UNBAR>>
|
|
<RT-NO-KEYHOLE-MSG ,LG-KITCHEN-DOOR>
|
|
)
|
|
(<NOT <FSET? ,LG-KITCHEN-DOOR ,FL-LOCKED>>
|
|
<TELL The ,LG-KITCHEN-DOOR " is already un-barred." CR>
|
|
)
|
|
(<NOT <MC-FORM? ,K-FORM-ARTHUR>>
|
|
<RT-ANIMAL-CANT-MSG>
|
|
)
|
|
(T
|
|
<FCLEAR ,LG-KITCHEN-DOOR ,FL-LOCKED>
|
|
<TELL "You lift the bar." CR>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
>
|
|
|
|
<ROUTINE RT-NO-KEYHOLE-MSG ("OPT" (DOOR <>))
|
|
<COND
|
|
(<NOT .DOOR>
|
|
<SET DOOR ,PRSO>
|
|
)
|
|
>
|
|
<TELL The+verb .DOOR "have" " no keyhole. You will have to ">
|
|
<COND
|
|
(<VERB? LOCK>
|
|
<TELL "lower">
|
|
)
|
|
(T
|
|
<TELL "raise">
|
|
)
|
|
>
|
|
<TELL " the bar." CR>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "RM-SMALL-CHAMBER"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<ROOM RM-SMALL-CHAMBER
|
|
(LOC ROOMS)
|
|
(DESC "small chamber")
|
|
(FLAGS FL-INDOORS FL-LIGHTED)
|
|
(SYNONYM CHAMBER)
|
|
(ADJECTIVE SMALL)
|
|
(EAST PER RT-EXIT-CHAMBER)
|
|
(IN PER RT-EXIT-CHAMBER)
|
|
(WEST TO RM-END-OF-HALL)
|
|
(OUT TO RM-END-OF-HALL)
|
|
(GLOBAL LG-BADGER-TAPESTRY LG-WALL RM-PASSAGE-1 RM-END-OF-HALL)
|
|
(ACTION RT-RM-SMALL-CHAMBER)
|
|
(THINGS
|
|
<> (CHAIR CHAIRS) RT-PS-CHAIRS
|
|
)
|
|
>
|
|
|
|
<ROUTINE RT-RM-SMALL-CHAMBER ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(<MC-CONTEXT? ,M-F-LOOK ,M-V-LOOK ,M-LOOK>
|
|
<FSET ,LG-BADGER-TAPESTRY ,FL-SEEN>
|
|
<TELL
|
|
"You are in" a ,RM-SMALL-CHAMBER " that looks oddly out of place in this
|
|
underground prison. Its rich furnishings include a fine stonework floor,
|
|
comfortable chairs, and a beautifully woven tapestry on the wall. It looks
|
|
like a king's secret consultation chamber.|"
|
|
>
|
|
<RFALSE>
|
|
)
|
|
(<MC-CONTEXT? ,M-ENTER>
|
|
<SETG GL-PICTURE-NUM ,K-PIC-SMALL-CHAMBER>
|
|
<COND
|
|
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-PICT>
|
|
<RT-UPDATE-PICT-WINDOW>
|
|
)
|
|
>
|
|
<RFALSE>
|
|
)
|
|
(<MC-CONTEXT? ,M-BEG>
|
|
<COND
|
|
(<VERB? YELL>
|
|
<COND
|
|
(<MC-FORM? ,K-FORM-ARTHUR>
|
|
<RT-CALL-GUARD>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
>
|
|
>
|
|
|
|
<ROUTINE RT-EXIT-CHAMBER ("OPT" (QUIET <>))
|
|
<COND
|
|
(.QUIET
|
|
<COND
|
|
(<NOT <FSET? ,LG-BADGER-TAPESTRY ,FL-LOCKED>>
|
|
<RETURN ,RM-PASSAGE-1>
|
|
)
|
|
>
|
|
)
|
|
(<FSET? ,LG-BADGER-TAPESTRY ,FL-LOCKED>
|
|
<RT-YOU-CANT-MSG "go">
|
|
<RFALSE>
|
|
)
|
|
(T
|
|
<RETURN ,RM-PASSAGE-1>
|
|
)
|
|
>
|
|
>
|
|
|
|
<ROUTINE RT-PS-CHAIRS ("OPT" (CONTEXT <>) (ART <>) (CAP? <>))
|
|
<COND
|
|
(<MC-CONTEXT? ,M-OBJDESC>
|
|
<FSET ,PSEUDO-OBJECT ,FL-PLURAL>
|
|
<FCLEAR ,PSEUDO-OBJECT ,FL-VOWEL>
|
|
<COND
|
|
(.ART
|
|
<PRINT-ARTICLE ,PSEUDO-OBJECT .ART .CAP?>
|
|
)
|
|
>
|
|
<COND
|
|
(<EQUAL? .ART <> ,K-ART-THE ,K-ART-A ,K-ART-ANY>
|
|
<COND
|
|
(.ART
|
|
<TELL " ">
|
|
)
|
|
>
|
|
<TELL "chairs">
|
|
)
|
|
>
|
|
)
|
|
(<VERB? EXAMINE LOOK-ON>
|
|
<THIS-IS-IT ,PSEUDO-OBJECT>
|
|
<TELL "The chairs look soft and cozy." CR>
|
|
)
|
|
(<VERB? SIT ENTER>
|
|
<TELL
|
|
"You settle into one of the chairs for a few moments, and then leap up again,
|
|
nervous that someone might come in." CR
|
|
>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "LG-BADGER-TAPESTRY"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT LG-BADGER-TAPESTRY
|
|
(LOC LOCAL-GLOBALS)
|
|
(DESC "tapestry")
|
|
(FLAGS FL-LOCKED)
|
|
(SYNONYM TAPESTRY CLOTH)
|
|
(ADJECTIVE HANGING BIG UGLY)
|
|
(ACTION RT-LG-BADGER-TAPESTRY)
|
|
>
|
|
|
|
; "LG-BADGER-TAPESTRY flags:"
|
|
; " FL-LOCKED - Player hasn't seen passage behind tapestry"
|
|
|
|
<ROUTINE RT-LG-BADGER-TAPESTRY ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(<VERB? EXAMINE>
|
|
<FSET ,LG-BADGER-TAPESTRY ,FL-SEEN>
|
|
<COND
|
|
(<MC-HERE? ,RM-PASSAGE-1>
|
|
<TELL "It's hard to tell from the back, but it looks like">
|
|
)
|
|
(T
|
|
<TELL The ,LG-BADGER-TAPESTRY " is">
|
|
)
|
|
>
|
|
<TELL
|
|
" a hunting scene of men in armour mercilessly hunting down badgers." CR
|
|
>
|
|
)
|
|
(<VERB? MOVE LOOK-BEHIND>
|
|
<FCLEAR ,LG-BADGER-TAPESTRY ,FL-LOCKED>
|
|
<TELL "Behind the tapestry is">
|
|
<COND
|
|
(<MC-HERE? ,RM-SMALL-CHAMBER>
|
|
<TELL a ,RM-PASSAGE-1>
|
|
)
|
|
(T
|
|
<TELL a ,RM-SMALL-CHAMBER>
|
|
)
|
|
>
|
|
<TELL "." CR>
|
|
<COND
|
|
(<MC-HERE? ,RM-SMALL-CHAMBER>
|
|
<COND
|
|
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-MAP>
|
|
<RT-UPDATE-MAP-WINDOW>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
<RTRUE>
|
|
)
|
|
(<VERB? HIDE-BEHIND>
|
|
<COND
|
|
(<FSET? ,LG-BADGER-TAPESTRY ,FL-LOCKED>
|
|
<FCLEAR ,LG-BADGER-TAPESTRY ,FL-LOCKED>
|
|
<TELL
|
|
"You pull back the tapestry and discover a hidden passage! Cautiously, you
|
|
feel your way into the darkness.||"
|
|
>
|
|
)
|
|
>
|
|
<COND
|
|
(<MC-HERE? ,RM-SMALL-CHAMBER>
|
|
<RT-DO-WALK ,P?EAST>
|
|
)
|
|
(T
|
|
<RT-DO-WALK ,P?WEST>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "RM-END-OF-HALL"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<ROOM RM-END-OF-HALL
|
|
(LOC ROOMS)
|
|
(DESC "end of hall")
|
|
(FLAGS FL-INDOORS FL-LIGHTED)
|
|
(SYNONYM HALL)
|
|
(ADJECTIVE END)
|
|
(EAST TO RM-SMALL-CHAMBER)
|
|
(WEST TO RM-HALL)
|
|
(IN TO RM-SMALL-CHAMBER)
|
|
(GLOBAL LG-WALL RM-SMALL-CHAMBER)
|
|
(ACTION RT-RM-END-OF-HALL)
|
|
>
|
|
|
|
<ROUTINE RT-RM-END-OF-HALL ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(<MC-CONTEXT? ,M-F-LOOK ,M-V-LOOK ,M-LOOK>
|
|
<FSET ,RM-SMALL-CHAMBER ,FL-SEEN>
|
|
<TELL
|
|
"You are at the end of an underground corridor that runs east and west. To
|
|
the east is" a ,RM-SMALL-CHAMBER "." CR
|
|
>
|
|
<RFALSE>
|
|
)
|
|
(<MC-CONTEXT? ,M-ENTER>
|
|
<SETG GL-PICTURE-NUM ,K-PIC-HALL>
|
|
<COND
|
|
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-PICT>
|
|
<RT-UPDATE-PICT-WINDOW>
|
|
)
|
|
>
|
|
<RFALSE>
|
|
)
|
|
(<MC-CONTEXT? ,M-BEG>
|
|
<COND
|
|
(<VERB? YELL>
|
|
<COND
|
|
(<MC-FORM? ,K-FORM-ARTHUR>
|
|
<RT-CALL-GUARD>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "RM-HALL"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<ROOM RM-HALL
|
|
(LOC ROOMS)
|
|
(DESC "hall")
|
|
(FLAGS FL-INDOORS FL-LIGHTED)
|
|
(SYNONYM HALL)
|
|
(EAST TO RM-END-OF-HALL)
|
|
(WEST TO RM-BOTTOM-OF-STAIRS)
|
|
(SOUTH TO RM-CELL IF LG-CELL-DOOR IS OPEN)
|
|
(IN TO RM-CELL IF LG-CELL-DOOR IS OPEN)
|
|
(ADJACENT <TABLE (LENGTH BYTE) RM-CELL <>>)
|
|
(GLOBAL LG-CELL-DOOR LG-WALL RM-CELL)
|
|
(ACTION RT-RM-HALL)
|
|
>
|
|
|
|
<ROUTINE RT-RM-HALL ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(<MC-CONTEXT? ,M-F-LOOK ,M-V-LOOK ,M-LOOK>
|
|
<FSET ,LG-CELL-DOOR ,FL-SEEN>
|
|
<TELL
|
|
"You are in an underground corridor that runs east and west. To the south is
|
|
the door to a cell.|"
|
|
>
|
|
<RFALSE>
|
|
)
|
|
(<MC-CONTEXT? ,M-ENTER>
|
|
<SETG GL-PICTURE-NUM ,K-PIC-HALL>
|
|
<COND
|
|
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-PICT>
|
|
<RT-UPDATE-PICT-WINDOW>
|
|
)
|
|
>
|
|
<RFALSE>
|
|
)
|
|
(<MC-CONTEXT? ,M-BEG>
|
|
<COND
|
|
(<VERB? YELL>
|
|
<COND
|
|
(<MC-FORM? ,K-FORM-ARTHUR>
|
|
<RT-CALL-GUARD>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "RM-BOTTOM-OF-STAIRS"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<ROOM RM-BOTTOM-OF-STAIRS
|
|
(LOC ROOMS)
|
|
(DESC "bottom of stairs")
|
|
(FLAGS FL-INDOORS FL-LIGHTED)
|
|
(EAST TO RM-HALL)
|
|
(WEST PER RT-EXIT-STAIRS)
|
|
(UP PER RT-EXIT-STAIRS)
|
|
(GLOBAL LG-WALL LG-STAIRS CH-CELL-GUARD)
|
|
(ACTION RT-RM-BOTTOM-OF-STAIRS)
|
|
>
|
|
|
|
<ROUTINE RT-RM-BOTTOM-OF-STAIRS ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(<MC-CONTEXT? ,M-F-LOOK ,M-V-LOOK ,M-LOOK>
|
|
<TELL
|
|
"You are at the west end of an underground corridor, at the bottom of a long
|
|
flight of stairs. At the top, you see a soldier standing guard. To
|
|
go up would mean certain capture.|"
|
|
>
|
|
<RFALSE>
|
|
)
|
|
(<MC-CONTEXT? ,M-ENTER>
|
|
<SETG GL-PICTURE-NUM ,K-PIC-HALL>
|
|
<COND
|
|
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-PICT>
|
|
<RT-UPDATE-PICT-WINDOW>
|
|
)
|
|
>
|
|
<RFALSE>
|
|
)
|
|
(<MC-CONTEXT? ,M-BEG>
|
|
<COND
|
|
(<VERB? YELL>
|
|
<COND
|
|
(<MC-FORM? ,K-FORM-ARTHUR>
|
|
<RT-CALL-GUARD>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
>
|
|
>
|
|
|
|
<ROUTINE RT-EXIT-STAIRS ("OPT" (QUIET <>))
|
|
<COND
|
|
(.QUIET
|
|
<RFALSE>
|
|
)
|
|
(<MC-FORM? ,K-FORM-ARTHUR>
|
|
<TELL
|
|
"You steal up the stairs as quietly as you can, but the soldier sees you
|
|
immediately. He quickly overpowers you and drags you back down into the
|
|
dungeon and puts you in chains.|"
|
|
>
|
|
<RT-END-OF-GAME>
|
|
)
|
|
(T
|
|
<TELL
|
|
"As soon as you reach the top of the stairs, the guard notices you and
|
|
says," ,K-LOVERLY-MSG form ,K-SKEWER-MSG
|
|
>
|
|
<RT-END-OF-GAME>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "RM-ARMOURY"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<ROOM RM-ARMOURY
|
|
(LOC ROOMS)
|
|
(DESC "armoury")
|
|
(FLAGS FL-INDOORS FL-LIGHTED)
|
|
(SYNONYM ARMOURY ARMORY)
|
|
(NORTH TO RM-PARADE-AREA)
|
|
(OUT TO RM-PARADE-AREA)
|
|
(GLOBAL LG-WALL)
|
|
(ACTION RT-RM-ARMOURY)
|
|
(THINGS
|
|
<> (SHIELD SHIELDS) RT-PS-SHIELDS
|
|
PIKE (PIKESTAFFS STAFF STAFFS PIKE PIKES) RT-PS-PIKESTAFFS
|
|
)
|
|
>
|
|
|
|
<ROUTINE RT-RM-ARMOURY ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(<MC-CONTEXT? ,M-F-LOOK ,M-V-LOOK ,M-LOOK>
|
|
<COND
|
|
(<MC-CONTEXT? ,M-LOOK>
|
|
<TELL "You are in">
|
|
)
|
|
(T
|
|
<TELL "You have entered">
|
|
)
|
|
>
|
|
<TELL
|
|
" a deserted armoury. A few shields are fixed to the wall, and some
|
|
pikestaffs are locked up as well. A broken dagger lies on the table
|
|
awaiting the armourer's attention, but right now it's worthless."
|
|
>
|
|
<COND
|
|
(<MC-CONTEXT? ,M-F-LOOK>
|
|
<FCLEAR ,TH-ARMOUR ,FL-NO-DESC>
|
|
<FCLEAR ,TH-SHIELD ,FL-NO-DESC>
|
|
<FSET ,TH-ARMOUR ,FL-SEEN>
|
|
<FSET ,TH-SHIELD ,FL-SEEN>
|
|
<TELL
|
|
" The only things not broken or locked down are a tarnished shield and
|
|
some armour that lie in the corner." CR
|
|
>
|
|
<RTRUE>
|
|
)
|
|
(T
|
|
<CRLF>
|
|
<RFALSE>
|
|
)
|
|
>
|
|
)
|
|
(<MC-CONTEXT? ,M-ENTER>
|
|
<SETG GL-PICTURE-NUM ,K-PIC-ARMOURY>
|
|
<COND
|
|
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-PICT>
|
|
<RT-UPDATE-PICT-WINDOW>
|
|
)
|
|
>
|
|
<RFALSE>
|
|
)
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
>
|
|
>
|
|
|
|
<ROUTINE RT-PS-SHIELDS ("OPT" (CONTEXT <>) (ART <>) (CAP? <>))
|
|
<COND
|
|
(<MC-CONTEXT? ,M-OBJDESC>
|
|
<FSET ,PSEUDO-OBJECT ,FL-PLURAL>
|
|
<FCLEAR ,PSEUDO-OBJECT ,FL-VOWEL>
|
|
<COND
|
|
(.ART
|
|
<PRINT-ARTICLE ,PSEUDO-OBJECT .ART .CAP?>
|
|
)
|
|
>
|
|
<COND
|
|
(<EQUAL? .ART <> ,K-ART-THE ,K-ART-A ,K-ART-ANY>
|
|
<COND
|
|
(.ART
|
|
<TELL " ">
|
|
)
|
|
>
|
|
<TELL "shields">
|
|
)
|
|
>
|
|
)
|
|
(<VERB? EXAMINE LOOK-IN LOOK-ON TAKE>
|
|
<THIS-IS-IT ,PSEUDO-OBJECT>
|
|
<TELL "The shields are fastened firmly to the wall." CR>
|
|
)
|
|
>
|
|
>
|
|
|
|
<ROUTINE RT-PS-PIKESTAFFS ("OPT" (CONTEXT <>) (ART <>) (CAP? <>))
|
|
<COND
|
|
(<MC-CONTEXT? ,M-OBJDESC>
|
|
<FSET ,PSEUDO-OBJECT ,FL-PLURAL>
|
|
<FCLEAR ,PSEUDO-OBJECT ,FL-VOWEL>
|
|
<COND
|
|
(.ART
|
|
<PRINT-ARTICLE ,PSEUDO-OBJECT .ART .CAP?>
|
|
)
|
|
>
|
|
<COND
|
|
(<EQUAL? .ART <> ,K-ART-THE ,K-ART-A ,K-ART-ANY>
|
|
<COND
|
|
(.ART
|
|
<TELL " ">
|
|
)
|
|
>
|
|
<TELL "pikestaffs">
|
|
)
|
|
>
|
|
)
|
|
(<VERB? EXAMINE TAKE>
|
|
<THIS-IS-IT ,PSEUDO-OBJECT>
|
|
<TELL "The pikestaffs are securely locked down." CR>
|
|
)
|
|
(<VERB? UNLOCK>
|
|
<TELL The ,WINNER " can't unlock the pikestaffs." CR>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-ARMOURY-TABLE"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-ARMOURY-TABLE
|
|
(LOC RM-ARMOURY)
|
|
(DESC "armoury table")
|
|
(FLAGS FL-NO-LIST FL-SEARCH FL-SURFACE)
|
|
(SYNONYM TABLE)
|
|
(ADJECTIVE ARMOURY ARMORY WOODEN)
|
|
(CAPACITY 50)
|
|
(ACTION RT-TH-ARMOURY-TABLE)
|
|
>
|
|
|
|
<ROUTINE RT-TH-ARMOURY-TABLE ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<VERB? CLIMB-UP CLIMB-ON CLIMB-OVER>
|
|
<RT-AUTHOR-ON>
|
|
<TELL "It's not polite to " vw " on tables.">
|
|
<RT-AUTHOR-OFF>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-BROKEN-DAGGER"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-BROKEN-DAGGER
|
|
(LOC TH-ARMOURY-TABLE)
|
|
(DESC "dagger")
|
|
(FLAGS FL-NO-LIST FL-TRY-TAKE)
|
|
(SYNONYM DAGGER KNIFE)
|
|
(ADJECTIVE BROKEN)
|
|
(ACTION RT-TH-BROKEN-DAGGER)
|
|
>
|
|
|
|
<ROUTINE RT-TH-BROKEN-DAGGER ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<VERB? EXAMINE>
|
|
<TELL "The dagger is broken and quite useless." CR>
|
|
)
|
|
(<VERB? TAKE>
|
|
<TELL
|
|
"You pick up the broken pieces and examine them. Realizing that they
|
|
could be of no possible use to anyone, you put them back down and turn your
|
|
attention elsewhere." CR
|
|
>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "LG-CASTLE"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT LG-CASTLE
|
|
(LOC LOCAL-GLOBALS)
|
|
(DESC "castle")
|
|
(SYNONYM CASTLE FORT FORTRESS)
|
|
(OWNER CH-LOT)
|
|
(ACTION RT-LG-CASTLE)
|
|
>
|
|
|
|
<ROUTINE RT-LG-CASTLE ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<AND <VERB? ENTER>
|
|
<MC-HERE? ,RM-CASTLE-GATE>
|
|
>
|
|
<RT-DO-WALK ,P?EAST>
|
|
)
|
|
(<AND <VERB? EXIT>
|
|
<MC-HERE? ,RM-PARADE-AREA>
|
|
>
|
|
<RT-DO-WALK ,P?WEST>
|
|
)
|
|
(<VERB? EXAMINE>
|
|
<FSET ,LG-CASTLE ,FL-SEEN>
|
|
<TELL
|
|
"It's a centuries-old fort built during the Roman occupation of Britain. It
|
|
has fallen into considerable disrepair since the legions left, although King
|
|
Lot has tried to preserve its crumbling walls." CR
|
|
>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "RM-ABOVE-CASTLE"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<ROOM RM-ABOVE-CASTLE
|
|
(LOC ROOMS)
|
|
(DESC "above the castle")
|
|
(FLAGS FL-AIR FL-LIGHTED)
|
|
(DOWN PER RT-FLY-DOWN)
|
|
(WEST TO RM-ABOVE-TOWN)
|
|
(NORTH TO RM-ABOVE-BOG)
|
|
(NW TO RM-ABOVE-MOOR)
|
|
(NE TO RM-ABOVE-FORD)
|
|
(UP SORRY K-NO-HIGHER-MSG)
|
|
(GLOBAL RM-PARADE-AREA RM-ARMOURY RM-GREAT-HALL RM-CAS-KITCHEN LG-CASTLE)
|
|
(ACTION RT-RM-ABOVE-CASTLE)
|
|
>
|
|
|
|
<ROUTINE RT-RM-ABOVE-CASTLE ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(<MC-CONTEXT? ,M-F-LOOK ,M-V-LOOK ,M-LOOK>
|
|
<FSET ,RM-BOG ,FL-SEEN>
|
|
<FSET ,LG-TOWN ,FL-SEEN>
|
|
<FSET ,LG-CASTLE ,FL-SEEN>
|
|
<TELL
|
|
"You are hovering over the castle. Below you to the north you see a patch
|
|
of fog. To the northeast you see a road emerge from the fog and come to a
|
|
ford in the river. Flying to the northwest would put you over the moor. To
|
|
the west you see the roofs of the town.|"
|
|
>
|
|
<RFALSE>
|
|
)
|
|
(<MC-CONTEXT? ,M-ENTER>
|
|
<SETG GL-PICTURE-NUM ,K-PIC-AIR-SCENE>
|
|
<COND
|
|
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-PICT>
|
|
<RT-UPDATE-PICT-WINDOW>
|
|
)
|
|
>
|
|
<RFALSE>
|
|
)
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"***************************************************************************"
|
|
; "end of file"
|
|
;"***************************************************************************"
|
|
|