mirror of
https://github.com/historicalsource/enchanter
synced 2024-04-25 21:49:27 +03:00
624 lines
16 KiB
Plaintext
624 lines
16 KiB
Plaintext
"GLOBALS for
|
|
ENCHANTER
|
|
(c) Copyright 1983 Infocom, Inc. All Rights Reserved.
|
|
"
|
|
|
|
<DIRECTIONS ;"Do not change the order of the first eight
|
|
without consulting MARC!"
|
|
NORTH NE EAST SE SOUTH SW WEST NW UP DOWN IN OUT>
|
|
|
|
<ROUTINE NULL-F () <RFALSE>>
|
|
|
|
"SUBTITLE GLOBAL OBJECTS"
|
|
|
|
<OBJECT GLOBAL-OBJECTS
|
|
(FLAGS RMUNGBIT INVISIBLE TOUCHBIT SURFACEBIT TRYTAKEBIT
|
|
OPENBIT SEARCHBIT TRANSBIT ;WEARBIT VOWELBIT
|
|
ONBIT RLANDBIT)>
|
|
|
|
<OBJECT LOCAL-GLOBALS
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM ZZMGCK)
|
|
(DESCFCN 0)
|
|
(GLOBAL GLOBAL-OBJECTS)
|
|
(ADVFCN 0)
|
|
(FDESC "F")
|
|
(LDESC "F")
|
|
(PSEUDO "FOOBAR" V-WALK)
|
|
(CONTFCN 0)
|
|
(SIZE 0)
|
|
(CAPACITY 0)>
|
|
;"Yes, this synonym for LOCAL-GLOBALS needs to exist... sigh"
|
|
|
|
<OBJECT ROOMS
|
|
(IN TO ROOMS)>
|
|
|
|
<OBJECT INTNUM
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM INTNUM)
|
|
(DESC "number")>
|
|
|
|
<OBJECT PSEUDO-OBJECT
|
|
(DESC "pseudo")
|
|
(ACTION CRETIN)>
|
|
|
|
<OBJECT IT ;"was IT"
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM IT THAT HER HIM)
|
|
(DESC "random object")
|
|
(FLAGS NDESCBIT TOUCHBIT)>
|
|
|
|
<OBJECT GROUND ;"was GROUND"
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM FLOOR GROUND)
|
|
(ADJECTIVE STONE)
|
|
(DESC "floor")
|
|
(ACTION GROUND-F)>
|
|
|
|
<ROUTINE GROUND-F ()
|
|
<COND (<VERB? CLIMB-UP CLIMB-ON CLIMB-FOO BOARD>
|
|
<TELL "You've got better things to do." CR>)>>
|
|
|
|
<OBJECT CORRIDOR
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "passage")
|
|
(SYNONYM PASSAGE CORRIDOR ENTRANCE)
|
|
(ACTION CORRIDOR-F)>
|
|
|
|
<ROUTINE CORRIDOR-F ()
|
|
<COND (<VERB? THROUGH WALK-TO>
|
|
<USE-DIRECTIONS>)>>
|
|
|
|
<OBJECT WALLS
|
|
(IN GLOBAL-OBJECTS)
|
|
(FLAGS NDESCBIT TOUCHBIT)
|
|
(DESC "castle wall")
|
|
(SYNONYM WALL WALLS CASTLE)
|
|
(ADJECTIVE TRANSLUCENT)
|
|
(ACTION WALLS-F)>
|
|
|
|
<ROUTINE WALLS-F ()
|
|
<COND (<AND <EQUAL? ,WALLS ,PRSO>
|
|
<EQUAL? ,HERE ,NORTH-CELL>>
|
|
<PERFORM ,PRSA ,STONE-WALL>)
|
|
(<FSET? ,HERE ,RMUNGBIT>
|
|
<COND (<VERB? EXAMINE>
|
|
<TELL
|
|
"The wall is stained and noisome." CR>)
|
|
(<VERB? LISTEN>
|
|
<TELL
|
|
"That's noisome, not noisy!" CR>)>)
|
|
(<VERB? LOOK-INSIDE>
|
|
<TELL
|
|
"They're translucent, not transparent!" CR>)>>
|
|
|
|
<OBJECT CEILING
|
|
(IN GLOBAL-OBJECTS)
|
|
(FLAGS NDESCBIT TOUCHBIT)
|
|
(DESC "ceiling")
|
|
(SYNONYM CEILIN)>
|
|
|
|
<OBJECT HANDS ;"was HANDS"
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM HAND HANDS)
|
|
(ADJECTIVE BARE)
|
|
(DESC "bare hands of a novice enchanter")
|
|
(FLAGS NDESCBIT TOOLBIT TOUCHBIT)>
|
|
|
|
<OBJECT PLAYER ;"was ADVENTURER"
|
|
(SYNONYM ENCHANTER)
|
|
(DESC "cretin")
|
|
(FLAGS VILLAIN NDESCBIT INVISIBLE)
|
|
(ACTION 0)>
|
|
|
|
<OBJECT ME
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM ME MYSELF SELF FACE)
|
|
(DESC "you")
|
|
(FLAGS VILLAIN TOUCHBIT)
|
|
(ACTION CRETIN)>
|
|
|
|
<ROUTINE CRETIN ()
|
|
<COND (<VERB? ESCAPE>
|
|
<TELL "There's no escaping yourself." CR>)
|
|
(<AND <VERB? PUT> <EQUAL? ,PRSO ,EGG>>
|
|
<TELL
|
|
"If you don't succeed, there will be plenty of egg on your face." CR>)
|
|
(<VERB? BURN>
|
|
<TELL "Ouch!" CR>)
|
|
(<VERB? LISTEN>
|
|
<TELL "Yes?" CR>)
|
|
(<VERB? ALARM>
|
|
<TELL "You are obviously awake already." CR>)
|
|
(<VERB? GUNCHO>
|
|
<TELL
|
|
"You vanish into oblivion where, to the relief of much of the Circle, you
|
|
will be unable to do much harm." CR>
|
|
<FINISH>)
|
|
(<VERB? FROTZ>
|
|
<FSET ,PLAYER ,ONBIT>
|
|
<SETG ALWAYS-LIT T>
|
|
<TELL
|
|
"You are bathed in a sickly yellow light, bright enough to read by." CR>)
|
|
(<VERB? BLORB>
|
|
<JIGS-UP
|
|
"You experience the most peculiar sensation of being simultaneously shrunken
|
|
and sucked into what might best be likened to a black hole. The effect is not
|
|
without its exhilarating aspect; as a way of life, however, it leaves much to
|
|
be desired." <>>
|
|
<RTRUE>)
|
|
(<VERB? KULCAD>
|
|
<TELL
|
|
"You seem real enough already." CR>)
|
|
(<VERB? EXAMINE>
|
|
<TELL "You are not a pretty sight." CR>)
|
|
(<VERB? GIVE>
|
|
<TELL "I think you're a little confused." CR>)
|
|
(<VERB? KILL MUNG ATTACK>
|
|
<TELL "You don't need my help to do that!" CR>)
|
|
(<VERB? FIND>
|
|
<TELL "You're right here!" CR>)
|
|
(<AND <VERB? CUT> <==? ,PRSI ,MAGIC-KNIFE>>
|
|
<TELL
|
|
"I should think one experience with that knife would be enough. I wouldn't
|
|
press my luck." CR>)>>
|
|
|
|
;"GLOBAL VARIABLES"
|
|
|
|
<GLOBAL HERE <>>
|
|
|
|
<GLOBAL LOAD-ALLOWED 100>
|
|
|
|
<GLOBAL LOAD-MAX 100>
|
|
|
|
<GLOBAL MOVES 0>
|
|
|
|
<GLOBAL SCORE 0>
|
|
|
|
<OBJECT WINDOW
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "window")
|
|
(SYNONYM WINDOW)
|
|
(ADJECTIVE BROKEN)
|
|
(ACTION WINDOW-F)>
|
|
|
|
<ROUTINE WINDOW-F ()
|
|
<COND (<VERB? LOOK-INSIDE>
|
|
<COND (<G? ,TOD ,NIGHTFALL>
|
|
<TELL "It's too dark to make out much of anything." CR>)
|
|
(T <TELL <GETP ,HERE ,P?TEXT> CR>)>)
|
|
(<VERB? OPEN>
|
|
<TELL "You can't open it." CR>)
|
|
(<VERB? CLOSE>
|
|
<TELL "It already is." CR>)>>
|
|
|
|
<OBJECT SEA
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "sea")
|
|
(SYNONYM OCEAN SEA)
|
|
(ADJECTIVE MISTY)
|
|
(ACTION SEA-F)>
|
|
|
|
<ROUTINE SEA-F ()
|
|
<COND (<NOT <EQUAL? ,HERE ,BEACH>>
|
|
<TELL
|
|
"The sea is off beyond the beach." CR>)
|
|
(<VERB? THROUGH>
|
|
<TELL "You would drown." CR>)
|
|
(<VERB? EXAMINE>
|
|
<TELL "The sea is very rough. I wouldn't go in." CR>)>>
|
|
|
|
<OBJECT FOREST
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "forest")
|
|
(SYNONYM FOREST)
|
|
(ACTION FOREST-F)>
|
|
|
|
<ROUTINE FOREST-F ()
|
|
<COND (<VERB? THROUGH>
|
|
<USE-DIRECTIONS>)>>
|
|
|
|
<OBJECT TEMPLE-OBJ
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "temple")
|
|
(SYNONYM TEMPLE)
|
|
(ACTION TEMPLE-OBJ-F)>
|
|
|
|
<ROUTINE TEMPLE-OBJ-F ()
|
|
<COND (<OR <EQUAL? ,HERE ,COURTYARD-2 ,COURTYARD-3>
|
|
<EQUAL? ,HERE ,COURTYARD-4 ,COURTYARD-7>>
|
|
<COND (<VERB? THROUGH>
|
|
<GOTO ,TEMPLE>
|
|
<RTRUE>)
|
|
(<VERB? LISTEN>
|
|
<TELL
|
|
"You can hear a howling chant coming from inside the temple." CR>)>)>>
|
|
|
|
<OBJECT COURTYARD
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "courtyard")
|
|
(SYNONYM COURTYARD LAWN LAWNS GRASS)
|
|
(ACTION COURTYARD-F)>
|
|
|
|
<ROUTINE COURTYARD-F ()
|
|
<COND (<AND <VERB? WALK-AROUND> <NOT <EQUAL? ,HERE ,INSIDE-GATE>>>
|
|
<COND (<EQUAL? ,HERE ,COURTYARD-7 ,COURTYARD-6 ,COURTYARD-4>
|
|
<DO-WALK ,P?WEST>)
|
|
(T <DO-WALK ,P?EAST>)>)
|
|
(<AND <VERB? THROUGH>
|
|
<EQUAL? ,HERE ,INSIDE-GATE>>
|
|
<DO-WALK ,P?EAST>)>>
|
|
|
|
<OBJECT TOWER
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "tower")
|
|
(SYNONYM TOWER)
|
|
(FLAGS CLIMBBIT)
|
|
(ACTION TOWER-F)>
|
|
|
|
<ROUTINE TOWER-F ()
|
|
<COND (<AND <VERB? CLIMB-UP CLIMB-FOO BOARD>
|
|
<OR <EQUAL? ,HERE ,PURLOINED-ROOM ,SE-TOWER>
|
|
<EQUAL? ,HERE ,NW-TOWER ,SW-TOWER>>>
|
|
<DO-WALK ,P?UP>)
|
|
(<AND <VERB? CLIMB-DOWN CLIMB-FOO>
|
|
<OR <EQUAL? ,HERE ,JEWEL-ROOM ,MAP-ROOM>
|
|
<EQUAL? ,HERE ,ENGINE-ROOM ,BEDROOM>>>
|
|
<DO-WALK ,P?DOWN>)
|
|
(<VERB? CLIMB-UP CLIMB-FOO>
|
|
<TELL
|
|
"They are a bit far away to climb from here, and anyway the walls would
|
|
be impossible to scale." CR>)>>
|
|
|
|
<OBJECT TURRET
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "turret")
|
|
(SYNONYM TURRET)>
|
|
|
|
<OBJECT LAWN
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "lawn")
|
|
(SYNONYM LAWN)>
|
|
|
|
<OBJECT MEADOW-OBJ
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "meadow")
|
|
(SYNONYM MEADOW)>
|
|
|
|
<OBJECT BEACH-OBJ
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "beach")
|
|
(SYNONYM BEACH)
|
|
(ADJECTIVE WHITE ROCKY)>
|
|
|
|
<OBJECT GLOBAL-WATER
|
|
(IN LOCAL-GLOBALS)
|
|
(SYNONYM WATER BROOK ;OCEAN POND)
|
|
(ADJECTIVE DELICIOUS SPRING)
|
|
(DESC "water")
|
|
(ACTION WATER-FUNCTION)>
|
|
|
|
<OBJECT WATER
|
|
(SYNONYM WATER QUANTITY)
|
|
(ADJECTIVE DELICIOUS SPRING)
|
|
(DESC "quantity of water")
|
|
(FLAGS TAKEBIT)
|
|
(ACTION WATER-FUNCTION)
|
|
(SIZE 4)>
|
|
|
|
<OBJECT JUG
|
|
(IN SHACK)
|
|
(SYNONYM JUG)
|
|
(ADJECTIVE POTTERY)
|
|
(DESC "jug")
|
|
(FLAGS TAKEBIT TRANSBIT CONTBIT OPENBIT)
|
|
(ACTION JUG-F)
|
|
(FDESC
|
|
"An empty jug lies in a corner of the room, against the overturned table.")
|
|
(CAPACITY 4)>
|
|
|
|
<ROUTINE JUG-F ("AUX" (E? <>))
|
|
<COND (<VERB? OPEN CLOSE>
|
|
<TELL
|
|
"The jug has no cover. It can't be opened or closed." CR>
|
|
<RTRUE>)
|
|
(<VERB? THROW MUNG>
|
|
<REMOVE ,PRSO>
|
|
<SET E? T>
|
|
<TELL "The jug shatters into innumerable pieces." CR>)
|
|
(<VERB? SHAKE>
|
|
<COND (<FSET? ,PRSO ,OPENBIT> <SET E? T>)>)>
|
|
<COND (<VERB? EXAMINE LOOK-INSIDE>
|
|
<TELL "The jug is ">
|
|
<COND (<NOT <IN? ,WATER ,PRSO>>
|
|
<TELL "empty." CR>)
|
|
(T
|
|
<TELL <GET ,JUG-AMTS <GETP ,WATER ,P?SIZE>> CR>)>)
|
|
(.E?
|
|
<COND (<IN? ,WATER ,PRSO>
|
|
<TELL
|
|
"The water spills to the ground and evaporates." CR>
|
|
<REMOVE ,WATER>)>
|
|
<RTRUE>)>>
|
|
|
|
<GLOBAL JUG-AMTS <TABLE
|
|
"foo"
|
|
"mostly empty."
|
|
"half full."
|
|
"nearly full."
|
|
"full.">>
|
|
|
|
<ROUTINE WATER-FUNCTION ("AUX" AV W PI?)
|
|
#DECL ((AV) <OR OBJECT FALSE> (W) OBJECT (PI?) <OR ATOM FALSE>)
|
|
<COND (<AND <VERB? EXAMINE> <EQUAL? ,PRSO ,GLOBAL-WATER>>
|
|
<COND (<EQUAL? ,HERE ,BEACH>
|
|
<TELL
|
|
"The ocean streches out as far as the eye can see to the south and
|
|
east." CR>)
|
|
(<EQUAL? ,HERE ,FOREST-2>
|
|
<TELL
|
|
"The water is dark and murky, and lily pads cover most of the surface.
|
|
I wouldn't drink the stuff." CR>)
|
|
(T
|
|
<TELL
|
|
"The brook runs slowly through thick vegetation." CR>)>
|
|
<RTRUE>)
|
|
(<AND <VERB? THROUGH> <EQUAL? ,PRSO ,GLOBAL-WATER>>
|
|
<TELL
|
|
"You have better things to do with your time than go swimming." CR>
|
|
<RTRUE>)
|
|
(<AND <VERB? DRINK-FROM> <EQUAL? ,PRSO ,GLOBAL-WATER>>
|
|
<V-DRINK-FROM>
|
|
<RTRUE>)
|
|
(<VERB? SGIVE> <RFALSE>)
|
|
(<VERB? THROUGH>
|
|
<TELL "Swimming here is fraught with peril." CR>
|
|
<RTRUE>)
|
|
(<VERB? FILL> ;"fill bottle with water =>"
|
|
<SET W ,PRSI> ;"put water in bottle"
|
|
<SETG PRSA ,V?PUT>
|
|
<SETG PRSI ,PRSO>
|
|
<SETG PRSO .W>
|
|
<SET PI? <>>)
|
|
(<EQUAL? ,PRSO ,GLOBAL-WATER ,WATER>
|
|
<SET W ,PRSO>
|
|
<SET PI? <>>)
|
|
(ELSE
|
|
<SET W ,PRSI>
|
|
<SET PI? T>)>
|
|
<COND (<==? .W ,GLOBAL-WATER>
|
|
<COND (<VERB? DRINK> <RFALSE>)>
|
|
<SET W ,WATER>
|
|
<COND (<VERB? TAKE PUT> <REMOVE .W>)>)>
|
|
<COND (.PI? <SETG PRSI .W>)
|
|
(T <SETG PRSO .W>)>
|
|
<SET AV <LOC ,WINNER>>
|
|
<COND (<AND <VERB? TAKE PUT> <NOT .PI?>>
|
|
<COND (<AND ,PRSI <NOT <==? ,PRSI ,JUG>>>
|
|
<COND (<EQUAL? ,PRSI ,SEA ,GLOBAL-WATER>
|
|
<TELL
|
|
"Ok, but there was plenty enough there already." CR>
|
|
<REMOVE .W>)
|
|
(<GETP ,PRSI ,P?CAPACITY>
|
|
<TELL
|
|
"The water leaks out of the " D ,PRSI " and evaporates immediately." CR>
|
|
<REMOVE .W>)
|
|
(T
|
|
<TELL
|
|
"The " D ,PRSI " isn't a very good container." CR>)>)
|
|
(<IN? ,JUG ,WINNER>
|
|
<COND (<NOT <FSET? ,JUG ,OPENBIT>>
|
|
<TELL "The jug is closed." CR>)
|
|
(<GLOBAL-IN? ,GLOBAL-WATER ,HERE>
|
|
<COND (<OR <NOT <IN? ,WATER ,JUG>>
|
|
<L? <GETP ,WATER ,P?SIZE> 4>>
|
|
<MOVE ,WATER ,JUG>
|
|
<PUTP ,WATER ,P?SIZE 4>
|
|
<TELL "The jug is now full of ">
|
|
<COND (<EQUAL? ,HERE ,BEACH>
|
|
<FSET ,WATER ,RMUNGBIT>
|
|
<TELL "sea">)
|
|
(<EQUAL? ,HERE ,FOREST-2>
|
|
<FSET ,WATER ,RMUNGBIT>
|
|
<TELL "foul algae-infested ">)
|
|
(T
|
|
<FCLEAR ,WATER ,RMUNGBIT>)>
|
|
<TELL "water." CR>)
|
|
(ELSE
|
|
<TELL "The jug is already full." CR>
|
|
<RTRUE>)>)
|
|
(T
|
|
<TELL "The only water here is in the jug." CR>)>)
|
|
(<AND <IN? ,PRSO ,JUG>
|
|
<VERB? TAKE>
|
|
<NOT ,PRSI>>
|
|
<SETG PRSO ,JUG>
|
|
<ITAKE>
|
|
<SETG PRSO .W>)
|
|
(T
|
|
<TELL "The water slips through your fingers." CR>)>)
|
|
(.PI? <TELL "Nice try." CR>)
|
|
(<VERB? DROP GIVE>
|
|
<REMOVE ,WATER>
|
|
<COND (<EQUAL? ,PRSI ,SEA ,GLOBAL-WATER>
|
|
<TELL
|
|
"Ok, but there was plenty enough there already." CR>)
|
|
(T
|
|
<TELL
|
|
"The water spills to the ground and evaporates." CR>)>)
|
|
(<VERB? POUR-ON>
|
|
<REMOVE ,WATER>
|
|
<TELL
|
|
"The water cascades off the " D ,PRSI " and onto the ground." CR>)
|
|
(<VERB? THROW>
|
|
<TELL
|
|
"The water splashes over everything and evaporates." CR>
|
|
<REMOVE ,WATER>)>>
|
|
|
|
<OBJECT SKY
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "sky")
|
|
(SYNONYM SKY STARS)
|
|
(ACTION SKY-F)>
|
|
|
|
<ROUTINE SKY-F ("AUX" EL)
|
|
<COND (<AND <FSET? ,HERE ,ONBIT> <VERB? EXAMINE>>
|
|
<SET EL </ ,TOD 10>>
|
|
<TELL "It would be " <GET ,TIME-TABLE .EL> " now.">
|
|
<COND (<G? ,TOD ,NIGHTFALL>
|
|
<TELL " Bright stars shine down on the earth.">)>
|
|
<CRLF>)
|
|
(T <TELL "That would be difficult from here." CR>)>>
|
|
|
|
<OBJECT NOT-HERE-OBJECT
|
|
(DESC "such thing" ;"[not here]")
|
|
(ACTION NOT-HERE-OBJECT-F)>
|
|
|
|
<ROUTINE NOT-HERE-OBJECT-F ("AUX" TBL (PRSO? T) OBJ)
|
|
;"This COND is game independent (except the TELL)"
|
|
<COND (<AND <EQUAL? ,PRSO ,NOT-HERE-OBJECT>
|
|
<EQUAL? ,PRSI ,NOT-HERE-OBJECT>>
|
|
<TELL "Those things aren't here!" CR>
|
|
<RTRUE>)
|
|
(<EQUAL? ,PRSO ,NOT-HERE-OBJECT>
|
|
<SET TBL ,P-PRSO>)
|
|
(T
|
|
<SET TBL ,P-PRSI>
|
|
<SET PRSO? <>>)>
|
|
<COND (.PRSO?
|
|
<COND (<OR <VERB? ZIFMIA>
|
|
<AND <VERB? CAST>
|
|
<EQUAL? ,PRSO ,SUMMON-SPELL>>>
|
|
<COND (<SET OBJ <FIND-NOT-HERE .TBL .PRSO?>>
|
|
<COND (<NOT <==? .OBJ ,NOT-HERE-OBJECT>>
|
|
<RTRUE>)>)
|
|
(T
|
|
<RFALSE>)>)>)
|
|
;(T
|
|
<COND (<VERB? PUT-VERBS-HERE>
|
|
<COND (<SET OBJ <FIND-NOT-HERE .TBL .PRSO?>>
|
|
<COND (<NOT <==? .OBJ ,NOT-HERE-OBJECT>>
|
|
<RTRUE>)>)
|
|
(T
|
|
<RFALSE>)>)>)>
|
|
;"Here is the default 'cant see any' printer"
|
|
<COND (<EQUAL? ,WINNER ,PLAYER>
|
|
<TELL "You can't see any ">
|
|
<NOT-HERE-PRINT .PRSO?>
|
|
<TELL " here!" CR>)
|
|
(T
|
|
<TELL "The " D ,WINNER " seems confused. \"I don't see any ">
|
|
<NOT-HERE-PRINT .PRSO?>
|
|
<TELL " here!\"" CR>)>
|
|
<SETG P-CONT <>>
|
|
<SETG QUOTE-FLAG <>>
|
|
<RTRUE>>
|
|
|
|
<ROUTINE FIND-NOT-HERE (TBL PRSO? "AUX" M-F OBJ)
|
|
;"Here is where special-case code goes. <MOBY-FIND .TBL> returns
|
|
number of matches. If 1, then P-MOBY-FOUND is it. One may treat
|
|
the 0 and >1 cases alike or different. It doesn't matter. Always
|
|
return RFALSE (not handled) if you have resolved the problem."
|
|
<SET M-F <MOBY-FIND .TBL>>
|
|
<COND (,DEBUG
|
|
<TELL "[Moby-found " N .M-F " objects" "]" CR>)>
|
|
<COND (<AND <G? .M-F 1>
|
|
<SET OBJ <GETP <GET .TBL 1> ,P?GLOBAL>>>
|
|
<SET M-F 1>
|
|
<SETG P-MOBY-FOUND .OBJ>)>
|
|
<COND (<==? 1 .M-F>
|
|
<COND (,DEBUG <TELL "[Namely: " D ,P-MOBY-FOUND "]" CR>)>
|
|
<COND (.PRSO? <SETG PRSO ,P-MOBY-FOUND>)
|
|
(T <SETG PRSI ,P-MOBY-FOUND>)>
|
|
<RFALSE>)
|
|
(<NOT .PRSO?>
|
|
<TELL "You wouldn't find any ">
|
|
<NOT-HERE-PRINT .PRSO?>
|
|
<TELL " there." CR>
|
|
<RTRUE>)
|
|
(T ,NOT-HERE-OBJECT)>>
|
|
|
|
<ROUTINE GLOBAL-NOT-HERE-PRINT (OBJ)
|
|
;<COND (,P-MULT <SETG P-NOT-HERE <+ ,P-NOT-HERE 1>>)>
|
|
<SETG P-CONT <>>
|
|
<SETG QUOTE-FLAG <>>
|
|
<TELL "You can't see">
|
|
<COND (<NOT <EQUAL? .OBJ ,GLOBAL-KRILL>>
|
|
<TELL " any">)>
|
|
<COND (<EQUAL? .OBJ ,PRSO> <PRSO-PRINT>)
|
|
(T <PRSI-PRINT>)>
|
|
<TELL " here." CR>>
|
|
|
|
<ROUTINE NOT-HERE-PRINT (PRSO?)
|
|
<COND (,P-OFLAG
|
|
<COND (,P-XADJ ;<TELL " "> <PRINTB ,P-XADJN>)>
|
|
<COND (,P-XNAM ;<TELL " "> <PRINTB ,P-XNAM>)>)
|
|
(.PRSO?
|
|
<BUFFER-PRINT <GET ,P-ITBL ,P-NC1> <GET ,P-ITBL ,P-NC1L> <>>)
|
|
(T
|
|
<BUFFER-PRINT <GET ,P-ITBL ,P-NC2> <GET ,P-ITBL ,P-NC2L> <>>)>>
|
|
|
|
<OBJECT BELBOZ
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "Necromancer Belboz")
|
|
(SYNONYM BELBOZ NECROMANCER)
|
|
(ACTION BELBOZ-F)
|
|
(FLAGS VILLAIN)>
|
|
|
|
<ROUTINE BELBOZ-F ()
|
|
<COND (<VERB? ZIFMIA>
|
|
<TELL
|
|
"A vision of the great Belboz begins to take shape before you, but ">
|
|
<COND (<GETP ,HERE ,P?TMAZE>
|
|
<TELL
|
|
"as
|
|
soon as he realizes where you are, he disappears, a look of fear upon
|
|
his face." CR>)
|
|
(T
|
|
<TELL
|
|
"with
|
|
a curt word and a waggle of his finger, he disappears again, shaking his
|
|
head in disappointment." CR>)>)
|
|
(<VERB? EXAMINE WHO>
|
|
<TELL
|
|
"Belboz is, in effect, your boss, professor, patron, and ultimate superior.
|
|
He is the head of the Circle of Enchanters." CR>)>>
|
|
|
|
<OBJECT GLOBAL-ROOM
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "room")
|
|
(SYNONYM ROOM PLACE AREA HERE)
|
|
(ACTION GLOBAL-ROOM-F)>
|
|
|
|
<ROUTINE GLOBAL-ROOM-F ()
|
|
<COND (<VERB? LOOK EXAMINE>
|
|
<PERFORM ,V?LOOK>
|
|
<RTRUE>)
|
|
(<VERB? WALK-AROUND>
|
|
<TELL
|
|
"Walking around the room reveals nothing else of interest. If you want to
|
|
move elsewhere, simply indicate the direction you wish to move in." CR>)>>
|
|
|
|
<OBJECT BRAMBLES
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM BRAMBLE)
|
|
(DESC "bramble")
|
|
(ACTION BRAMBLES-F)>
|
|
|
|
<ROUTINE BRAMBLES-F ()
|
|
<COND (<NOT <OUTSIDE? ,HERE>>
|
|
<TELL "The only brambles here are in your head." CR>)
|
|
(<VERB? SEARCH LOOK-INSIDE>
|
|
<TELL
|
|
"There's nothing in the brambles now. Count your blessings." CR>)>>
|
|
|
|
<OBJECT GLOBAL-HOLE
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "hole")
|
|
(SYNONYM HOLE)
|
|
(ACTION GLOBAL-HOLE-F)>
|
|
|
|
<ROUTINE GLOBAL-HOLE-F ()
|
|
<COND (<VERB? DIG>
|
|
<TELL "It's not worth the bother." CR>)
|
|
(T <GLOBAL-NOT-HERE-PRINT ,GLOBAL-HOLE>)>> |