Copyright (C)1987 Infocom, Inc. All rights reserved."
<ROUTINE GET-OWOMAN-AND-CURTAIN ()
<MAKE ,CURTAIN ,NODESC>
<COND (<NOT <IN? ,CURTAIN ,HERE>>
<MOVE ,CURTAIN ,HERE>)>
<PUTP ,OWOMAN ,P?LAST-LOC ,HERE>
<COND (<NOT <IN? ,OWOMAN ,HERE>>
<MOVE ,OWOMAN ,HERE>)>
<REMOVE-ALL ,OWOMAN>
<SEE-CHARACTER ,OWOMAN>
<RFALSE>>
<ROUTINE GET-DACT? ()
<COND (<AND <NOT <IS? ,DACT ,TOUCHED>>
<NOT <IS? ,HERE ,TOUCHED>>
<LAST-ROOM-IN? ,MOOR-ROOMS 2>>
<MAKE ,DACT ,TOUCHED>
<MOVE ,DACT ,HERE>
<QUEUE ,I-DACT>
<RTRUE>)>
<RFALSE>>
<OBJECT HILLTOP
(LOC ROOMS)
(DESC "Hilltop")
(FLAGS LIGHTED LOCATION)
(EAST <SAY-TO COVESIDE "You amble down the hill.">)
(NW <TO ON-PIKE>)
(DOWN <PER EXIT-A-TREE>)
(UP <PER CLIMB-A-TREE>)
(OVERHEAD OAK2)
(EXIT-STR "The hillside is too steep that way.")
(GLOBAL GRUBBO)
(FNUM OGRUBBO)
(THINGS (<> HILL HERE-F)
(<> HILLTOP HERE-F)
(GREAT SEA USELESS)
(<> SHORE USELESS))
(ACTION HILLTOP-F)>
"SEEN = seen morning."
<ROUTINE HILLTOP-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"The horizon is lost in the glare of morning upon the Great Sea. You shield your eyes to sweep the shore below, where a village lies nestled beside a quiet cove." CR>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERING>
<SETG P-IT-OBJECT ,OAK2>
<RFALSE>)
(<EQUAL? .CONTEXT ,M-EXIT>
<COND (<EQUAL? ,P-WALK-DIR ,P?DOWN>
<SETG P-WALK-DIR ,P?EAST>)>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT COVESIDE
(LOC ROOMS)
(DESC "Cove")
(FLAGS LIGHTED LOCATION)
(NE <TO AT-LEDGE 3>)
(EAST <TO ON-WHARF>)
(SOUTH <TO OUTSIDE-PUB>)
(WEST <TO HILLTOP>)
(UP <TO HILLTOP>)
(GLOBAL GRUBBO WHARF)
(FNUM OGRUBBO)
(THINGS (<> COVE HERE-F)
(<> GULLS USELESS)
(<> SHANTIES <>))
(ACTION COVESIDE-F)>
<ROUTINE COVESIDE-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"Gulls circle the far end of a wharf extending east across the cove. The street is dotted with shanties bleached by years of sun and salt." CR>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-EXIT>
<COND (<EQUAL? ,P-WALK-DIR ,P?UP>
<SETG P-WALK-DIR ,P?WEST>)>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT OUTSIDE-PUB
(LOC ROOMS)
(DESC "Outside Pub")
(FLAGS LIGHTED LOCATION)
(NORTH <TO COVESIDE>)
(SOUTH <TO N-MOOR>)
(WEST <THRU PUB-DOOR IN-PUB>)
(IN <THRU PUB-DOOR IN-PUB>)
(GLOBAL PUB-DOOR PUB GRUBBO)
(FNUM OGRUBBO)
(HEAR PUB)
(ODOR PUB)
(ACTION OUTSIDE-PUB-F)>
<ROUTINE OUTSIDE-PUB-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL "Harsh laughter and mouthwatering aromas waft ">
<COND (<IS? ,PUB-DOOR ,OPENED>
<TELL "through the open ">)
(T
<TELL "out from under the ">)>
<TELL "door of a shanty on the street's west side. ">
<DESCRIBE-PUB-SIGN>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE DESCRIBE-PUB-SIGN ("AUX" X)
<TELL
"The words \"Ye Rusty Lantern, A Publick House\" appear in fading script above ">
<COND (<SET X <FIRST? ,PUB-SIGN>>
<THIS-IS-IT .X>
<COND (<EQUAL? .X ,LANTERN>
<TELL "a real " D .X>)
(T
<TELL A .X>)>
<TELL ", dangling from a ">)
(T
<SETG P-IT-OBJECT ,PUB-SIGN>
<TELL "an empty ">)>
<TELL "hook." CR>
<RTRUE>>
<OBJECT N-MOOR
(LOC ROOMS)
(DESC "Moor's Edge")
(FLAGS LIGHTED LOCATION)
(NORTH <TO OUTSIDE-PUB>)
(SOUTH <PER N-MOOR-S 1>)
(FNUM OGRUBBO)
(GLOBAL GRUBBO)
(ACTION N-MOOR-F)>
<ROUTINE N-MOOR-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"A gray scrim of mist lies across the southern moors, obscuring the path only a few steps away. The outskirts of a village">
<PRINT " can be seen not far to the north.|">
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERING>
<COND (<EQUAL? ,P-WALK-DIR ,P?NORTH>
<COND (<T? ,AUTO>
<BMODE-OFF>)>)>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT IN-GAS
(LOC ROOMS)
(DESC "Gasses")
(FLAGS LIGHTED LOCATION)
(NORTH 0)
(NE 0)
(EAST 0)
(SE 0)
(SOUTH 0)
(SW 0)
(WEST 0)
(NW 0)
(DNUM 0)
(FNUM OMOOR)
(EXIT-STR "Tall reeds block your path.")
(GLOBAL SWAMP FOG)
(ACTION IN-GAS-F)>
<ROUTINE IN-GAS-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"Your feet make wet, sucking noises as you trudge across patches of rotting vegetable matter. An unwholesome miasma of gasses is making your head swim." CR>
<MENTION-MOOR-EXIT>
<RTRUE>)
(T
<RFALSE>)>>
; <ROUTINE DO-GAS-EXIT ("AUX" DIR CNT TBL)
<COND (<OR <EQUAL? ,P-WALK-DIR ,P?IN ,P?OUT>
<EQUAL? ,P-WALK-DIR ,P?UP ,P?DOWN>>
<RFALSE>)>
<SET DIR ,P?NW>
<SET CNT 1>
<REPEAT ()
<SET TBL <GETP ,HERE .DIR>>
<COND (<ZERO? .TBL>)
(<EQUAL? <MSB <GET .TBL ,XTYPE>> ,CONNECT>
<INC CNT>
<PUT ,GOOD-DIRS .CNT .DIR>)>
<COND (<IGRTR? DIR ,P?NORTH>
<RETURN>)>>
<COND (<EQUAL? .CNT 2>
<SET DIR <GET ,GOOD-DIRS 2>>)
(T
<PUT ,GOOD-DIRS 0 .CNT>
<PUT ,GOOD-DIRS 1 0>
<PROG ()
<SET DIR <PICK-ONE ,GOOD-DIRS>>
<COND (<EQUAL? .DIR ,PRSO>
<AGAIN>)>>)>
<COND (<PROB <- ,STATMAX <GET ,STATS ,LUCK>>>
<SETG PRSO .DIR>
<SETG P-WALK-DIR .DIR>
<TELL
"You stumble uncertainly in the whirling gas." CR>
<COND (<T? ,VERBOSITY>
<CRLF>)>)>
<RFALSE>>
<OBJECT MOOR2
(LOC ROOMS)
(DESC "Eyes")
(FLAGS LIGHTED LOCATION)
(NORTH 0)
(NE 0)
(EAST 0)
(SE 0)
(SOUTH 0)
(SW 0)
(WEST 0)
(NW 0)
(DNUM 0)
(FNUM OMOOR)
(EXIT-STR "Tall reeds block your path.")
(GLOBAL SWAMP FOG)
(ACTION MOOR2-F)>
<ROUTINE MOOR2-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"Silent, unblinking eyes peer down at you from the fog-shrouded trees." CR>
<MENTION-MOOR-EXIT>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERING>
<GET-DACT?>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT MOOR3
(LOC ROOMS)
(DESC "Deep Mist")
(FLAGS LIGHTED LOCATION)
(NORTH 0)
(NE 0)
(EAST 0)
(SE 0)
(SOUTH 0)
(SW 0)
(WEST 0)
(NW 0)
(DNUM 0)
(FNUM OMOOR)
(EXIT-STR "Tall reeds block your path.")
(GLOBAL SWAMP FOG)
(ACTION MOOR3-F)>
<ROUTINE MOOR3-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"Spooky fingers of mist swirl around your feet. It's hard to see more than a few yards in any " 'INTDIR ,PERIOD>
<MENTION-MOOR-EXIT>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERING>
<GET-DACT?>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT MOOR4
(LOC ROOMS)
(DESC "Noises")
(FLAGS LIGHTED LOCATION)
(NORTH 0)
(NE 0)
(EAST 0)
(SE 0)
(SOUTH 0)
(SW 0)
(WEST 0)
(NW 0)
(DNUM 0)
(FNUM OMOOR)
(EXIT-STR "Tall reeds block your path.")
(GLOBAL SWAMP FOG)
(ACTION MOOR4-F)>
<ROUTINE MOOR4-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"A cacophony of peeps, hoots and croaks sets your nerves on edge." CR>
<MENTION-MOOR-EXIT>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERING>
<GET-DACT?>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT MOOR5
(LOC ROOMS)
(DESC "Mud Flats")
(FLAGS LIGHTED LOCATION)
(NORTH 0)
(NE 0)
(EAST 0)
(SE 0)
(SOUTH 0)
(SW 0)
(WEST 0)
(NW 0)
(DNUM 0)
(FNUM OMOOR)
(EXIT-STR "Tall reeds block your path.")
(GLOBAL SWAMP FOG)
(ACTION MOOR5-F)>
<ROUTINE MOOR5-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"Narrow paths wander off between pools of black, fetid mud. The damp chill in the air is making you shiver." CR>
<MENTION-MOOR-EXIT>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERING>
<GET-DACT?>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT MOOR6
(LOC ROOMS)
(DESC "Odors")
(FLAGS LIGHTED LOCATION)
(NORTH 0)
(NE 0)
(EAST 0)
(SE 0)
(SOUTH 0)
(SW 0)
(WEST 0)
(NW 0)
(DNUM 0)
(FNUM OMOOR)
(EXIT-STR "Tall reeds block your path.")
(GLOBAL SWAMP FOG)
(ACTION MOOR6-F)>
<ROUTINE MOOR6-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"Gray wraiths of mist linger among the reeds, filling your nostrils with the odor of things long dead." CR>
<MENTION-MOOR-EXIT>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERING>
<GET-DACT?>
<RFALSE>)
(T
<RFALSE>)>>
<ROUTINE MENTION-MOOR-EXIT ("AUX" (WRD 0) TBL)
<SET TBL <GETP ,HERE ,P?SW>>
<COND (<AND <T? .TBL>
<EQUAL? <GET .TBL ,XROOM> ,SW-MOOR>>
<SET WRD ,W?SOUTHWEST>)
(T
<SET TBL <GETP ,HERE ,P?NORTH>>
<COND (<AND <T? .TBL>
<EQUAL? <GET .TBL ,XROOM> ,N-MOOR>>
<SET WRD ,W?NORTH>)>)>
<COND (<ZERO? .WRD>
<RFALSE>)>
<TELL ,TAB "The mist thins out a bit to the " B .WRD ,PERIOD>
<RTRUE>>
<OBJECT SW-MOOR
(LOC ROOMS)
(DESC "Bluffs")
(FLAGS LIGHTED LOCATION)
(NE <PER SW-MOOR-NE 5>)
(WEST <TO IN-PORT>)
(FNUM OMIZNIA)
(ACTION SW-MOOR-F)>
<ROUTINE SW-MOOR-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"Circling gulls and a forest of masts disclose a seaport not far to the west. The view to the northeast is obscured by a blanket of mist." CR>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERING>
<COND (<EQUAL? ,P-WALK-DIR ,P?SW>
<COND (<T? ,AUTO>
<BMODE-OFF>)>)>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT IN-PORT
(LOC ROOMS)
(DESC "Mizniaport")
(FLAGS LIGHTED LOCATION)
(NORTH <THRU BOUTIQUE-DOOR IN-BOUTIQUE>)
(IN <THRU BOUTIQUE-DOOR IN-BOUTIQUE>)
(NE <TO IN-YARD>)
(EAST <TO SW-MOOR>)
(SE <SORRY "You'd fall in the bay if you went that way.">)
(SOUTH <SORRY "You'd fall in the bay if you went that way.">)
(SW <SORRY "You'd fall in the bay if you went that way.">)
(WEST <TO AT-DOCK>)
(NW <TO XROADS 11>)
(FNUM OMIZNIA)
(GLOBAL BOUTIQUE-DOOR BOUTIQUE STABLE)
(ACTION IN-PORT-F)>
<ROUTINE IN-PORT-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"Mizniaport is a magnet for the wealthy yipples of Borphee, who browse the colorful shops in search of next year's fashions" ,PTAB
"An especially swank boutique stands just north of here. Beside it, a path marked \"Private Way\" bends northeast." CR>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT IN-YARD
(LOC ROOMS)
(DESC "Private Way")
(FLAGS LIGHTED LOCATION)
(NORTH <TO IN-STABLE>)
(IN <TO IN-STABLE>)
(SW <TO IN-PORT>)
(FNUM OMIZNIA)
(GLOBAL STABLE)
(ACTION IN-YARD-F)>
<ROUTINE IN-YARD-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"This shady nook obviously belongs to some well-to-do yipple. The arborvitaes are lush and neatly trimmed, with twin beds of flowers leading up to a little red " 'STABLE ,PERIOD>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT IN-STABLE
(LOC ROOMS)
(DESC "Stablehouse")
(FLAGS LIGHTED LOCATION INDOORS)
(SOUTH <TO IN-YARD>)
(OUT <PER EXIT-STABLE>)
(IN <PER STABLE-IN>)
(FNUM OMIZNIA)
(GLOBAL STABLE)
(ACTION IN-STABLE-F)>
<ROUTINE STABLE-IN ()
<PERFORM ,V?ENTER ,STALL>
<RFALSE>>
<ROUTINE EXIT-STABLE ()
<COND (<IN? ,PLAYER ,STALL>
<PERFORM ,V?EXIT ,STALL>
<RFALSE>)>
<RETURN ,IN-YARD>>
<ROUTINE IN-STABLE-F ("OPT" (CONTEXT <>) "AUX" (U 0) ANY X)
<COND (<IN? ,UNICORN ,STALL>
<INC U>)>
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<COND (<IS? ,STALL ,MUNGED>
<TELL "The splintered ruins of " THE ,STALL
" look out of place in this otherwise">)
(T
<TELL "Not a straw is out of place in this">)>
<TELL " immaculate " 'STABLE>
<COND (<IN? ,PLAYER ,STALL>
<PRINT ,PERIOD>
<RTRUE>)>
<SET ANY <SEE-ANYTHING-IN? ,STALL>>
<COND (<IS? ,STALL ,MUNGED>
<COND (<T? .ANY>
<TELL ". ">
<PRINT "Peering inside, you see ">
<CONTENTS ,STALL>
<SETG P-IT-OBJECT ,STALL>)>
<TELL ,PERIOD>
<RTRUE>)>
<TELL ". The one">
<OPEN-CLOSED ,STALL>
<TELL ,SIS>
<COND (<T? .U>
<TELL "occupied by a snow-white " 'UNICORN
", who gazes at you mournfully from between the slats">
<COND (<T? .ANY>
<TELL ". You can also ">)>)
(T
<TELL "unoccupied">
<COND (<T? .ANY>
<TELL "; you can ">)>)>
<COND (<T? .ANY>
<TELL "see ">
<CONTENTS ,STALL>
<TELL " inside">
<SETG P-IT-OBJECT ,STALL>)>
<PRINT ,PERIOD>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERING>
<COND (<T? .U>
<SEE-CHARACTER ,UNICORN>
<MAKE ,UNICORN ,SEEN>
<QUEUE ,I-UNICORN>)>
<RFALSE>)
(<EQUAL? .CONTEXT ,M-EXIT>
<COND (<T? .U>
<DEQUEUE ,I-UNICORN>
<TELL CTHE ,UNICORN
" whinnies pitifully as you leave." CR>
<RTRUE>)>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT IN-BOUTIQUE
(LOC ROOMS)
(DESC "Boutique")
(FLAGS LIGHTED LOCATION INDOORS)
(SOUTH <THRU BOUTIQUE-DOOR IN-PORT>)
(OUT <THRU BOUTIQUE-DOOR IN-PORT>)
(EAST <PER ENTER-CURTAIN>)
(IN <PER ENTER-CURTAIN>)
(GLOBAL BOUTIQUE-DOOR BOUTIQUE)
(THIS-CASE BCASE)
(FNUM OMIZNIA)
(ACTION IN-BOUTIQUE-F)>
<ROUTINE IN-BOUTIQUE-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"The sheer, flowing fabrics and gossamer pastels in this little shop create an atmosphere of taste and calm conducive to reckless spending.| A ">
<SHOP-DOOR ,BOUTIQUE-DOOR>
<TELL " offers the latest in travel fashions">
<LOOK-ON-CASE ,ON-BCASE>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERING>
<GET-OWOMAN-AND-CURTAIN>
<QUEUE ,I-OWOMAN>
<RFALSE>)
(<EQUAL? .CONTEXT ,M-EXIT>
<DEQUEUE ,I-OWOMAN>
<COND (<IN? ,OWOMAN ,IN-BOUTIQUE>
<TELL
"\"See you later,\" calls " THE ,OWOMAN " as you leave." CR>
<RTRUE>)>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT IN-PUB
(LOC ROOMS)
(DESC "The Rusty Lantern")
(FLAGS LIGHTED LOCATION INDOORS)
(EAST <THRU PUB-DOOR OUTSIDE-PUB>)
(WEST <TO IN-KITCHEN>)
(OUT <THRU PUB-DOOR OUTSIDE-PUB>)
(IN <TO IN-KITCHEN>)
(HEAR PUB)
(ODOR PUB)
(FNUM OGRUBBO)
(GLOBAL PUB KITCHEN PUB-DOOR CELLAR GRUBBO)
(THINGS (<> FIREPLACE USELESS))
(ACTION IN-PUB-F)>
<ROUTINE IN-PUB-F ("OPT" (CONTEXT <>) "AUX" X)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"Loud voices and clattering dishes make this smarmy dive sound busier than it really is. Your eyes sting from the greasy smoke drifting in from "
THE ,KITCHEN ,PTAB CA ,BANDITS " is hogging the fireplace." CR>
<COND (<SET X <FIRST? ,PUBWALL>>
<SETG P-IT-OBJECT .X>
<TELL ,TAB CA .X " is imbedded in the wall." CR>)>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERING>
<QUEUE ,I-BANDITS>
<RFALSE>)
(<EQUAL? .CONTEXT ,M-ENTERED>
<SETG P-THEM-OBJECT ,BANDITS>
<RFALSE>)
(<EQUAL? .CONTEXT ,M-EXIT>
<COND (<ZERO? ,P-WALK-DIR>)
(<IS? ,DAGGER ,NODESC>
<UNMAKE ,DAGGER ,NODESC>
<WINDOW ,SHOWING-ROOM>
<MOVE ,DAGGER ,PUBWALL>
<SETG P-IT-OBJECT ,DAGGER>
<MAKE ,BANDITS ,SEEN>
<TELL "You edge towards the ">
<COND (<EQUAL? ,P-WALK-DIR ,P?WEST ,P?IN>
<TELL 'KITCHEN>)
(T
<TELL B ,W?EXIT>)>
<TELL ,PTAB>
<ITALICIZE "Thwack">
<TELL
"! A dagger streaks past your ear, imbedding itself deep into the wall.|
"Coils of greasy steam rise from a cauldron bubbling over a roaring hearth. "
CTHE ,CEILING " is hung with crusty pots and strips of old meat" ,PTAB "A">
<COND (<IS? ,CELLAR-DOOR ,MUNGED>
<TELL " gaping hole">)
(<T? .D>
<TELL "n open door">)
(T
<TELL " closed door">)>
<TELL ,SIN THE ,GCORNER>
<COND (<T? .D>
<TELL " reveals a stair leading downward." CR>
<RTRUE>)>
<TELL " bears the legend, \"Keepeth Out.\"" CR>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERING>
<COND (<NOT <IN? ,COOK ,IN-KITCHEN>>
<MOVE ,COOK ,IN-KITCHEN>)>
<UNMAKE ,COOK ,NODESC>
<SEE-CHARACTER ,COOK>
<MAKE ,COOK ,SEEN>
<QUEUE ,I-COOK>
<RFALSE>)
(<EQUAL? .CONTEXT ,M-ENTERED>
<COND (<IS? ,BOTTLE ,MUNGED>
<RFALSE>)
(<IN? ,BOTTLE ,PLAYER>
<TELL ,TAB>
<COOK-SEES-BOTTLE>
<RTRUE>)>
<RFALSE>)
(<EQUAL? .CONTEXT ,M-EXIT>
<COND (<AND <T? ,P-WALK-DIR>
<IS? ,ONION ,TOUCHED>
<NOT <IS? ,BOTTLE ,IDENTIFIED>>>
<UNMAKE ,COOK ,SEEN>
<TELL "\"Wait a second.\"" CR>
<I-ONION-OFFER>
<RFATAL>)
(<EQUAL? ,P-WALK-DIR ,P?DOWN ,P?IN>
<COND (<ZERO? .D>
<ITS-CLOSED ,CELLAR-DOOR>
<RFATAL>)
(<NOT <IS? ,CELLAR-DOOR ,TOUCHED>>
<MAKE ,CELLAR-DOOR ,TOUCHED>
<COND (<NOT <SETUP-CELLAR?>>
<RFALSE>)>)>
<DEQUEUE ,I-COOK>
<TELL "You clump down "
THE ,CELLAR-STAIR ,PERIOD>
<RTRUE>)
(<EQUAL? ,P-WALK-DIR ,P?EAST ,P?OUT>
<SETG P-WALK-DIR ,P?EAST>
<DEQUEUE ,I-COOK>)>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT KITCHEN-JUNK
(LOC IN-KITCHEN)
(DESC "that")
(FLAGS NOARTICLE NODESC TRYTAKE NOALL)
(SYNONYM MEAT CAULDRON STRIPS HEARTH POT POTS)
(ACTION USELESS)>
<OBJECT ON-WHARF
(LOC ROOMS)
(DESC "Wharf")
(FLAGS LIGHTED LOCATION)
(COORDS MAP-RIGHT)
(WEST <TO COVESIDE>)
(DOWN <PER ON-WHARF-DOWN>)
(IN <PER ON-WHARF-DOWN>)
(HEAR COVE)
(ODOR WHARF)
(SEE-ALL COVE)
(BELOW COVE)
(GLOBAL GRUBBO WHARF)
(FNUM OGRUBBO)
(ACTION ON-WHARF-F)>
<ROUTINE ON-WHARF-DOWN ()
<MAKE ,SALT ,SEEN>
<TELL "\"Careful!\" warns " THE ,SALT
", holding you back. \"Water's mighty cool this time o' year.\"" CR>
<RFALSE>>
<ROUTINE ON-WHARF-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<PRINT
"Dank, fishy smells permeate this old wharf to its very bones.">
<TELL " Far below, you ">
<PRINT "hear the slurp of oily seawater against the piers">
<COND (<FIRST? ,COVE>
<TELL ,PTAB ,YOU-SEE>
<CONTENTS ,COVE>
<TELL " bobbing on the waves">)>
<PRINT ,PERIOD>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERING>
<COND (<NOT <IS? ,SHILL ,BUOYANT>>
<MAKE ,SHILL ,BUOYANT>
<QUEUE ,I-SHILL>)>
<MAKE ,SALT ,SEEN>
<QUEUE ,I-SALT>
<SEE-CHARACTER ,SALT>
<RFALSE>)
(<EQUAL? .CONTEXT ,M-EXIT>
<COND (<NOT <IS? ,SHILL ,SEEN>>
<SEE-SHILL>
<RFATAL>)>
<DEQUEUE ,I-SALT>
<COND (<T? ,P-WALK-DIR>
<TELL
"\"See y'later,\" chuckles the salt as you walk away." CR>
<RTRUE>)>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT NULL
(FLAGS NODESC)>
<OBJECT AT-BOTTOM
(LOC ROOMS)
(DESC "Wine Cellar")
(FLAGS LIGHTED LOCATION INDOORS)
(UP <THRU CELLAR-DOOR IN-KITCHEN>)
(OUT <SORRY "Which way do you want to go out?">)
(OVERHEAD CELLAR-DOOR)
(NORTH 0)
(NE 0)
(EAST 0)
(SE 0)
(SOUTH 0)
(SW 0)
(WEST 0)
(NW 0)
(DNUM 0)
(FNUM OGRUBBO)
(GLOBAL NULL CELLAR-STAIR CELLAR-DOOR CELLAR)
(ACTION AT-BOTTOM-F)>
<ROUTINE LOCK-CELLAR-DOOR ()
<MAKE ,CELLAR-DOOR ,LOCKED>
<TELL ,YOU-HEAR ,LTHE>
<ITALICIZE "snap">
<TELL " of a substantial lock." CR>
<RTRUE>>
<ROUTINE AT-BOTTOM-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"You're standing at the bottom of a short, rickety stairway, ankle-deep in refuse. ">
<COND (<IS? ,CELLAR-DOOR ,OPENED>
<TELL "Light streams down through a">
<COND (<IS? ,CELLAR-DOOR ,MUNGED>
<TELL " gaping hole">)
(T
<TELL "n open door">)>
<TELL " overhead." CR>
<RTRUE>)>
<TELL "The door overhead is closed." CR>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERING>
<COND (<NOT <IN? ,COOK ,AT-BOTTOM>>
<MOVE ,COOK ,AT-BOTTOM>
<MAKE ,COOK ,NODESC>)>
<SETG P-IT-OBJECT ,CELLAR-DOOR>
<RFALSE>)
(<EQUAL? .CONTEXT ,M-EXIT>
<COND (<EQUAL? ,P-WALK-DIR ,P?UP>
<COND (<IS? ,CELLAR-DOOR ,MUNGED>
<COND (<T? ,AUTO>
<BMODE-OFF>)>
<YOU-CLIMB-UP T>
<RTRUE>)
(<IS? ,CELLAR-DOOR ,LOCKED>
<SETG P-IT-OBJECT ,CELLAR-DOOR>
<TELL CTHE ,P-IT-OBJECT " is locked." CR>
<RFATAL>)
(<IS? ,CELLAR-DOOR ,OPENED>
<WINDOW ,SHOWING-ROOM>
<SETG P-IT-OBJECT ,CELLAR-DOOR>
<UNMAKE ,CELLAR-DOOR ,OPENED>
<UNMAKE ,AT-BOTTOM ,LIGHTED>
<ITALICIZE "Bang">
<TELL "! An unseen hand slams "
THE ,CELLAR-DOOR " in your face." CR>
<SAY-IF-HERE-LIT>
<TELL ,TAB>
<LOCK-CELLAR-DOOR>
<RFATAL>)>)>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT WC1
(LOC ROOMS)
(DESC "Reeking Room")
(FLAGS LOCATION INDOORS)
(NORTH 0)
(NE 0)
(EAST 0)
(SE 0)
(SOUTH 0)
(SW 0)
(WEST 0)
(NW 0)
(DNUM 0)
(FNUM OGRUBBO)
(GLOBAL NULL CELLAR)
(ACTION WC1-F)>
<ROUTINE WC1-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"Smashed bottles litter the floor, and the air reeks of sour wine." CR>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT SKEL-ROOM
(LOC ROOMS)
(DESC "Shadowy Stacks")
(FLAGS LOCATION INDOORS)
(NORTH 0)
(NE 0)
(EAST 0)
(SE 0)
(SOUTH 0)
(SW 0)
(WEST 0)
(NW 0)
(DNUM 0)
(FNUM OGRUBBO)
(GLOBAL NULL CELLAR)
(ACTION SKEL-ROOM-F)>
<ROUTINE SKEL-ROOM-F ("OPT" (CONTEXT <>) "AUX" X)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"Precarious stacks of barrels loom in the shadows on every side." CR>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-BEG>
<COND (<ZERO? ,CHOKE>
<RFALSE>)
(<VERB? SAVE UNDO>
<MUMBLAGE ,SKELETON>
<RTRUE>)
(<OR <VERB? WAIT LOOK>
<SET X <GAMEVERB?>>>
<RFALSE>)>
<SET X ,P-PRSA-WORD>
<COND (<VERB? WALK WALK-TO>
<SET X ,W?MOVE>)
(<SET X <TALKING?>>
<SET X ,W?SPEAK>)
(<SET X <SEEING?>>
<SET X ,W?SEE>)
(<EQUAL? ,SKELETON ,PRSO ,PRSI>
<RFALSE>)>
<TELL "It's not easy to ">
<COND (<ZERO? .X>
<TELL "do that">)
(T
<TELL B .X>)>
<TELL " while you're being strangled to death." CR>
<RFATAL>)
(T
<RFALSE>)>>
<OBJECT MOSS-ROOM
(LOC ROOMS)
(DESC "Musty Corridor")
(FLAGS LOCATION INDOORS)
(NORTH 0)
(NE 0)
(EAST 0)
(SE 0)
(SOUTH 0)
(SW 0)
(WEST 0)
(NW 0)
(DNUM 0)
(FNUM OGRUBBO)
(THINGS (DAMP CORRIDOR HERE-F)
(DAMP HALL HERE-F)
(DAMP HALLWAY HERE-F))
(GLOBAL NULL CELLAR)
(ACTION MOSS-ROOM-F)>
<ROUTINE MOSS-ROOM-F ("OPT" (CONTEXT <>) "AUX" X)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<SET X <LIGHT-SOURCE?>>
<COND (<ZERO? .X>
<TELL "The dim light">)
(T
<TELL CTHE .X "'s glow">)>
<TELL " reveals a gray patch of moss on the wall." CR>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT AT-STACK
(LOC ROOMS)
(DESC "Bottom of Stack")
(FLAGS LOCATION INDOORS)
(NORTH 0)
(NE 0)
(EAST 0)
(SE 0)
(SOUTH 0)
(SW 0)
(WEST 0)
(NW 0)
(DNUM 0)
(FNUM OGRUBBO)
(OVERHEAD CRATES)
(UP <PER UPSTACK 1>)
(DOWN <SORRY "You're already at the bottom of the stack.">)
(GLOBAL NULL CELLAR CRATES)
(ACTION AT-STACK-F)>
<ROUTINE UPSTACK ("AUX" (BAD 0))
<COND (<ZERO? ,LIT?>
<TOO-DARK>
<RFALSE>)>
<TELL "You teeter ">
<COND (<L? <GET ,STATS ,DEXTERITY> 15>
<INC BAD>
<TELL "uncertainly">)
(T
<TELL "for a moment">)>
<TELL " on the lowest crates">
<COND (<T? .BAD>
<TELL
", lose your balance, and sprawl to " THE ,GROUND>
<COND (<NOT <IS? ,CRATES ,SEEN>>
<MAKE ,CRATES ,SEEN>
<TELL ". Not very coordinated, are you?" CR>
<RFALSE>)>
<PRINT ,PERIOD>
<RFALSE>)>
<TELL ", then slowly edge your way upward." CR>
<COND (<T? ,VERBOSITY>
<CRLF>)>
<RETURN ,BARRELTOP>>
<ROUTINE AT-STACK-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL "Empty wine crates are stacked to "
THE ,CEILING " in a stairlike spiral." CR>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT THRONE-ROOM
(LOC ROOMS)
(DESC "Throne Room")
(FLAGS LOCATION INDOORS)
(NORTH 0)
(NE 0)
(EAST 0)
(SE 0)
(SOUTH 0)
(SW 0)
(WEST 0)
(NW 0)
(DNUM 0)
(FNUM OGRUBBO)
(GLOBAL NULL CELLAR)
(ACTION THRONE-ROOM-F)>
<ROUTINE THRONE-ROOM-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"A shallow nest of sea shells, coral and other bits of ocean debris lies in "
THE ,GCORNER>
<COND (<SEE-ANYTHING-IN? ,THRONE>
<TELL ". Upon this pile you see ">
<CONTENTS ,THRONE>)>
<PRINT ,PERIOD>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERED>
<COND (<NOT <IS? ,CRAB ,MONSTER>>
<MAKE ,CRAB ,MONSTER>
<WINDOW ,SHOWING-ROOM>
<QUEUE ,I-CRAB>)>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT BARRELTOP
(LOC ROOMS)
(DESC "Top of Stack")
(FLAGS LOCATION INDOORS)
(NORTH <SORRY "You'd fall off the barrel if you went that way.">)
(NE <SORRY "You'd fall off the barrel if you went that way.">)
(EAST <SORRY "You'd fall off the barrel if you went that way.">)
(SE <SORRY "You'd fall off the barrel if you went that way.">)
(SOUTH <SORRY "You'd fall off the barrel if you went that way.">)
(SW <SORRY "You'd fall off the barrel if you went that way.">)
(WEST <SORRY "You'd fall off the barrel if you went that way.">)
(NW <SORRY "You'd fall off the barrel if you went that way.">)
(DOWN <SAY-TO AT-STACK "You carefully descend the stack.">)
(UP <SORRY "You're up as high as you can go.">)
(FNUM OGRUBBO)
(GLOBAL CRATES CELLAR)
(ACTION BARRELTOP-F)>
<ROUTINE BARRELTOP-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"You struggle to keep your balance as the stack sways back and forth in the darkness." CR>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERING>
<COND (<EQUAL? ,P-WALK-DIR ,P?UP>
<COND (<T? ,AUTO>
<BMODE-OFF>)>)>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT IN-THRIFF
(LOC ROOMS)
(DESC "Thriff")
(FLAGS LIGHTED LOCATION)
(NE <TO AT-FALLS>)
(SOUTH <TO FOREST-EDGE>)
(UP <TO FOREST-EDGE>)
(NW <TO IN-PASTURE>)
(WEST <THRU CHAPEL-DOOR IN-CHAPEL>)
(IN <THRU CHAPEL-DOOR IN-CHAPEL>)
(FNUM OTHRIFF)
(GLOBAL CHAPEL-DOOR THRIFF CHAPEL)
(ACTION IN-THRIFF-F)>
<ROUTINE IN-THRIFF-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"Trim white cottages are clustered around a central grove of mountain firs, tall and lovingly tended. A little chapel graces the west side of the street">
<COND (<IS? ,CHAPEL-DOOR ,OPENED>
<TELL ", its front doors wide open">)>
<TELL ,PTAB "Turning south, you see a ">
<COND (<IS? ,FOREST-EDGE ,MUNGED>
<TELL "wall of " 'XTREES
" waiting to descend upon the village." CR>
<RTRUE>)>
<TELL "narrow trail winding up into the mountains">
<COND (<T? ,MAGMA-TIMER>
<TELL ", backlit by a ">
<GLOW-COLOR>
<TELL "glow of heat">)>
<TELL ,PERIOD>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-EXIT>
<COND (<EQUAL? ,P-WALK-DIR ,P?IN>
<SETG P-WALK-DIR ,P?WEST>)
(<EQUAL? ,P-WALK-DIR ,P?UP ,P?SOUTH>
<SETG P-WALK-DIR ,P?SOUTH>
<COND (<T? ,MAGMA-TIMER>
<COND (<WEARING-MAGIC? ,RING>
<TELL
"Your ring finger tingles as you draw closer to the blistering heat." CR>
<RTRUE>)>
<TELL
"A blistering wall of heat forces you to turn back." CR>
<RFATAL>)
(<GLOBAL-IN? ,FOREST-EDGE ,SNOW>
<TELL
"Your feet become dusted with snow as you ascend." CR>
<RTRUE>)>)>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT IN-CHAPEL
(LOC ROOMS)
(DESC "Chapel")
(FLAGS LIGHTED LOCATION INDOORS)
(FNUM OTHRIFF)
(EAST <THRU CHAPEL-DOOR IN-THRIFF>)
(OUT <THRU CHAPEL-DOOR IN-THRIFF>)
(UP <PER EXIT-PEW>)
(GLOBAL CHAPEL-DOOR CHAPEL)
(ACTION IN-CHAPEL-F)>
<GLOBAL THRIFF-WON:FLAG <>>
<ROUTINE IN-CHAPEL-F ("OPT" (CONTEXT <>) "AUX" X)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<COND (<IN? ,CLERIC ,IN-CHAPEL>
<COND (<IN? ,RELIQUARY ,CLERIC>
<TELL CTHE ,CLERIC
" stands beside " THE ,ALTAR ", holding ">
<CONTENTS ,CLERIC>)
(T
<TELL "An anxious " 'CONGREG
" kneels in silent prayer before " THE ,CLERIC
". On the altar beside him rests ">
<CONTENTS ,ALTAR>)>)
(T
<TELL "Rows of empty pews face a deserted altar">
<COND (<SEE-ANYTHING-IN? ,ALTAR>
<TELL ", upon which rests ">
<CONTENTS ,ALTAR>)>)>
<PRINT ,PERIOD>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-BEG>
<COND (<NOT <IN? ,CLERIC ,IN-CHAPEL>>
<RFALSE>)
(<VERB? HIT MUNG KICK>
<TELL "This is no place for violence." CR>
<RFATAL>)
(<T? ,THRIFF-WON>)
(<SET X <TALKING?>>
<MAKE ,CLERIC ,SEEN>
<PCLEAR>
<TELL C ,QUOTATION>
<SET X <RANDOM 100>>
<COND (<L? .X 33>
<TELL "Shhh">)
(<L? .X 67>
<TELL "Quiet">)
(T
<TELL "Shush">)>
<TELL "!\" whispers a member of " THE ,CONGREG ,PERIOD>
"An avalanche of lava has consumed the upward trail, ending here in a ">
<COND (<T? ,MAGMA-TIMER>
<GLOW-COLOR>
<TELL B ,W?POOL>)
(T
<TELL "dark, steaming crust">)>
<TELL ". Many of the surrounding ">
<SAY-TREES>
<TELL
" are damaged; the survivors linger near the blackened edge of the clearing." CR>)
(T
<TELL
"The upward trail bends sharply west here, winding out of sight between the ">
<SAY-TREES>
<TELL ,PERIOD>)>
<MENTION-GLYPH?>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERING>
<COND (<IS? ,XTREES ,SEEN>
<SETG P-THEM-OBJECT ,XTREES>)>
<COND (<GLOBAL-IN? ,FOREST-EDGE ,GLYPH>
<SETG P-IT-OBJECT ,GLYPH>)>
<RFALSE>)
(<EQUAL? .CONTEXT ,M-EXIT>
<COND (<NOT <IS? ,XTREES ,TOUCHED>>
<SEE-XTREES>
<RFATAL>)>
<COND (<EQUAL? ,P-WALK-DIR ,P?UP>
<SETG P-WALK-DIR ,P?WEST>)>
<COND (<EQUAL? ,P-WALK-DIR ,P?DOWN>
<SETG P-WALK-DIR ,P?NORTH>)>
<COND (<EQUAL? ,P-WALK-DIR ,P?NORTH>
<COND (<T? ,LAVA-TIMER>
<TELL
"Volcanic heat singes your eyebrows as you race down the mountainside." CR>
<RTRUE>)>
<TELL "You stride down into the village">
<BYE-BFLY>
<RTRUE>)
(<NOT <EQUAL? ,P-WALK-DIR ,P?WEST>>
<RFALSE>)
(<T? ,LAVA-TIMER>
<CASCADE "approach">
<RFATAL>)>
<TELL CTHE ,XTREES " shuffle ">
<COND (<T? ,MAGMA-TIMER>
<TELL "impotently at the lava's edge">)
(<AND <IN? ,BFLY ,PLAYER>
<IS? ,BFLY ,MUNGED>
<IS? ,BFLY ,LIVING>>
<TELL "nervously out of your way">)
(T
<MAKE ,XTREES ,SEEN>
<TELL
"across the upward trail, blocking it completely." CR>
<RFATAL>)>
<TELL " as you ascend the slope">
<BYE-BFLY>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE BYE-BFLY ()
<COND (<AND <IN? ,BFLY ,HERE>
<IS? ,BFLY ,MUNGED>
<IS? ,BFLY ,LIVING>>
<REMOVE ,BFLY>
<DEQUEUE ,I-PILLAR>
<TELL "; behind you, " THE ,BFLY " crawls out of sight">)>
<PRINT ,PERIOD>
<RTRUE>>
<ROUTINE SEE-XTREES ()
<MAKE ,XTREES ,TOUCHED>
<MAKE ,XTREES ,SEEN>
<WINDOW ,SHOWING-ROOM>
<SETG P-THEM-OBJECT ,XTREES>
<SETG P-WALK-DIR <>>
<SETG OLD-HERE <>>
<MOVE ,ORNAMENT ,HERE>
<SETG P-IT-OBJECT ,ORNAMENT>
<QUEUE ,I-XTREES>
<ITALICIZE "Bonk">
<TELL "! Something hard hits the back of " 'HEAD
" and rolls to your feet." CR>
<BMODE-ON>
<UPDATE-STAT -5 ,ENDURANCE>
<TELL ,TAB
"A strange chorus of humming rises from the forest as you rub " 'HEAD
". It takes a few moments for you to recall the familiar melody: \""
<PICK-NEXT ,CAROLS> "!\"" CR>
<RFALSE>>
<ROUTINE SAY-TREES ()
<COND (<IS? ,XTREES ,TOUCHED>
<TELL 'XTREES>)
(T
<TELL B ,W?TREES>)>
<RTRUE>>
<ROUTINE MENTION-GLYPH? ("AUX" X)
<COND (<GLOBAL-IN? ,HERE ,GLYPH>
<TELL ,TAB CA ,GLYPH " is inscribed in the ">
<COND (<GLOBAL-IN? ,HERE ,SNOW>
<TELL B ,W?SNOW>)
(<ZERO? ,MAGMA-TIMER>
<TELL "hardened crust">)
(T
<GLOW-COLOR>
<TELL B ,W?LAVA>)>
<TELL " at your feet." CR>)>
<RTRUE>>
<OBJECT ON-TRAIL
(LOC ROOMS)
(DESC "Mountain Trail")
(FLAGS LIGHTED LOCATION)
(EAST <TO FOREST-EDGE>)
(DOWN <TO FOREST-EDGE>)
(SOUTH <THRU CABIN-DOOR IN-CABIN>)
(IN <THRU CABIN-DOOR IN-CABIN>)
(WEST <TO ON-PEAK>)
(UP <TO ON-PEAK>)
(EXIT-STR "Steep rock walls block your path.")
(GLOBAL SNOW NULL TRAIL)
(FNUM OTHRIFF)
(ACTION ON-TRAIL-F)>
<ROUTINE ON-TRAIL-F ("OPT" (CONTEXT <>) "AUX" (W 0) (LV 0))
<COND (<AND <IN? ,WIGHT ,ON-TRAIL>
<IS? ,WIGHT ,MONSTER>>
<INC W>)>
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<SET LV <GLOBAL-IN? ,ON-TRAIL ,LAVA>>
<TELL "This ">
<COND (<T? .LV>
<TELL
"high trail has been consumed by an avalanche of ">
<COND (<T? ,MAGMA-TIMER>
<GLOW-COLOR>)>
<TELL 'LAVA>
<COND (<ZERO? ,MAGMA-TIMER>
<TELL ", still steaming in the frosty air">)>)
(T
<TELL
"snowbound trail commands a superb view of the surrounding countryside. Maybe you could enjoy the sights if ">
<COND (<ZERO? ,LAVA-TIMER>
<TELL "your teeth would stop chatter">)
(T
<TELL THE ,GROUND " would stop shak">)>
<TELL "ing">)>
<COND (<IS? ,FOREST-EDGE ,MUNGED>
<TELL ". The downward path is hopelessly choked with "
'XTREES>)>
<PRINT ,PERIOD>
<COND (<ZERO? .LV>
<TELL ,TAB CA ,CABIN
" hugs the south side of the trail">
<COND (<IS? ,CABIN-DOOR ,OPENED>
<TELL
", its front door banging open and shut in the wind">)>
<TELL ". Before it stands a">
<COND (<IS? ,MAILBOX ,OPENED>
<TELL "n open ">)
(T
<TELL " closed ">)>
<TELL 'MAILBOX ,PERIOD>)>
<MENTION-GLYPH?>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERING>
<COND (<GLOBAL-IN? ,ON-TRAIL ,GLYPH>
<SETG P-IT-OBJECT ,GLYPH>)>
<COND (<T? .W>
<SETG P-IT-OBJECT ,WIGHT>
<SETG LAST-MONSTER ,WIGHT>
<SETG LAST-MONSTER-DIR ,P?EAST>
<QUEUE ,I-WIGHT>)>
<RFALSE>)
(<EQUAL? .CONTEXT ,M-EXIT>
<COND (<EQUAL? ,P-WALK-DIR ,P?DOWN>
<SETG P-WALK-DIR ,P?EAST>)
(<EQUAL? ,P-WALK-DIR ,P?UP>
<SETG P-WALK-DIR ,P?WEST>)
(<EQUAL? ,P-WALK-DIR ,P?IN>
<SETG P-WALK-DIR ,P?SOUTH>)>
<COND (<EQUAL? ,P-WALK-DIR ,P?WEST>
<COND (<T? ,LAVA-TIMER>
<CASCADE "you approach">
<RFATAL>)
(<IN? ,WIGHT ,ON-TRAIL>
<COND (<NOT <IS? ,WIGHT ,MONSTER>>
<START-WIGHT>
<RFATAL>)>
<TELL CTHE ,WIGHT
" leaps into your path and snarls." CR>
<RFATAL>)>
<RFALSE>)
(<EQUAL? ,P-WALK-DIR ,P?SOUTH>
<COND (<NOT <IS? ,CABIN-DOOR ,OPENED>>
<RFALSE>)
(<AND <T? .W>
<NOT <IS? .W ,SLEEPING>>>
<SNARLS>)
(T
<TELL ,CYOU>)>
<DEQUEUE ,I-WIGHT>
<TELL "retreat into the shelter of "
THE ,CABIN>
<COND (<T? ,LAVA-TIMER>
<PRINT
", a cascade of lava hot on your heels">)>
<PRINT ,PERIOD>
<RTRUE>)
(<NOT <EQUAL? ,P-WALK-DIR ,P?EAST>>
<RFALSE>)
(<AND <T? .W>
<NOT <IS? ,WIGHT ,SLEEPING>>>
<SNARLS>)
(T
<TELL ,CYOU>)>
<DEQUEUE ,I-WIGHT>
<TELL "stumble down " THE ,TRAIL>
<COND (<T? ,LAVA-TIMER>
<PRINT ", a cascade of lava hot on your heels">
<PRINT ,PERIOD>
<RTRUE>)>
<BYE-BFLY>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE SNARLS ()
<TELL CTHE ,WIGHT " snarls a threat as you ">
<RTRUE>>
<OBJECT IN-CABIN
(LOC ROOMS)
(DESC "Laboratory")
(FLAGS LIGHTED LOCATION INDOORS)
(NORTH <THRU CABIN-DOOR ON-TRAIL>)
(OUT <THRU CABIN-DOOR ON-TRAIL>)
(IN <SORRY "You're in as far as you can go.">)
(GLOBAL CABIN CABIN-DOOR)
(FNUM OTHRIFF)
(ACTION IN-CABIN-F)>
<ROUTINE IN-CABIN-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"Whoever works in this isolated cabin ought to consider the services of a maid nymph. Retorts, alembics and other dubious " 'CHEMS " are spilled across "
THE ,BENCH " in the center of the room">
<MAKE ,CHEMS ,NODESC>
<COND (<SEE-ANYTHING-IN? ,BENCH>
<TELL ". You also see ">
<CONTENTS ,BENCH>
<TELL " lying amid the mess">)>
<UNMAKE ,CHEMS ,NODESC>
<PRINT ,PERIOD>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT ON-PEAK
(LOC ROOMS)
(DESC "Peak")
(FLAGS LIGHTED LOCATION)
(EAST <TO ON-TRAIL>)
(DOWN <TO ON-TRAIL>)
(UP <SORRY "You're up as high as you can go.">)
(EXIT-STR "You'd tumble off the peak if you went that way.")
(GLOBAL SNOW NULL TRAIL)
(FNUM OTHRIFF)
(ACTION ON-PEAK-F)>
<ROUTINE ON-PEAK-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL ,XTHE>
<COND (<GLOBAL-IN? ,ON-PEAK ,LAVA>
<COND (<T? ,MAGMA-TIMER>
<GLOW-COLOR>)>
<TELL "flow of lava">)
(T
<TELL "upward trail">)>
<TELL
" ends here, at the brink of " A ,CRATER ". ">
<COND (<IN? ,DOME ,ON-PEAK>
<TELL
"Most of the opening is hidden beneath " A ,DOME
" of light, at least a hundred yards across and almost as high." CR>)
(<T? ,LAVA-TIMER>
<TELL
"Molten lava is spewing out of the opening in a spectacular plume." CR>)
(T
<SAY-STEAM>)>
<MENTION-GLYPH?>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-EXIT>
<COND (<EQUAL? ,P-WALK-DIR ,P?DOWN>
<SETG P-WALK-DIR ,P?EAST>)>
<COND (<EQUAL? ,P-WALK-DIR ,P?EAST>
<COND (<T? ,LAVA-TIMER>
<TELL
"An onrushing tide of red-hot magma encourages your descent." CR>
<RTRUE>)>
<TELL "You stumble down the steep trail">
<BYE-BFLY>
<RTRUE>)>
<RFALSE>)
(T
<RFALSE>)>>
<ROUTINE SAY-STEAM ()
<TELL "Billowing clouds of steam obscure " THE ,CRATER
"'s interior." CR>
<RTRUE>>
<OBJECT AT-LEDGE
(LOC ROOMS)
(DESC "Ledge")
(FLAGS LIGHTED LOCATION)
(SW <TO COVESIDE 3>)
(WEST <SORRY "Sheer cliff walls block your path.">)
(NW <TO AT-BRINE 3>)
(EXIT-STR "You'd plummet into the sea if you went that way.")
(THINGS (SHORE ROAD HERE-F)
(ROCKY LEDGE HERE-F))
(FNUM OSHORE)
(GLOBAL GREAT-SEA NULL)
(ACTION AT-LEDGE-F)>
<ROUTINE AT-LEDGE-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"This narrow path curves along a rocky ledge overlooking the sea. You ">
<COND (<IS? ,CREVICE ,NODESC>
<TELL "press your back against ">
<PRINT "the sheer cliff wall">
<TELL ", trying">)
(T
<TELL "try">)>
<TELL
" not to hear the waves crashing on the rocks, far below">
<COND (<NOT <IS? ,CREVICE ,NODESC>>
<SETG P-IT-OBJECT ,CREVICE>
<TELL ,PTAB CA ,CREVICE " has been blasted into ">
<PRINT "the sheer cliff wall">)>
<PRINT ,PERIOD>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERING>
<COND (<NOT <IS? ,CREVICE ,NODESC>>
<SETG P-IT-OBJECT ,CREVICE>)>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT TOWER-BASE
(LOC ROOMS)
(DESC "Lighthouse")
(FLAGS LIGHTED LOCATION)
(EAST <SORRY "Sheer cliff walls block your path.">)
(EXIT-STR "Sheer cliff walls block your path.")
(UP <PER TOWER-BASE-UP 1>)
(FNUM OSHORE)
(GLOBAL TOWER TOWER-STEPS CREVICE)
(ACTION TOWER-BASE-F)>
<ROUTINE TOWER-BASE-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"An ancient " 'TOWER " stands upon this secret plateau, looming in dark silhouette against the sky. Crumbled steps lead up into its shadowy interior." CR>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT AT-BRINE
(LOC ROOMS)
(DESC "Tidal Flats")
(FLAGS LIGHTED LOCATION)
(NORTH <SORRY "You'd get soaked if you went that way.">)
(NE <TO IN-ACCARDI>)
(EAST <SORRY "You'd get soaked if you went that way.">)
(SE <TO AT-LEDGE 3>)
(NW <TO AT-BROOK 3>)
(ODOR BRINE)
(BELOW BRINE)
(EXIT-STR "Sheer cliff walls block your path.")
(THINGS (SHORE ROAD HERE-F))
(FNUM OSHORE)
(GLOBAL GREAT-SEA ACCARDI BRIDGE BROOK)
(ACTION AT-BRINE-F)>
<ROUTINE AT-BRINE-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<PRINT "The ocean smell is strong">
<TELL
" here, where a nameless brook meets the tidal flats of the Great Sea. One road follows the water inland; another spans a bridge to the northeast." CR>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT AT-BROOK
(LOC ROOMS)
(DESC "Babbling Brook")
(FLAGS LIGHTED LOCATION)
(NORTH <SORRY "You'd get soaked if you went that way.">)
(NE <SORRY "You'd get soaked if you went that way.">)
(SE <TO AT-BRINE 3>)
(WEST <PER AT-BROOK-WEST 9>)
(NW <SORRY "You'd get soaked if you went that way.">)
(EXIT-STR "A thick forest blocks your path.")
(THINGS (<> PATH HERE-F)
(<> FOOTPATH HERE-F))
(FNUM OACCARDI)
(GLOBAL BROOK)
(ACTION AT-BROOK-F)>
<ROUTINE AT-BROOK-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"A footpath emerges from the shadow of a forbidding forest, curving southwest along the edge of a brook." CR>
"Home of the most famous of all Enchanters' Guilds, Accardi is usually crowded with autograph seekers and hopeful young apprentices. But the crooked streets are oddly quiet today"
,PTAB CA ,WEAPON-SHOP " stands near " THE ,BRIDGE " leading out of town">
<COND (<IS? ,WEAPON-DOOR ,OPENED>
<TELL ". Its " 'WEAPON-DOOR " is wide open">)>
<PRINT ,PERIOD>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT IN-WEAPON
(LOC ROOMS)
(DESC "Weapon Shop")
(FLAGS LIGHTED LOCATION INDOORS)
(EAST <THRU WEAPON-DOOR IN-ACCARDI>)
(OUT <THRU WEAPON-DOOR IN-ACCARDI>)
(NORTH <PER ENTER-CURTAIN>)
(IN <PER ENTER-CURTAIN>)
(THIS-CASE WCASE)
(FNUM OACCARDI)
(GLOBAL WEAPON-DOOR WEAPON-SHOP ACCARDI)
(ACTION IN-WEAPON-F)>
<ROUTINE IN-WEAPON-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"Lethal instruments of iron and steel crowd every inch of this tiny establishment. The gleam of polished metal makes your fist clench with expensive fantasies of aggression" ,PTAB "Your attention comes to rest on a ">
<SHOP-DOOR ,WEAPON-DOOR>
<LOOK-ON-CASE ,ON-WCASE>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERING>
<GET-OWOMAN-AND-CURTAIN>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT AT-GATE
(LOC ROOMS)
(DESC "Outside Guild Hall")
(FLAGS LIGHTED LOCATION)
(NORTH <TO IN-HALL>)
(IN <TO IN-HALL>)
(WEST <TO IN-ACCARDI>)
(FNUM OACCARDI)
(GLOBAL GUILD-HALL ACCARDI NYMPH)
(ACTION AT-GATE-F)>
<ROUTINE NYMPH-SAYS ()
<TELL
"ear. \"There's no one here right now,\" she squeaks, \"so you'd better not">
<RTRUE>>
<ROUTINE AT-GATE-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"Before you stands the headquarters of The Accardi Chapter of the Guild of Enchanters, better known as \"The Circle.\" Its legendary membership and mighty deeds need no introduction." CR>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERED>
<COND (<IN? ,GRINDER ,AT-GATE>
<SEE-GRINDER>
<TELL ,TAB "\"Welcome back,\" coos " THE ,GRINDER
" with an evil grin." CR>
<RTRUE>)>
<RFALSE>)
(<EQUAL? .CONTEXT ,M-EXIT>
<COND (<ZERO? ,P-WALK-DIR>
<RFALSE>)
(<IN? ,GRINDER ,AT-GATE>
<COND (<EQUAL? ,P-WALK-DIR ,P?WEST>
<DEQUEUE ,I-GRINDER>
<TELL
"\"Coward!\" taunts " THE ,GRINDER " as you duck out of range." CR>
<RTRUE>)>
<TELL CTHE ,GRINDER
" steps into your path, laughing." CR>
<RFATAL>)
(<EQUAL? ,P-WALK-DIR ,P?NORTH ,P?IN>
<COND (<NOT <IS? ,NYMPH ,LIVING>>
<TELL
"You step unchallenged through the open gate." CR>
<RTRUE>)
(<IS? ,GRINDER ,NODESC>
<UNMAKE ,GRINDER ,NODESC>
<SETG GRTIMER 4>
<QUEUE ,I-GRINDER-APPEARS>)>
<COND (<IS? ,GUILD-HALL ,TOUCHED>
<TELL CTHE ,NYMPH
" promptly reappears. \"They're not back yet. Go away">)
(T
<TELL "A tiny " 'NYMPH
" appears, floating in the air beside your ">
<NYMPH-SAYS>
<TELL " come in">)>
<MAKE ,GUILD-HALL ,TOUCHED>
<PRINT ". Bye!\"| She disappears with a wink.|">
<RFATAL>)
(<EQUAL? ,P-WALK-DIR ,P?WEST>
<COND (<OR <IS? ,GRINDER ,NODESC>
<T? ,GRTIMER>>
<TELL "A">
<COND (<EQUAL? ,GRTIMER 1 2>
<TELL "nother">)>
<PRINT " noise makes you hesitate.|">
<COND (<IS? ,GRINDER ,NODESC>
<UNMAKE ,GRINDER ,NODESC>
<SETG GRTIMER 3>
<QUEUE ,I-GRINDER-APPEARS>)>
<I-GRINDER-APPEARS>
<RFATAL>)>)>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT IN-HALL
(LOC ROOMS)
(DESC "Lobby")
(FLAGS LIGHTED LOCATION INDOORS)
(SOUTH <TO AT-GATE>)
(OUT <TO AT-GATE>)
(FNUM OACCARDI)
(GLOBAL ACCARDI GUILD-HALL NYMPH)
(ACTION IN-HALL-F)>
<VOC "DISPEL" NOUN>
<VOC "DISPEL" ADJ>
<ROUTINE IN-HALL-F ("OPT" (CONTEXT <>) "AUX" OBJ)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL CTHE ,CEILING
" of this once-splendid chamber has collapsed, burying doors and stairwells under tons of debris. The elliptical scorches on the walls are unmistakable, even to a novice; but why would anyone fire magic missiles here, in the very midst of the Circle?" CR>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERING>
<COND (<NOT <IS? ,IN-HALL ,SEEN>>
<MAKE ,IN-HALL ,SEEN>
<SET OBJ <PICK-ONE ,WAND-LIST>>
<UNMAKE .OBJ ,NODESC>
<PUTP .OBJ ,P?ACTION ,DISPEL-WAND-F>
<PUTP .OBJ ,P?SDESC ,DESCRIBE-DISPEL-WAND>
<PUT <GETPT .OBJ ,P?SYNONYM> 0 ,W?DISPEL>
<PUT <GETPT .OBJ ,P?ADJECTIVE> 0 ,W?DISPEL>
<PUTP .OBJ ,P?DESCFCN ,DESCRIBE-HALL-WAND>
<MOVE .OBJ ,IN-HALL>)>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT LEVEL1A
(LOC ROOMS)
(DESC "Lighthouse, 1st Level")
(FLAGS LIGHTED LOCATION INDOORS)
(NORTH 0)
(NE 0)
(EAST 0)
(SE 0)
(SOUTH 0)
(SW 0)
(WEST 0)
(NW 0)
(UP <SORRY "There aren't any stairs leading up from here.">)
(DOWN <SAY-TO TOWER-BASE "You hurry down the steps.">)
(GLOBAL TOWER TOWER-STEPS DEBRIS)
(DNUM 0)
(FNUM OSHORE)
(ACTION LEVEL1A-F)>
<ROUTINE LEVEL1A-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"A welcome patch of daylight is visible at the bottom of the stairway." CR>
(DOWN <SAY-TO TOWER-TOP "You scramble down the steps.">)
(FNUM OSHORE)
(GLOBAL TOWER TOWER-STEPS DEBRIS)
(ACTION TOWER-TOP-F)>
<ROUTINE TOWER-TOP-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"Nothing remains of the stormproof panes that once enclosed this circular chamber on every side. The floor is littered with glass and debris">
<COND (<SEE-ANYTHING-IN? ,LAMPHOUSE>
<TELL ", in which you also see ">
<CONTENTS ,LAMPHOUSE>)>
<TELL ,PTAB "A flight of steps descends into shadow." CR>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERED>
<COND (<IN? ,DORN ,TOWER-TOP>
<SEE-CHARACTER ,DORN>)>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT AT-DOCK
(LOC ROOMS)
(DESC "Skyway Entrance")
(FLAGS LIGHTED LOCATION)
(EAST <TO IN-PORT>)
(EXIT-STR "Dense jungle blocks your path.")
(SEE-ALL JUNGLE)
(IN <PER ENTER-GONDOLA>)
(GLOBAL NULL DOCK JUNGLE)
(FNUM OMIZNIA)
(ACTION AT-DOCK-F)>
<ROUTINE ENTER-GONDOLA ()
<COND (<NOT <IN? ,GONDOLA ,AT-DOCK>>
<TELL CTHE ,DGONDOLA " isn't back yet." CR>
<RFALSE>)>
<PERFORM ,V?ENTER ,GONDOLA>
<RFALSE>>
<ROUTINE AT-DOCK-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"Aggressive ad campaigns and the deregulation of ZIFMIA spells have made Miznia's Jungle Skyway the fifth biggest tourist attraction in the Southlands. Passengers ">
<COND (<IN? ,GONDOLA ,HERE>
<TELL "are ">
<COND (<L? ,GON 2>
<TELL "streaming out of ">)
(T
<TELL "crowding for a space in ">)>
<TELL THE ,GONDOLA>
<COND (<NOT <IN? ,PLAYER ,GONDOLA>>
<TELL " docked nearby">)>
<TELL ,PERIOD>
<RTRUE>)>
<TELL "crowd around the entry gate, ">
<COND (<EQUAL? ,GON 4>
<TELL "watching a " 'GONDOLA
" glide away into the haze." CR>
<RTRUE>)>
<TELL "waiting for the ">
<COND (<EQUAL? ,GON 14>
<TELL 'GONDOLA " now ">
<PRINT "approaching from the south.|">
<RTRUE>)>
<TELL "next " 'GONDOLA " to appear." CR>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERING>
<COND (<NOT <IS? ,DGONDOLA ,SEEN>>
<MAKE ,DGONDOLA ,SEEN>
<QUEUE ,I-GONDOLA>)>
<COND (<IN? ,GONDOLA ,AT-DOCK>
<SETG P-IT-OBJECT ,GONDOLA>
<SEE-CHARACTER ,CONDUCTOR>)>
<MOVE ,PASSENGERS ,AT-DOCK>
<SETG P-THEM-OBJECT ,PASSENGERS>
<RFALSE>)
(<EQUAL? .CONTEXT ,M-EXIT>
<MOVE ,PASSENGERS ,GONDOLA>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT NW-UNDER
(LOC ROOMS)
(DESC "Support Tower")
(FLAGS LIGHTED LOCATION)
(SE <PER NW-UNDER-SE 1>)
(UP <TO NW-SUPPORT>)
(DOWN <SORRY "You're already at the bottom of the ladder.">)
(EXIT-STR "Dense jungle blocks your path.")
(OVERHEAD SUPPORT)
(SEE-ALL JUNGLE)
(ODOR JUNGLE)
(HEAR JUNGLE)
(GLOBAL NULL SUPPORT JUNGLE)
(FNUM OJUNGLE)
(ACTION UNDERS-F)>
<OBJECT SW-UNDER
(LOC ROOMS)
(DESC "Support Tower")
(FLAGS LIGHTED LOCATION)
(NE <PER SW-UNDER-NE 1>)
(UP <TO SW-SUPPORT>)
(DOWN <SORRY "You're already at the bottom of the ladder.">)
(EXIT-STR "Dense jungle blocks your path.")
(SEE-ALL JUNGLE)
(OVERHEAD SUPPORT)
(ODOR JUNGLE)
(HEAR JUNGLE)
(GLOBAL NULL SUPPORT JUNGLE)
(FNUM OJUNGLE)
(ACTION UNDERS-F)>
<OBJECT SE-UNDER
(LOC ROOMS)
(DESC "Support Tower")
(FLAGS LIGHTED LOCATION)
(NW <PER SE-UNDER-NW 1>)
(UP <TO SE-SUPPORT>)
(DOWN <SORRY "You're already at the bottom of the ladder.">)
(EXIT-STR "Dense jungle blocks your path.")
(SEE-ALL JUNGLE)
(OVERHEAD SUPPORT)
(ODOR JUNGLE)
(HEAR JUNGLE)
(GLOBAL NULL SUPPORT JUNGLE)
(FNUM OJUNGLE)
(ACTION UNDERS-F)>
<ROUTINE UNDERS-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"Steel girders rise high above the treetops of the surrounding jungle">
<COND (<GLOBAL-IN? ,HERE ,DGONDOLA>
<TELL ". Peering upward, you notice " A ,DGONDOLA
" gliding overhead">)>
<TELL ,PTAB "A skinny ladder leads upward." CR>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-EXIT>
<COND (<EQUAL? ,P-WALK-DIR ,P?UP>
<COND (<T? ,AUTO>
<BMODE-OFF>)>
<TELL "You scoot up the ladder." CR>
<RTRUE>)>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT NW-SUPPORT
(LOC ROOMS)
(DESC "top")
(SDESC DESCRIBE-TOPS)
(FLAGS LIGHTED LOCATION)
(DOWN <TO NW-UNDER>)
(UP <SORRY "You're up as high as you can go.">)
(IN <PER SUPPORTS-IN>)
(EXIT-STR "You'd fall off the platform if you went that way.")
(SEE-ALL JUNGLE)
(ODOR JUNGLE)
(HEAR JUNGLE)
(GLOBAL NULL SUPPORT PLATFORM JUNGLE)
(FNUM OJUNGLE)
(ACTION TOPS-F)>
<OBJECT SW-SUPPORT
(LOC ROOMS)
(DESC "top")
(SDESC DESCRIBE-TOPS)
(FLAGS LIGHTED LOCATION)
(DOWN <TO SW-UNDER>)
(UP <SORRY "You're up as high as you can go.">)
(IN <PER SUPPORTS-IN>)
(EXIT-STR "You'd fall off the platform if you went that way.")
(SEE-ALL JUNGLE)
(ODOR JUNGLE)
(HEAR JUNGLE)
(GLOBAL NULL SUPPORT PLATFORM JUNGLE)
(FNUM OJUNGLE)
(ACTION TOPS-F)>
<OBJECT SE-SUPPORT
(LOC ROOMS)
(DESC "top")
(SDESC DESCRIBE-TOPS)
(FLAGS LIGHTED LOCATION)
(DOWN <TO SE-UNDER>)
(UP <SORRY "You're up as high as you can go.">)
(IN <PER SUPPORTS-IN>)
(EXIT-STR "You'd fall off the platform if you went that way.")
(SEE-ALL JUNGLE)
(ODOR JUNGLE)
(HEAR JUNGLE)
(GLOBAL NULL SUPPORT PLATFORM JUNGLE)
(FNUM OJUNGLE)
(ACTION TOPS-F)>
<ROUTINE SUPPORTS-IN ()
<COND (<IN? ,PLAYER ,GONDOLA>
<PERFORM ,V?EXIT ,GONDOLA>
<RFALSE>)
(<IN? ,GONDOLA ,HERE>
<PERFORM ,V?ENTER ,GONDOLA>
<RFALSE>)
(<GLOBAL-IN? ,HERE ,DGONDOLA>
<PERFORM ,V?ENTER ,DGONDOLA>
<RFALSE>)>
<V-WALK-AROUND>
<RFALSE>>
<ROUTINE DESCRIBE-TOPS (OBJ)
<COND (<IN? ,PLAYER ,GONDOLA>
<TELL "Beside Tower">
<RTRUE>)>
<TELL "Maintenance Platform">
<RTRUE>>
<ROUTINE TOPS-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<COND (<IN? ,PLAYER ,GONDOLA>
<TELL ,CYOUR 'GONDOLA
" is passing a few feet away from a Skyway support tower. A small maintenance " 'PLATFORM " is enclosed within the steel girders; beside it, you notice a skinny ladder leading down towards the treetops." CR>
<RTRUE>)>
<TELL
"A spiderweb of structural steel rises above the treetops, tapering up to this narrow vantage near the top. The topmost rungs of a skinny ladder are within your reach." CR>
<COND (<OR <IN? ,GONDOLA ,HERE>
<GLOBAL-IN? ,HERE ,DGONDOLA>>
<TELL ,TAB CA ,DGONDOLA " is gliding ">
<COND (<IN? ,GONDOLA ,HERE>
<TELL "close by ">)
(<EQUAL? ,GON 11 8 5>
<TELL "towards ">)
(T
<TELL "away from ">)>
<TELL THE ,PLATFORM ,PERIOD>)>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERED>
<COND (<NOT <IS? ,DGONDOLA ,SEEN>>
<MAKE ,DGONDOLA ,SEEN>
<QUEUE ,I-GONDOLA>)>
<RFALSE>)
(<EQUAL? .CONTEXT ,M-EXIT>
<COND (<EQUAL? ,P-WALK-DIR ,P?DOWN>
<COND (<IN? ,PLAYER ,GONDOLA>
<YOUD-HAVE-TO "get out of" ,GONDOLA>
<RFATAL>)>
<TELL "You scramble down the ladder." CR>
<RTRUE>)>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT JUN0
(LOC ROOMS)
(DESC "Quicksand")
(FLAGS LIGHTED LOCATION)
(NORTH 0)
(NE 0)
(EAST 0)
(SE 0)
(SOUTH 0)
(SW 0)
(WEST 0)
(NW 0)
(DOWN <PER ENTER-QUICKSAND>)
(IN <PER ENTER-QUICKSAND>)
(EXIT-STR "Dense jungle blocks your path.")
(DNUM 0)
(BELOW QUICKSAND)
(SEE-ALL JUNGLE)
(HEAR JUNGLE)
(ODOR JUNGLE)
(GLOBAL JUNGLE)
(FNUM OJUNGLE)
(ACTION JUN0-F)>
<ROUTINE JUN0-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"A strip of dry path winds alongside a pool of " 'QUICKSAND>
<COND (<SEE-ANYTHING-IN? ,QUICKSAND>
<TELL ". " ,YOU-SEE>
<CONTENTS ,QUICKSAND>
<TELL " stuck into the wet, gritty surface">)>
<PRINT ,PERIOD>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERING>
<COND (<IS? ,MAMA ,NODESC>
<UNMAKE ,MAMA ,NODESC>
<QUEUE ,I-BABY>
<QUEUE ,I-MAMA>)>
<RFALSE>)
(<EQUAL? .CONTEXT ,M-EXIT>
<COND (<EQUAL? ,P-WALK-DIR <> ,P?UP>)
(<IN? ,BABY ,QUICKSAND>
<MAKE ,BABY ,SEEN>
<TELL CTHE ,BABY
" bellows mournfully as you walk away." CR>
<RTRUE>)>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT WORM-ROOM
(LOC ROOMS)
(DESC "Fungus")
(FLAGS LIGHTED LOCATION)
(NORTH 0)
(NE 0)
(EAST 0)
(SE 0)
(SOUTH 0)
(SW 0)
(WEST 0)
(NW 0)
(UP 0)
(DOWN 0)
(BELOW 0)
(IN 0)
(OUT 0)
(OVERHEAD 0)
(DNUM 0)
(SEE-ALL JUNGLE)
(HEAR JUNGLE)
(ODOR JUNGLE)
(GLOBAL JUNGLE)
(EXIT-STR "Dense jungle blocks your path.")
(FNUM OJUNGLE)
(ACTION WORM-ROOM-F)>
<ROUTINE WORM-ROOM-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL CTHE ,GROUND
" here is concealed beneath a growth of fungus, green and squishy." CR>
"A stone idol, carved in the likeness of a giant crocodile, stands in a clearing">
<COND (<SEE-ANYTHING-IN? ,MAW>
<TELL ". " ,YOU-SEE>
<CONTENTS ,MAW>
<TELL " in its gaping maw">)>
<TELL ,PERIOD>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE NOT-IN-MAW ()
<TELL "You're not in the maw." CR>
<RFALSE>>
<ROUTINE DESCRIBE-JD0 (OBJ)
<TELL "Underbrush">
<RTRUE>>
<ROUTINE JD0-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"Unseen creatures scurry out of your path as you struggle through the damp underbrush." CR>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE DESCRIBE-JD1 (OBJ)
<TELL "Birdcries">
<RTRUE>>
<ROUTINE JD1-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"The unnerving cries of exotic birds echo in the treetops." CR>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE DESCRIBE-JD2 (OBJ)
<TELL "Creepers">
<RTRUE>>
<ROUTINE JD2-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"A slimy tangle of vines and creepers dangles high overhead, swinging to and fro in the humid breeze." CR>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE DESCRIBE-JD3 (OBJ)
<TELL "Ferns">
<RTRUE>>
<ROUTINE JD3-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"A natural canopy of ferns mutes the sunlight to a cool, emerald dusk." CR>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT OVER-JUNGLE
(LOC ROOMS)
(DESC "Over Jungle")
(FLAGS LIGHTED LOCATION)
(SEE-ALL JUNGLE)
(BELOW JUNGLE)
(ODOR JUNGLE)
(HEAR JUNGLE)
(FNUM OJUNGLE)
(EXIT-STR "You'd plummet to your death if you went that way.")
(GLOBAL DOCK JUNGLE NULL)
(ACTION OVER-JUNGLE-F)>
<ROUTINE OVER-JUNGLE-F ("OPT" (CONTEXT <>) "AUX" X Y)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<SET X ,W?WEST>
<COND (<EQUAL? ,GON 7 8>
<SET X ,W?SOUTH>)
(<EQUAL? ,GON 10 11>
<SET X ,W?EAST>)
(<EQUAL? ,GON 13 14>
<SET X ,W?NORTH>)>
<TELL ,CYOUR 'GONDOLA " is gliding " B .X
", high over the lush jungles and sparkling rivers of Miznia. ">
<COND (<EQUAL? ,GON 4>
<RECEDING ,DOCK>
<RTRUE>)
(<EQUAL? ,GON 5>
<EMERGING ,SUPPORT>
<RTRUE>)
(<EQUAL? ,GON 8 11>
<EMERGING ,SUPPORT "Another ">
<RTRUE>)
(<EQUAL? ,GON 14>
<EMERGING ,DOCK>
<RTRUE>)>
<RECEDING ,SUPPORT>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE EMERGING (OBJ "OPT" X)
<COND (<ASSIGNED? X>
<TELL "Another ">)
(T
<TELL ,XTHE>)>
<TELL D .OBJ " is emerging from the haze ahead." CR>
<RTRUE>>
<ROUTINE RECEDING (OBJ)
<TELL CTHE .OBJ " is receding into the haze." CR>
<RTRUE>>
<OBJECT AT-FALLS
(LOC ROOMS)
(DESC "Waterfall")
(FLAGS LIGHTED LOCATION)
(NORTH <PER AT-FALLS-N 5>)
(SW <TO IN-THRIFF>)
(IN <PER ENTER-FALLS>)
(ODOR JUNGLE)
(HEAR WATERFALL)
(GLOBAL JUNGLE NULL)
(FNUM OJUNGLE)
(THINGS (<> LEDGE USELESS))
(ACTION AT-FALLS-F)>
<ROUTINE AT-FALLS-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"A dazzling cascade roars down from a ledge overhead, fed by the snowy peaks rising to the south">
<COND (<IS? ,IN-THRIFF ,MUNGED>
<TELL ". The trail leading " B ,W?SOUTHWEST
" is choked with " 'XTREES>)>
<PRINT ,PERIOD>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERING>
<COND (<EQUAL? ,P-WALK-DIR ,P?SOUTH>
<COND (<T? ,AUTO>
<BMODE-OFF>)>)>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT IN-PASTURE
(LOC ROOMS)
(DESC "Mountain Pasture")
(FLAGS LIGHTED LOCATION)
(SE <TO IN-THRIFF>)
(WEST <TO SE-WALL>)
(UP <PER CLIMB-A-TREE>)
(DOWN <PER EXIT-A-TREE>)
(THINGS (<> PASTURE HERE-F))
(OVERHEAD OAK)
(FNUM OTHRIFF)
(GLOBAL SNOW NULL NULL)
(ACTION IN-PASTURE-F)>
<ROUTINE IN-PASTURE-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"This windswept pasture is dotted with ancient oaks. A snowy trail winds upward">
<COND (<IS? ,IN-THRIFF ,MUNGED>
<TELL ", and a solid wall of " 'XTREES
" lies to the " B ,W?SOUTHEAST>)>
<TELL ,PERIOD>
<MENTION-GLYPH?>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERED>
<COND (<IN? ,HUNTERS ,IN-PASTURE>
<MAKE ,HUNTERS ,SEEN>
<SEE-CHARACTER ,HUNTERS>)>
<QUEUE ,I-HUNTERS>
<RFALSE>)
(<EQUAL? .CONTEXT ,M-EXIT>
<COND (<AND <IN? ,MINX ,OAK>
<IS? ,MINX ,LIVING>>
<TELL "A loud voice makes you hesitate." CR>
<RFATAL>)>
<DEQUEUE ,I-HUNTERS>
<COND (<EQUAL? ,P-WALK-DIR ,P?UP>
<SETG P-WALK-DIR ,P?WEST>)>
<COND (<IN? ,HUNTER ,IN-PASTURE>
<ABORT-HUNT>
<TELL CTHE ,HUNTER " watches you leave." CR>
<RTRUE>)>
<RFALSE>)
(<EQUAL? .CONTEXT ,M-END>
<COND (<NOT <IN? ,HUNTER ,IN-PASTURE>>)
(<NOT <EQUAL? ,WINNER ,PLAYER>>)
(<VERB? LISTEN SMELL>)
(<AND <VERB? ASK-ABOUT ASK-FOR TELL-ABOUT>
<PRSI? OAK MINX >>)
(<EQUAL? ,OAK ,PRSO ,PRSI>
<DRAW-ATTENTION-TO ,OAK>
<RTRUE>)
(<EQUAL? ,MINX ,PRSO ,PRSI>
<DRAW-ATTENTION-TO ,MINX>
<RTRUE>)>
<RFALSE>)
(T
<RFALSE>)>>
<ROUTINE DRAW-ATTENTION-TO (OBJ)
<TELL ,TAB "Your action draws " THE ,HUNTER
"'s attention to " THE .OBJ ,PERIOD>
<HUNTER-SEES-MINX>
<RTRUE>>
<ROUTINE HUNTER-SEES-MINX ()
<ABORT-HUNT>
<TELL ,TAB
"\"Aha!\" he cries, plucking the minx out from behind the oak by the scruff of her neck. \"Thought ye'd get away from me, did ye? It's back home I'll be bringin' you, for a whippin' ye won't soon forget!\"|
The last thing you hear is a tearful cry of \"Minx!\" as " THE ,HUNTER
" stalks away with his quarry." CR>
<RTRUE>>
<ROUTINE ABORT-HUNT ()
<DEQUEUE ,I-HUNT>
<REMOVE ,HUNTER>
<SETG P-HIM-OBJECT ,NOT-HERE-OBJECT>
<REMOVE ,MINX>
<SETG P-HER-OBJECT ,NOT-HERE-OBJECT>
<SETG QCONTEXT <>>
<SETG QCONTEXT-ROOM <>>
<WINDOW ,SHOWING-ROOM>
<RFALSE>>
<OBJECT SE-WALL
(LOC ROOMS)
(DESC "Rock Wall")
(FLAGS LIGHTED LOCATION)
(EAST <TO IN-PASTURE>)
(SOUTH <SORRY "The rock wall blocks your path.">)
(NW <PER CANT-ENTER-WALL>)
(IN <PER CANT-ENTER-WALL>)
(WEST <SORRY "The rock wall blocks your path.">)
(DOWN <TO IN-PASTURE>)
(GLOBAL SWALL CASTLE SNOW NULL)
(FNUM OTHRIFF)
(ACTION SE-WALL-F)>
<ROUTINE CANT-ENTER-WALL ("AUX" X)
<COND (<EQUAL? ,P-WALK-DIR ,P?IN ,P?OUT>
<TELL ,CANT "see anywhere to go ">
<SET X ,W?OUT>
<COND (<EQUAL? ,P-WALK-DIR <> ,P?IN>
<SET X ,W?IN>)>
<TELL B .X ,PERIOD>
<RFALSE>)>
<SET X <GETP ,HERE ,P?EXIT-STR>>
<COND (<T? .X>
<TELL .X CR>
<RFALSE>)>
<PRINT "The rock wall blocks your path.">
<CRLF>
<RFALSE>>
<ROUTINE SE-WALL-F ("OPT" (CONTEXT <>) "AUX" X)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"A sunlit wall of stone rises above the snow-dusted ground. Gazing farther up the mountainside, you see the parapets of a mighty " 'CASTLE ,PERIOD>
<COND (<IS? ,SWALL ,SEEN>
<TELL ,TAB>
<SEE-DOORLIKE ,SWALL>
<TELL "wall." CR>)>
<MENTION-GLYPH?>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERED>
<COND (<IS? ,SWALL ,SEEN>
<SETG P-IT-OBJECT ,SWALL>)>
<RFALSE>)
(<EQUAL? .CONTEXT ,M-EXIT>
<COND (<AND <EQUAL? ,P-WALK-DIR ,P?IN>
<IS? ,SWALL ,OPENED>>
<SETG P-WALK-DIR ,P?NW>)>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT SE-CAVE
(LOC ROOMS)
(DESC "foo")
(SDESC DESCRIBE-CAVES)
(FLAGS LOCATION INDOORS)
(SE <PER CANT-ENTER-WALL>)
(OUT <PER CANT-ENTER-WALL>)
(SW <TO CAVE7>)
(IN 0)
(FNUM OCAVES)
(EXIT-STR "A cold, hard wall blocks your path.")
(MIRROR-OBJ NO-MIRROR)
(BEAM-DIR NO-MIRROR)
(GLOBAL SWALL SUNBEAM)
(ACTION SE-CAVE-F)>
<ROUTINE SE-CAVE-F ("OPT" (CONTEXT <>) "AUX" X)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<NOTE-WALL ,SWALL ,W?SOUTHEAST>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERING>
<COND (<IN? ,GRUE ,HERE>
<REMOVE ,GRUE>)>
<COND (<IS? ,SE-CAVE ,SEEN>)
(<NOT <SETUP-CAVES?>>
<RFATAL>)>
<RFALSE>)
(<EQUAL? .CONTEXT ,M-ENTERED>
<COND (<IS? ,SWALL ,SEEN>
<SETG P-IT-OBJECT ,SWALL>)>
<COND (<IS? ,LANTERN ,LIGHTED>
<NO-LANTERN-HERE?>)>
<RFALSE>)
(T
<RFALSE>)>>
<ROUTINE CHUCKLE ()
<TELL ,TAB>
<COND (<HERE? IN-LAIR>
<MAKE ,URGRUE ,SEEN>
<TELL "\"Heh, heh, heh,\" chuckles " THE ,URGRUE ,PERIOD>
<RTRUE>)>
<TELL "An evil chuckle echoes through the caverns." CR>
<RTRUE>>
<ROUTINE NOTE-WALL (OBJ WRD)
<TELL "This ">
<COND (<NOT <IS? .OBJ ,OPENED>>
<TELL "dead-end ">)>
<TELL "passage grows wider as it bends " B .WRD
", ending at a flat wall of rock">
<COND (<IS? .OBJ ,SEEN>
<TELL ". ">
<COND (<IS? .OBJ ,OPENED>
<TELL "Daylight ">
<COND (<HERE? SE-CAVE>
<TELL "streams in from ">)
(T
<TELL "can be seen beyond ">)>
<TELL "an " B ,W?OPENING>)
(T
<PRINT "A doorlike ">
<TELL B ,W?OUTLINE " is visible">)>
<TELL " therein">)>
<PRINT ,PERIOD>
<RTRUE>>
<OBJECT NE-CAVE
(LOC ROOMS)
(DESC "foo")
(SDESC DESCRIBE-CAVES)
(FLAGS LOCATION INDOORS)
(NW <PER CANT-ENTER-WALL>)
(OUT <PER CANT-ENTER-WALL>)
(SW 0)
(IN 0)
(FNUM OCAVES)
(MIRROR-OBJ NO-MIRROR)
(BEAM-DIR NO-MIRROR)
(GLOBAL NWALL SUNBEAM)
(EXIT-STR "A cold, hard wall blocks your path.")
(ACTION NE-CAVE-F)>
<ROUTINE NE-CAVE-F ("OPT" (CONTEXT <>) "AUX" X)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<NOTE-WALL ,NWALL ,W?NORTHWEST>
<MENTION-BEAM?>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERING>
<COND (<IN? ,GRUE ,HERE>
<REMOVE ,GRUE>)>
<COND (<IS? ,NE-CAVE ,SEEN>)
(<NOT <SETUP-CAVES?>>
<RFATAL>)>
<RFALSE>)
(<EQUAL? .CONTEXT ,M-ENTERED>
<COND (<IS? ,NWALL ,SEEN>
<SETG P-IT-OBJECT ,NWALL>)>
<COND (<IS? ,LANTERN ,LIGHTED>
<NO-LANTERN-HERE?>)>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT NE-WALL
(LOC ROOMS)
(DESC "Shady Wall")
(FLAGS LIGHTED LOCATION)
(EAST <SORRY "The rock wall blocks your path.">)
(SE <PER CANT-ENTER-WALL>)
(IN <PER CANT-ENTER-WALL>)
(SOUTH <SORRY "The rock wall blocks your path.">)
(NE <TO XROADS>)
(GLOBAL NULL NWALL CASTLE)
(FNUM OXROADS)
(ACTION NE-WALL-F)>
<ROUTINE NE-WALL-F ("OPT" (CONTEXT <>) "AUX" X)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"The air is cool here, beneath the shadow of a towering wall of rock">
<COND (<IS? ,NWALL ,SEEN>
<TELL ". ">
<SEE-DOORLIKE ,NWALL>
<TELL B ,W?WALL>)>
<TELL ,PERIOD>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERED>
<COND (<IS? ,NWALL ,SEEN>
<SETG P-IT-OBJECT ,NWALL>)>
<RFALSE>)
(<EQUAL? .CONTEXT ,M-EXIT>
<COND (<AND <EQUAL? ,P-WALK-DIR ,P?IN>
<IS? ,NWALL ,OPENED>>
<SETG P-WALK-DIR ,P?SE>)>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT CAVE0
(LOC ROOMS)
(DESC "foo")
(SDESC DESCRIBE-CAVES)
(FLAGS LOCATION INDOORS)
(NE 0)
(SE 0)
(SW 0)
(NW 0)
(DNUM 0)
(FNUM OCAVES)
(MIRROR-OBJ NO-MIRROR)
(BEAM-DIR NO-MIRROR)
(GLOBAL SUNBEAM)
(ACTION CAVE0-F)>
<ROUTINE CAVE0-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"Cold, clammy walls of rock recede deep into the shadows." CR>)>
<RETURN <MOVE-GRUE? .CONTEXT>>>
<OBJECT CAVE1
(LOC ROOMS)
(DESC "foo")
(SDESC DESCRIBE-CAVES)
(FLAGS LOCATION INDOORS)
(NE 0)
(SE 0)
(SW 0)
(NW 0)
(DNUM 0)
(FNUM OCAVES)
(MIRROR-OBJ NO-MIRROR)
(BEAM-DIR NO-MIRROR)
(GLOBAL SUNBEAM)
(ACTION CAVE1-F)>
<ROUTINE CAVE1-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"The steady drip of invisible moisture echoes in the passageway." CR>)>
<RETURN <MOVE-GRUE? .CONTEXT>>>
<OBJECT CAVE2
(LOC ROOMS)
(DESC "foo")
(SDESC DESCRIBE-CAVES)
(FLAGS LOCATION INDOORS)
(NE 0)
(SE 0)
(SW 0)
(NW 0)
(DNUM 0)
(FNUM OCAVES)
(MIRROR-OBJ NO-MIRROR)
(BEAM-DIR NO-MIRROR)
(GLOBAL SUNBEAM)
(ACTION CAVE2-F)>
<ROUTINE CAVE2-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"The air here is pungent with subterranean vapors." CR>)>
<RETURN <MOVE-GRUE? .CONTEXT>>>
<OBJECT CAVE3
(LOC ROOMS)
(DESC "foo")
(SDESC DESCRIBE-CAVES)
(FLAGS LOCATION INDOORS)
(NE 0)
(SE 0)
(SW 0)
(NW 0)
(DNUM 0)
(FNUM OCAVES)
(MIRROR-OBJ NO-MIRROR)
(BEAM-DIR NO-MIRROR)
(GLOBAL SUNBEAM)
(ACTION CAVE3-F)>
<ROUTINE CAVE3-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"Ebony walls of rock deepen the shadows on every side." CR>)>
<RETURN <MOVE-GRUE? .CONTEXT>>>
<OBJECT CAVE4
(LOC ROOMS)
(DESC "foo")
(SDESC DESCRIBE-CAVES)
(FLAGS LOCATION INDOORS)
(NE 0)
(SE 0)
(SW 0)
(NW 0)
(DNUM 0)
(FNUM OCAVES)
(MIRROR-OBJ NO-MIRROR)
(BEAM-DIR NO-MIRROR)
(GLOBAL SUNBEAM)
(ACTION CAVE4-F)>
<ROUTINE CAVE4-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"Only a few feet separate the walls of this stultifying passage." CR>)>
<RETURN <MOVE-GRUE? .CONTEXT>>>
<OBJECT CAVE6
(LOC ROOMS)
(DESC "foo")
(SDESC DESCRIBE-CAVES)
(FLAGS LOCATION INDOORS)
(NE 0)
(SE 0)
(SW 0)
(NW 0)
(DNUM 0)
(FNUM OCAVES)
(MIRROR-OBJ NO-MIRROR)
(BEAM-DIR NO-MIRROR)
(GLOBAL SUNBEAM)
(ACTION CAVE6-F)>
<ROUTINE CAVE6-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"The close, stale air in this chamber makes breathing difficult." CR>)>
<RETURN <MOVE-GRUE? .CONTEXT>>>
<OBJECT CAVE7
(LOC ROOMS)
(DESC "foo")
(SDESC DESCRIBE-CAVES)
(FLAGS LOCATION INDOORS)
(NE <TO SE-CAVE>)
(NW 0)
(IN 0)
(OUT <TO SE-CAVE>)
(FNUM OCAVES)
(MIRROR-OBJ NO-MIRROR)
(BEAM-DIR NO-MIRROR)
(GLOBAL SUNBEAM)
(ACTION CAVE7-F)>
<ROUTINE CAVE7-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"The walls of this shallow chamber are coated with a thick blanket of moss, fed by unseen trickles of water." CR>)>
<TELL "shines in from the " B <GET ,DIR-NAMES .DIR>>
<SET DIR <+ .DIR 4>>
<COND (<G? .DIR ,I-NW>
<SET DIR <- .DIR 8>>)>
<SET TBL <GETP ,HERE <GETB ,PDIR-LIST .DIR>>>
<COND (<ZERO? .TBL>)
(<EQUAL? <MSB <GET .TBL ,XTYPE>> ,CONNECT>
<TELL ", and disappears to the "
B <GET ,DIR-NAMES .DIR>>)>
<TELL ,PERIOD>
<RTRUE>)>
<RFALSE>>
<OBJECT ON-PIKE
(LOC ROOMS)
(DESC "Edge of Storms")
(FLAGS LIGHTED LOCATION)
(SE <TO HILLTOP>)
(WEST <PER ENTER-PLAIN-E 13>)
(GLOBAL PRAIRIE)
(FNUM OGRUBBO)
(THINGS (<> BILLBOARD BILLBOARD-PSEUDO)
(BILL BOARD BILLBOARD-PSEUDO)
(<> SIGN BILLBOARD-PSEUDO)
(<> NOTICE BILLBOARD-PSEUDO))
(ACTION ON-PIKE-F)>
<ROUTINE ON-PIKE-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<SEE-FIELDS ,W?WEST>
<TELL ,PTAB "A billboard stands in a " 'WEEDS>
<COND (<SEE-ANYTHING-IN? ,WEEDS>
<TELL ". Around it you see ">
<CONTENTS ,WEEDS>)>
<PRINT ,PERIOD>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-EXIT>
<COND (<NOT <EQUAL? ,P-WALK-DIR ,P?WEST>>
<RFALSE>)>
<RETURN <ENTER-PLAIN?>>)
(T
<RFALSE>)>>
<OBJECT XROADS
(LOC ROOMS)
(DESC "Intersection")
(FLAGS LIGHTED LOCATION)
(NORTH <TO IN-GURTH>)
(SE <TO IN-PORT 11>)
(SW <TO NE-WALL>)
(EAST <PER ENTER-PLAIN-W 13>)
(GLOBAL PRAIRIE GURTH)
(FNUM OXROADS)
(ACTION XROADS-F)>
<ROUTINE XROADS-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<SEE-FIELDS ,W?EAST>
<TELL
". But the snow-capped peaks of Southern Mithicus are bright with sunshine"
,PTAB "The outskirts of Gurth City">
<PRINT " can be seen not far to the north.|">
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERING>
<COND (<EQUAL? ,P-WALK-DIR ,P?WEST>
<COND (<T? ,AUTO>
<BMODE-OFF>)>)>
<RFALSE>)
(<EQUAL? .CONTEXT ,M-EXIT>
<COND (<EQUAL? ,P-WALK-DIR ,P?EAST>
<RETURN <ENTER-PLAIN?>>)
(<EQUAL? ,P-WALK-DIR ,P?NORTH>
<ENTER-CITY>
<RTRUE>)>
<RFALSE>)
(T
<RFALSE>)>>
<ROUTINE ENTER-CITY ()
<TELL <PICK-NEXT ,CITY-ENTRIES>
" as you cross the city limits." CR>
<RTRUE>>
<ROUTINE SEE-FIELDS (WRD)
<TELL "Gray fields extend to the " B .WRD>
<PRINT " as far as you can see">
<TELL ", under ">
<PRINT "a sky black with thunderclouds">
<RTRUE>>
<ROUTINE ENTER-PLAIN? ("AUX" X Y L LL)
<SET L <LOC ,GOBLET>>
<KERBLAM>
<TELL "Forks of " B ,W?LIGHTNING
" dance across your path">
<COND (<NOT <IS? ,ROSE-ROOM ,LOCATION>>
<TELL ", and the clouds boom with laughter">)>
<COND (<OR <EQUAL? .L ,PLAYER>
<AND <T? .L>
<IN? .L ,PLAYER>
<SEE-INSIDE? .L>>>
<COND (<IS? ,ROSE-ROOM ,LOCATION>
<TELL ", answered by " THE ,GOBLET>
<COND (<NOT <EQUAL? .L ,PLAYER>>
<ON-IN .L>)>)
(T
<TELL ". But " THE ,GOBLET>
<COND (<NOT <EQUAL? .L ,PLAYER>>
<ON-IN .L>)>
<TELL
" emits an answering flash, and the threat from the sky subsides">)>
<TELL ,PTAB>)
(T
<MAKE ,IMPS ,MUNGED>
<TELL ,PERIOD>
<RFATAL>)>
<SET L <LOC ,MINX>>
<COND (<AND <T? .L>
<IS? ,MINX ,LIVING>>
<SET LL <LOC .L>>
<COND (<EQUAL? ,PLAYER .L .LL>
<MOVE ,MINX ,HERE>
<TELL CTHE ,MINX " struggles out of ">
<COND (<EQUAL? .L ,PLAYER>
<TELL "your arms">)
(T
<TELL THE .L>)>
<TELL " and">
<PRINT " cowers at the field's edge.| ">)
(<EQUAL? ,HERE .L>
<TELL CTHE ,MINX>
<PRINT " cowers at the field's edge.| ">)>)>
<MAKE ,CORBIES ,SEEN>
<QUEUE ,I-CORBIES>
<COND (<NOT <IS? ,ROSE-ROOM ,LOCATION>>
<MAKE ,ROSE-ROOM ,LOCATION>
<TELL "As you set out across " THE ,PRAIRIE
", the colors around you seem to smudge and fade. Soon the entire landscape is rendered in shades of gray." CR>
<RTRUE>)>
<TELL "All color drains from the landscape." CR>
<RTRUE>>
<GLOBAL PLAIN-COUNT:NUMBER 6>
<ROUTINE PLAIN-CONTEXT? (CONTEXT "AUX" TBL X)
<COND (<EQUAL? .CONTEXT ,M-ENTERING>
<COND (<NOT <IS? ,HERE ,TOUCHED>>
<COND (<DLESS? PLAIN-COUNT 1>
<SETG FARM-ROOM ,HERE>
<NEW-EXIT? ,FARM-ROOM ,P?SOUTH ,SORRY-EXIT
"The ground is a bit too rough that way." <>>
<COND (<NOT <IS? ,FARMHOUSE ,NODESC>>
<DROP-FARM>)>)
(<EQUAL? ,PLAIN-COUNT 5>
<MOVE ,SCARE1 ,HERE>)
(<EQUAL? ,PLAIN-COUNT 4>
<MOVE ,CLOVER ,HERE>)
(<EQUAL? ,PLAIN-COUNT 3>
<MOVE ,SCARE2 ,HERE>)
(<EQUAL? ,PLAIN-COUNT 2>
<NEXT-SCROLL? ,DESCRIBE-PLAIN-SCROLL ,HERE>)
(<EQUAL? ,PLAIN-COUNT 1>
<MOVE ,SCARE3 ,HERE>)>)>
<MAKE ,CORBIES ,SEEN>
<COND (<IS? ,FARMHOUSE ,SEEN>)
(<IS? ,FARMHOUSE ,NODESC>)
(<HERE? FARM-ROOM>
<SETG STORM-TIMER 5>
<QUEUE ,I-TWISTER>)>
<RFALSE>)
(<EQUAL? .CONTEXT ,M-EXIT>
<COND (<IS? ,FARMHOUSE ,SEEN>)
(<IS? ,FARMHOUSE ,NODESC>)
(<HERE? FARM-ROOM>
<COND (<EQUAL? ,STORM-TIMER 3>
<TELL "A sudden">
<PRINT " noise makes you hesitate.|">
<RFATAL>)
(<EQUAL? ,P-WALK-DIR ,P?SOUTH ,P?IN>
<COND (<IN? ,TWISTER ,HERE>
<MOVE ,TWISTER ,IN-FARM>
<TELL
"You fight your way through the rising gale." CR>
<RTRUE>)>
<RFALSE>)
(<EQUAL? ,STORM-TIMER 0 4 5>
<SETG STORM-TIMER 0>
<DEQUEUE ,I-TWISTER>)
(T
<SETG P-WALK-DIR <>>
<TELL
"The rising gale makes it impossible to walk that way." CR>
<RFATAL>)>)>
<COND (<IS? ,HERE ,SEEN>)
(<OR <AND <EQUAL? ,P-WALK-DIR ,P?WEST>
<HERE? WEST-EXIT>>
<AND <EQUAL? ,P-WALK-DIR ,P?EAST>
<HERE? EAST-EXIT>>>
<TELL "Color slowly returns to the landscape." CR>
<RTRUE>)>
<COND (<NOT <EQUAL? ,P-WALK-DIR ,P?NORTH>>
<RFALSE>)>
<SET X <GETP ,HERE ,P-WALK-DIR>>
<COND (<ZERO? .X>
<RFALSE>)
(<NOT <EQUAL? <GET .X ,XROOM> ,ROSE-ROOM>>
<RFALSE>)
(<AND <T? ,BADKEY>
<IN? ,BADKEY ,PLAYER>>
<TELL "Screeching with fear, " THE ,CORBIES
" swoop out of your way." CR>
<RTRUE>)>
<TELL "A screeching wall of corbies blocks the way." CR>
<RFATAL>)
(T
<RFALSE>)>>
<GLOBAL WEST-EXIT:OBJECT <>>
<GLOBAL EAST-EXIT:OBJECT <>>
<GLOBAL FARM-ROOM:OBJECT <>>
<OBJECT PLAIN0
(LOC ROOMS)
(DESC "foo")
(SDESC DESCRIBE-FROTZEN)
(FLAGS LIGHTED LOCATION)
(NORTH 0)
(NE 0)
(EAST 0)
(SE 0)
(SOUTH 0)
(SW 0)
(WEST 0)
(NW 0)
(IN 0)
(EXIT-STR "The ground is a bit too rough that way.")
(DNUM 0)
(FNUM OPLAIN)
(GLOBAL NULL NULL PRAIRIE STORM CORBIES)
(ACTION PLAIN0-F)>
<ROUTINE PLAIN0-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"The landscape is mottled with rocky terrain and windswept tracts of g">
<GOLD-GRAY>
<TELL " grass">
<MENTION-CORBIES>
<RTRUE>)>
<RETURN <PLAIN-CONTEXT? .CONTEXT>>>
<OBJECT PLAIN1
(LOC ROOMS)
(DESC "foo")
(SDESC DESCRIBE-FROTZEN)
(FLAGS LIGHTED LOCATION)
(NORTH 0)
(NE 0)
(EAST 0)
(SE 0)
(SOUTH 0)
(SW 0)
(WEST 0)
(NW 0)
(IN 0)
(EXIT-STR "The ground is a bit too rough that way.")
(DNUM 0)
(FNUM OPLAIN)
(GLOBAL NULL NULL PRAIRIE STORM CORBIES)
(ACTION PLAIN1-F)>
<ROUTINE PLAIN1-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL "G">
<GOLD-GRAY>
<TELL
" hills of grass sweep back and forth in the storm-driven wind">
<MENTION-CORBIES>
<RTRUE>)>
<RETURN <PLAIN-CONTEXT? .CONTEXT>>>
<OBJECT PLAIN2
(LOC ROOMS)
(DESC "foo")
(SDESC DESCRIBE-FROTZEN)
(FLAGS LIGHTED LOCATION)
(NORTH 0)
(NE 0)
(EAST 0)
(SE 0)
(SOUTH 0)
(SW 0)
(WEST 0)
(NW 0)
(IN 0)
(EXIT-STR "The ground is a bit too rough that way.")
(DNUM 0)
(FNUM OPLAIN)
(GLOBAL NULL NULL PRAIRIE STORM CORBIES)
(ACTION PLAIN2-F)>
<ROUTINE PLAIN2-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"A sky black with thunderclouds looms over g">
<GOLD-GRAY>
<TELL " acres of windswept grass">
<MENTION-CORBIES>
<RTRUE>)>
<RETURN <PLAIN-CONTEXT? .CONTEXT>>>
<OBJECT PLAIN3
(LOC ROOMS)
(DESC "foo")
(SDESC DESCRIBE-FROTZEN)
(FLAGS LIGHTED LOCATION)
(NORTH 0)
(NE 0)
(EAST 0)
(SE 0)
(SOUTH 0)
(SW 0)
(WEST 0)
(NW 0)
(IN 0)
(EXIT-STR "The ground is a bit too rough that way.")
(DNUM 0)
(FNUM OPLAIN)
(GLOBAL NULL NULL PRAIRIE STORM CORBIES)
(ACTION PLAIN3-F)>
<ROUTINE PLAIN3-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"Flashes of lightning light your path between the barren rocks and g">
<GOLD-GRAY>
<TELL " patches of grass">
<MENTION-CORBIES>
<RTRUE>)>
<RETURN <PLAIN-CONTEXT? .CONTEXT>>>
<OBJECT PLAIN4
(LOC ROOMS)
(DESC "foo")
(SDESC DESCRIBE-FROTZEN)
(FLAGS LIGHTED LOCATION)
(NORTH 0)
(NE 0)
(EAST 0)
(SE 0)
(SOUTH 0)
(SW 0)
(WEST 0)
(NW 0)
(IN 0)
(EXIT-STR "The ground is a bit too rough that way.")
(DNUM 0)
(FNUM OPLAIN)
(GLOBAL NULL NULL PRAIRIE STORM CORBIES)
(ACTION PLAIN4-F)>
<ROUTINE PLAIN4-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL "The windblown grass stretches in every " 'INTDIR>
<PRINT " as far as you can see">
<MENTION-CORBIES>
<RTRUE>)>
<RETURN <PLAIN-CONTEXT? .CONTEXT>>>
<OBJECT PLAIN5
(LOC ROOMS)
(DESC "foo")
(SDESC DESCRIBE-FROTZEN)
(FLAGS LIGHTED LOCATION)
(NORTH 0)
(NE 0)
(EAST 0)
(SE 0)
(SOUTH 0)
(SW 0)
(WEST 0)
(NW 0)
(IN 0)
(EXIT-STR "The ground is a bit too rough that way.")
(DNUM 0)
(FNUM OPLAIN)
(GLOBAL NULL NULL PRAIRIE STORM CORBIES)
(ACTION PLAIN5-F)>
<ROUTINE PLAIN5-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL "G">
<GOLD-GRAY>
<TELL
" tracts of windswept grass sway to and fro under the dark, stormy sky">
<MENTION-CORBIES>
<RTRUE>)>
<RETURN <PLAIN-CONTEXT? .CONTEXT>>>
<ROUTINE DESCRIBE-FROTZEN (OBJ)
<TELL "The G">
<GOLD-GRAY>
<TELL " Fields of Frotzen">
<RTRUE>>
<ROUTINE GOLD-GRAY ()
<COND (<IS? ,HERE ,SEEN>
<TELL "olden">
<RTRUE>)>
<TELL "ray">
<RTRUE>>
<ROUTINE DESCRIBE-FARM-ROOM (OBJ)
<COND (<IS? ,FARMHOUSE ,SEEN>
<TELL "Vacant Lot">
<RTRUE>)>
<TELL "Farmyard">
<RTRUE>>
<ROUTINE MENTION-CORBIES ("AUX" TBL)
<COND (<AND <HERE? FARM-ROOM>
<IN? ,TWISTER ,HERE>>
<TELL ,PERIOD>
<RFALSE>)>
<TELL ". ">
<COND (<PROB 50>
<TELL "Corbies are ">)
(T
<TELL "A flock of corbies is ">)>
<TELL "circling ">
<SET TBL <GETP ,HERE ,P?NORTH>>
<COND (<ZERO? .TBL>)
(<EQUAL? <GET .TBL ,XROOM> ,ROSE-ROOM>
<TELL "a point on " THE ,GROUND
" not far to the north." CR>
<RTRUE>)>
<TELL "in tight, menacing circles overhead." CR>
<RTRUE>>
<OBJECT ROSE-ROOM
(LOC ROOMS)
(DESC "foo")
(SDESC DESCRIBE-ROSE-ROOM)
(FLAGS LIGHTED ; LOCATION)
(SOUTH <TO ROSE-ROOM>)
(EXIT-STR "The ground is a bit too rough that way.")
(FNUM OPLAIN)
(THINGS (<> GROTTO HERE-F))
(GLOBAL PRAIRIE STORM CORBIES)
(ACTION ROSE-ROOM-F)>
<ROUTINE DESCRIBE-ROSE-ROOM (OBJ)
<TELL "G">
<COND (<IS? ,ROSE-ROOM ,SEEN>
<TELL "olden">)
(T
<TELL "ray">)>
<TELL " Grotto">
<RTRUE>>
<ROUTINE ROSE-ROOM-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL "You're in the grotto." CR>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT IN-FARM
(LOC ROOMS)
(DESC "Farm House")
(SDESC 0)
(FLAGS LIGHTED LOCATION INDOORS)
(NORTH <THRU FARM-DOOR IN-FARM>)
(OUT <THRU FARM-DOOR IN-FARM>)
(IN <SORRY "You're in as far as you can go.">)
(SEE-ALL FARMHOUSE)
(DNUM 0)
(FNUM OPLAIN)
(GLOBAL FARMHOUSE FARM-DOOR FARM-WINDOW)
(ACTION IN-FARM-F)>
<ROUTINE DESCRIBE-IN-FARM (OBJ)
<PRINTD .OBJ>
<TELL ", in a " 'TWISTER>
<RTRUE>>
<ROUTINE IN-FARM-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"This tiny shack looks much as you'd expect after falling thousands of feet. No two of the splintered walls are parallel. The floor and ceiling are likewise skewed at crazy angles." CR>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-EXIT>
<COND (<AND <EQUAL? ,P-WALK-DIR ,P?NORTH ,P?OUT>
<IS? ,FARM-DOOR ,OPENED>>
<COND (<IN? ,TWISTER ,IN-FARM>
<UNMAKE ,FARM-DOOR ,OPENED>
<WINDOW ,SHOWING-ROOM>
<ITALICIZE "Bang">
<TELL "! The wind slams " THE ,FARM-DOOR
" in your face." CR>
<RFATAL>)
(<IN? ,FCROWD ,IN-FROON>
<TELL CTHE ,FCROWD
" cheers louder as you leave " THE ,FARMHOUSE ,PERIOD>
<RTRUE>)>)>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT IN-GURTH
(LOC ROOMS)
(DESC "South Market")
(FLAGS LIGHTED LOCATION)
(NORTH <TO AT-MAGICK>)
(SOUTH <TO XROADS>)
(GLOBAL GURTH)
(FNUM OCITY)
(EXIT-STR "An impatient crowd of shoppers pushes you back.")
(ACTION IN-GURTH-F)>
<ROUTINE IN-GURTH-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"Both sides of this busy thoroughfare are crammed with stalls. Hawkers shout and gesticulate at the passersby, their hoarse obscenities mingling with the smell of sweat and burning food." CR>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-EXIT>
<COND (<ZERO? ,P-WALK-DIR>)
(<IS? ,CAKE ,NODESC>
<UNMAKE ,CAKE ,NODESC>
<MOVE ,CAKE ,HERE>
<SETG P-IT-OBJECT ,CAKE>
<QUEUE ,I-CAKE 3>
<WINDOW ,SHOWING-ROOM>
<TELL "\"Oof!\"|
The street hawker you just bumped into glowers. \"Watch where I'm goin', will ya!\" You clumsily help to pick up her spilled wares; she stomps away without a word of thanks.|
As you dust yourself off, you notice something">
<PRINT " lying in the dust.">
<CRLF>
<RFATAL>)
; (<EQUAL? ,P-WALK-DIR ,P?NORTH>
<CROWD-PUSH>
<RTRUE>)
; (<EQUAL? ,P-WALK-DIR ,P?SOUTH>
<EXIT-CITY>
<RTRUE>)>
<RFALSE>)
(T
<RFALSE>)>>
; <ROUTINE CROWD-PUSH ()
<PRINT "You push your way ">
<COND (<PROB 50>
<TELL B ,W?THROUGH>)
(T
<TELL "deeper into">)>
<TELL " the teeming crowd." CR>
<RTRUE>>
; <ROUTINE EXIT-CITY ("AUX" X)
<SET X <RANDOM 100>>
<TELL ,XTHE>
<COND (<L? .X 33>
<TELL B ,W?SMELL>)
(<L? .X 67>
<TELL B ,W?NOISE>)
(T
<TELL B ,W?SMELL "s and " B ,W?NOISE>)>
<TELL "s of the city fade behind you." CR>
<RTRUE>>
<OBJECT AT-MAGICK
(LOC ROOMS)
(DESC "North Market")
(FLAGS LIGHTED LOCATION)
(NE <TO NGURTH>)
(SOUTH <TO IN-GURTH>)
(WEST <THRU MAGICK-DOOR IN-MAGICK>)
(IN <THRU MAGICK-DOOR IN-MAGICK>)
(GLOBAL MAGICK-DOOR MSHOPPE GURTH)
(FNUM OCITY)
(ACTION AT-MAGICK-F)>
<ROUTINE AT-MAGICK-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"This is the safer end of Gurth City's notorious market district. Shop windows are mostly unbroken here, and the cobblestones don't stick to your shoes"
,PTAB "The gabled facade of Ye Olde Magick Shoppe lends an air of ersatz charm to the west side of the street">
"An ancient oak tree turns the day to twilight beneath the impressive sprawl of its branches">
<LOOK-UNDER-OAK ,OAK3>
<CRLF>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT FOREST1
(LOC ROOMS)
(DESC "foo")
(SDESC 0)
(FLAGS LIGHTED LOCATION)
(NORTH 0)
(NE 0)
(EAST 0)
(SE 0)
(SOUTH 0)
(SW 0)
(WEST 0)
(NW 0)
(IN 0)
(OUT 0)
(DNUM 0)
(FNUM OFOREST)
(GLOBAL WOODS)
(ACTION FOREST-ROOM-F)>
<OBJECT FOREST2
(LOC ROOMS)
(DESC "foo")
(SDESC 0)
(FLAGS LIGHTED LOCATION)
(NORTH 0)
(NE 0)
(EAST 0)
(SE 0)
(SOUTH 0)
(SW 0)
(WEST 0)
(NW 0)
(IN 0)
(OUT 0)
(DNUM 0)
(FNUM OFOREST)
(GLOBAL WOODS)
(ACTION FOREST-ROOM-F)>
<OBJECT FOREST3
(LOC ROOMS)
(DESC "foo")
(SDESC 0)
(FLAGS LIGHTED LOCATION)
(NORTH 0)
(NE 0)
(EAST 0)
(SE 0)
(SOUTH 0)
(SW 0)
(WEST 0)
(NW 0)
(IN 0)
(OUT 0)
(DNUM 0)
(FNUM OFOREST)
(GLOBAL WOODS)
(ACTION FOREST-ROOM-F)>
<OBJECT FOREST4
(LOC ROOMS)
(DESC "foo")
(SDESC 0)
(FLAGS LIGHTED LOCATION)
(NORTH 0)
(NE 0)
(EAST 0)
(SE 0)
(SOUTH 0)
(SW 0)
(WEST 0)
(NW 0)
(IN 0)
(OUT 0)
(DNUM 0)
(FNUM OFOREST)
(GLOBAL WOODS)
(ACTION FOREST-ROOM-F)>
<OBJECT FOREST5
(LOC ROOMS)
(DESC "foo")
(SDESC 0)
(FLAGS LIGHTED LOCATION)
(NORTH 0)
(NE 0)
(EAST 0)
(SE 0)
(SOUTH 0)
(SW 0)
(WEST 0)
(NW 0)
(IN 0)
(OUT 0)
(DNUM 0)
(FNUM OFOREST)
(GLOBAL WOODS)
(ACTION FOREST-ROOM-F)>
<OBJECT FOREST6
(LOC ROOMS)
(DESC "foo")
(SDESC 0)
(FLAGS LIGHTED LOCATION)
(NORTH 0)
(NE 0)
(EAST 0)
(SE 0)
(SOUTH 0)
(SW 0)
(WEST 0)
(NW 0)
(IN 0)
(OUT 0)
(DNUM 0)
(FNUM OFOREST)
(GLOBAL WOODS)
(ACTION FOREST-ROOM-F)>
<ROUTINE FOREST-ROOM-F (CONTEXT "AUX" TBL)
<COND (<NOT <EQUAL? .CONTEXT ,M-ENTERING>>
<RFALSE>)
(<IS? ,HERE ,TOUCHED>
<RFALSE>)
(<AND <IS? ,BOULDER ,NODESC>
<LAST-ROOM-IN? ,FOREST-ROOMS 2>>
<UNMAKE ,BOULDER ,NODESC>
<MOVE ,BOULDER ,HERE>
<PUTP ,HERE ,P?SDESC ,DESCRIBE-POOL>
<PUTP ,HERE ,P?ACTION ,AT-POOL-F>
<RFALSE>)
(T
<SET TBL <PICK-ONE ,FOREST-DESCS>>
<PUTP ,HERE ,P?SDESC <GET .TBL 0>>
<PUTP ,HERE ,P?ACTION <GET .TBL 1>>
<RFALSE>)>>
<ROUTINE OPEN-POOL ()
<REPLACE-SYN? ,BOULDER ,W?YOUTH ,W?ZZZP>
<WINDOW ,SHOWING-ALL>
<SETG P-WALK-DIR <>>
<SETG OLD-HERE <>>
<MOVE ,POOL ,HERE>
<SETG P-IT-OBJECT ,POOL>
<SETUP-POND-EXITS>
<TELL "\"Behold the Pool of Eternal Youth.\"|
The hollow voice fades in the air as beams of sunlight converge on the clearing, forming a shallow pool of radiance that flows and ripples like a golden liquid." CR>
(EXIT-STR "An irresistible force holds you near the arch.")
(NORTH <PER TIMESHIFT 9>)
(SOUTH <PER TIMESHIFT 9>)
(IN <PER ENTER-ARCH>)
(OUT <PER EXIT-ARCH>)
(FNUM ORUINS)
(GLOBAL PLAZA PHEEBOR)
(ACTION ARCH5-F)>
<ROUTINE ARCH5-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"Time has not yet softened the layers of dirt and rubble obscuring the remains of the plaza." CR>
<RTRUE>)>
<RETURN <HANDLE-ARCH-ROOMS? .CONTEXT>>>
<ROUTINE HANDLE-ARCH-ROOMS? (CONTEXT "AUX" X OBJ NXT)
<COND (<EQUAL? .CONTEXT ,M-EXIT>
<COND (<HERE? <GETB ,ARCH-ROOMS ,PRESENT>>
<RFALSE>)
(<SET OBJ <FIRST? ,HERE>>
<REPEAT ()
<SET NXT <NEXT? .OBJ>>
<COND (<IS? .OBJ ,TAKEABLE>
<REMOVE .OBJ>)>
<SET OBJ .NXT>
<COND (<ZERO? .OBJ>
<RFALSE>)>>)>
<RFALSE>)
(<NOT <EQUAL? .CONTEXT ,M-BEG>>
<RFALSE>)
(<EQUAL? ,ATIME ,PRESENT>
<RFALSE>)
(<SET X <TALKING?>>
<TELL
"Your voice has the faint, wistful quality of words ">
<COND (<L? ,ATIME ,PRESENT>
<TELL "yet to be spoken">)
(T
<TELL "spoken long ago">)>
<SET X <QCONTEXT-GOOD?>>
<COND (<T? .X>
<TELL "; " THE .X " seems not to hear">)>
<PRINT ,PERIOD>
<RFATAL>)
(T
<RFALSE>)>>
<OBJECT ARCH9
(LOC ROOMS)
(DESC "Frost")
(FLAGS LIGHTED LOCATION)
(EXIT-STR "An irresistible force holds you near the arch.")
(NORTH <PER TIMESHIFT 9>)
(SOUTH <PER TIMESHIFT 9>)
(IN <PER ENTER-ARCH>)
(OUT <PER EXIT-ARCH>)
(FNUM ORUINS)
(GLOBAL PLAZA PHEEBOR)
(ACTION ARCH9-F)>
<ROUTINE ARCH9-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"Ages of windblown dust lie hardened upon the frozen earth. The air is touched with an ominous arctic chill." CR>
<RTRUE>)>
<RETURN <HANDLE-ARCH-ROOMS? .CONTEXT>>>
<OBJECT ARCH10
(LOC ROOMS)
(DESC "Glacier")
(FLAGS LIGHTED LOCATION)
(EXIT-STR "An irresistible force holds you near the arch.")
(NORTH <PER TIMESHIFT 9>)
(SOUTH <PER TIMESHIFT 9>)
(IN <PER ENTER-ARCH>)
(OUT <PER EXIT-ARCH>)
(THINGS (<> GLACIER HERE-F)
(GLACIAL ICE HERE-F))
(FNUM ORUINS)
(ACTION ARCH10-F)>
<ROUTINE ARCH10-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"The last traces of the plaza are lost beneath an impenetrable layer of glacial ice." CR>
<RTRUE>)>
<RETURN <HANDLE-ARCH-ROOMS? .CONTEXT>>>
<OBJECT ARCH11
(LOC ROOMS)
(DESC "Highway")
(FLAGS LIGHTED LOCATION)
(EXIT-STR "An irresistible force holds you near the arch.")
(NORTH <PER TIMESHIFT 9>)
(SOUTH <PER TIMESHIFT 9>)
(IN <PER ENTER-ARCH>)
(OUT <PER EXIT-ARCH>)
(THINGS (METAL MECHANISM USELESS)
(GLASS MECHANISM USELESS)
(<> BOULDERS USELESS)
(<> ROCKS USELESS)
(<> HIGHWAY HERE-F))
(FNUM ORUINS)
(ACTION ARCH11-F)>
<ROUTINE ARCH11-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"Strange mechanisms of metal and glass zoom across a rugged landscape strewn with glacial boulders." CR>
<RTRUE>)>
<RETURN <HANDLE-ARCH-ROOMS? .CONTEXT>>>
<OBJECT ARCH12
(LOC ROOMS)
(DESC "Desolation")
(FLAGS LIGHTED LOCATION)
(EXIT-STR "An irresistible force holds you near the arch.")
(NORTH <PER TIMESHIFT 9>)
(SOUTH <PER TIMESHIFT 9>)
(IN <PER ENTER-ARCH>)
(OUT <PER EXIT-ARCH>)
(FNUM ORUINS)
(ACTION ARCH12-F)>
<ROUTINE ARCH12-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"Patient centuries have eroded much of the topsoil from the landscape. Loose, charred earth stretches away in every " 'INTDIR ,PERIOD>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-EXIT>
<COND (<IN? ,TRENCH ,HERE>
<MAKE ,TRENCH ,NODESC>
<UNMAKE ,TRENCH ,OPENED>
<REMOVE ,TRENCH>)>)>
<RETURN <HANDLE-ARCH-ROOMS? .CONTEXT>>>
<GLOBAL ATIME:NUMBER ,PRESENT>
<ROUTINE TIMESHIFT ("AUX" X)
<COND (<OR <NOT <IS? ,ARCH ,SEEN>>
<AND <EQUAL? ,P-WALK-DIR ,P?NORTH>
<EQUAL? ,ATIME ,MAX-ATIME>>
<AND <EQUAL? ,P-WALK-DIR ,P?SOUTH>
<ZERO? ,ATIME>>>
<TELL "The weight of centuries restricts your motion." CR>
<RFALSE>)>
<SET X <APPLY <GETP ,HERE ,P?ACTION> ,M-EXIT>>
<COND (<T? .X>
<COND (<EQUAL? .X ,M-FATAL>
<RFALSE>)
(<T? ,VERBOSITY>
<CRLF>)>)>
<COND (<EQUAL? ,P-WALK-DIR ,P?NORTH>
<INC ATIME>)
(T
<DEC ATIME>)>
<SETG HERE <GETB ,ARCH-ROOMS ,ATIME>>
<MOVE ,ARCH ,HERE>
<SETG OLD-HERE <>>
<SETG ARCHTIMER 0>
<APPLY <GETP ,HERE ,P?ACTION> ,M-ENTERING>
<COND (<IS? ,LIGHTSHOW ,TOUCHED>
<TELL "You slide ">)
(T
<TELL "The merest effort of will is enough to slide you ">)>
<COND (<EQUAL? ,P-WALK-DIR ,P?NORTH>
<TELL B ,W?FOR>)
(T
<TELL B ,W?BACK>)>
<TELL "ward through " THE ,LIGHTSHOW>
<COND (<NOT <IS? ,LIGHTSHOW ,TOUCHED>>
<MAKE ,LIGHTSHOW ,TOUCHED>
<TELL ", guided by the Magick of the arch">)>
<RELOOK>
<COND (<T? ,GLASS-TOP>
<I-GLASS>)>
<RFALSE>>
<OBJECT IN-LAIR
(LOC ROOMS)
(DESC "Treasure Chamber")
(FLAGS LOCATION INDOORS)
(NE 0)
(SE 0)
(OUT 0)
(MIRROR-OBJ NO-MIRROR)
(BEAM-DIR NO-MIRROR)
(EXIT-STR "Rock walls block your path.")
(FNUM OCAVES)
(GLOBAL SUNBEAM)
(ACTION IN-LAIR-F)>
<ROUTINE IN-LAIR-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"The plunder of many kingdoms lies in a vast, sparkling mound of the type often employed by dragons as a mattress. Luckily, there are no dragons to be seen">
<COND (<IN? ,URGRUE ,IN-LAIR>
<TELL
"; but the southeast corner of the chamber is obscured by a curious shadow">)>
<TELL ,PERIOD>
<COND (<SEE-ANYTHING-IN? ,HEAP>
<TELL ,TAB ,YOU-SEE>
<CONTENTS ,HEAP>
<TELL " lying among the treasures." CR>)>
<MENTION-BEAM?>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERING>
<COND (<IN? ,GRUE ,HERE>
<REMOVE ,GRUE>)>
<COND (<IN? ,URGRUE ,IN-LAIR>
<UNMAKE ,URGRUE ,SEEN>
<MAKE ,URGRUE ,SURPRISED>
<SETG P-HIM-OBJECT ,URGRUE>
<SETG LAST-MONSTER ,URGRUE>
<QUEUE ,I-URGRUE>)>
<RFALSE>)
(<EQUAL? .CONTEXT ,M-EXIT>
<COND (<IN? ,URGRUE ,IN-LAIR>
<DEQUEUE ,I-URGRUE>
<TELL "\"" <PICK-NEXT ,URGRUE-BYES>
"\" chuckles " THE ,URGRUE ,PERIOD>
<RTRUE>)>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT IN-FROON
(LOC ROOMS)
(DESC "Froon")
(FLAGS LIGHTED LOCATION SEEN)
(SOUTH <THRU FARM-DOOR IN-FARM>)
(IN <THRU FARM-DOOR IN-FARM>)
(GLOBAL FARM-DOOR FARM-WINDOW FARMHOUSE FROON)
(HEAR 0)
(SEE-ALL FBEDS)
(ACTION IN-FROON-F)>
<ROUTINE IN-FROON-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"Lullabies sing of places such as this. Songbirds swoop and glide between rows of dainty cottages; a rainbow of flowers lines the sun-dappled street, filling the air with a gentle fragrance" ,PTAB ,XTHE>
<COND (<IS? ,FARM-DOOR ,OPENED>
<TELL B ,W?OPEN>)
(T
<TELL B ,W?CLOSED>)>
<TELL C ,SP 'FARMHOUSE
" leans askew upon the roadside. Beneath it, you notice what appears to be the heel of " A ,BOOT ,PERIOD>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERING>
<COND (<IN? ,MAYOR ,IN-FROON>
<SETG P-HIM-OBJECT ,MAYOR>)>
<COND (<IN? ,FCROWD ,IN-FROON>
<SETG P-THEM-OBJECT ,FCROWD>)>
<RFALSE>)
(<EQUAL? .CONTEXT ,M-EXIT>
<COND (<AND <EQUAL? ,P-WALK-DIR ,P?SOUTH ,P?IN>
<IS? ,FARM-DOOR ,OPENED>
<IN? ,MAYOR ,IN-FROON>
<G? ,FSCRIPT 5>>
<BYE-MAYOR>
<RFATAL>)>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT INNARDS
(LOC ROOMS)
(DESC "Inside Idol")
(FLAGS LOCATION INDOORS)
(FNUM OJUNGLE)
(EXIT-STR "Whoever built this chamber forgot to provide any exits.")
(ACTION INNARDS-F)>
<ROUTINE INNARDS-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"This long, low chamber is shaped much like the gizzard of a crocodile. Trickles of fetid moisture feed the moss crusting the walls and ceiling." CR>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT APLANE
(LOC ROOMS)
(DESC "Ethereal Plane Of Atrii")
(SDESC DESCRIBE-APLANE)
(FLAGS LIGHTED LOCATION)
(NORTH <TABLE 0 APLANE 0>)
(NE <TABLE 0 APLANE 0>)
(EAST <TABLE 0 APLANE 0>)
(SE <TABLE 0 APLANE 0>)
(SOUTH <TABLE 0 APLANE 0>)
(SW <TABLE 0 APLANE 0>)
(WEST <TABLE 0 APLANE 0>)
(NW <TABLE 0 APLANE 0>)
(BELOW 0)
(ACTION APLANE-F)>
<ROUTINE DESCRIBE-APLANE (OBJ)
<PRINTD .OBJ>
<COND (<IN? ,PLAYER .OBJ>
<TELL ", Above " <GET ,OVERS ,ABOVE>>)>
<RTRUE>>
<ROUTINE APLANE-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL ,XTHE>
<COND (<EQUAL? ,ABOVE ,OPLAIN>
<TELL "thunderclouds are ">)
(T
<TELL "landscape is ">)>
<TELL
"compressed into a flat optical plane, stretching away below your feet in every " 'INTDIR ,PERIOD>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERING>
<NEXT-OVER>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT IN-SKY
(LOC ROOMS)
(DESC "Flying")
(SDESC DESCRIBE-IN-SKY)
(FLAGS LIGHTED LOCATION)
(NORTH <TABLE 0 IN-SKY 0>)
(NE <TABLE 0 IN-SKY 0>)
(EAST <TABLE 0 IN-SKY 0>)
(SE <TABLE 0 IN-SKY 0>)
(SOUTH <TABLE 0 IN-SKY 0>)
(SW <TABLE 0 IN-SKY 0>)
(WEST <TABLE 0 IN-SKY 0>)
(NW <TABLE 0 IN-SKY 0>)
(BELOW 0)
(FNUM 0)
(ACTION IN-SKY-F)>
<GLOBAL ABOVE:NUMBER <>>
<ROUTINE DESCRIBE-IN-SKY (OBJ)
<TELL "Over " <GET ,OVERS ,ABOVE>>
<RTRUE>>
<ROUTINE IN-SKY-F ("OPT" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL "You're soaring on " A ,DACT
"'s back, high above " THE ,GROUND ,PERIOD>
<RTRUE>)
(<EQUAL? .CONTEXT ,M-ENTERING>
<NEXT-OVER>
<RFALSE>)
(T
<RFALSE>)>>
<OBJECT IN-GARDEN
(LOC ROOMS)
(DESC "Royal Garden")
(FLAGS LIGHTED LOCATION)
; (IN <PER ENTER-BUSH>)
(OUT <PER EXIT-BUSH>)
(UP <PER EXIT-BUSH>)
(FNUM OCAVES)
(GLOBAL GARDEN CASTLE)
(EXIT-STR "High castle walls block your path.")
(ACTION IN-GARDEN-F)>
<ROUTINE IN-GARDEN-F ("OPT" (CONTEXT <>) "AUX" X)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"You're in a private garden, enclosed by the high walls of a castle and guarded by a brooding statue of a brogmoid">
<COND (<IS? ,BROG ,OPENED>
<TELL
". A secret compartment in " THE ,BROG " is open">
"An unspoiled landscape of rolling meadows, sparkling streams and orchards bursting with fruit stretches away in every direction. You must be alone here; for no ">
<COND (<IS? ,PLAYER ,FEMALE>
<TELL "wo">)>
<TELL
"man could visit this place and leave it voluntarily." CR>