Final Revision

This commit is contained in:
historicalsource 2019-04-14 00:27:34 -04:00
parent 3a4d17d26a
commit eb8982c216
28 changed files with 7777 additions and 713 deletions

1354
actions.zil Normal file

File diff suppressed because it is too large Load diff

56
c1.zil
View file

@ -40,7 +40,7 @@ spell scrolls." CR>)
<MAGIC-DOOR-EXIT>)
(ELSE ,DULL-ROOM-RETURN)>>
<GLOBAL DULL-ROOM-RETURN <>>
<GLOBAL DULL-ROOM-RETURN:OBJECT <>>
"EARTH"
@ -646,7 +646,7 @@ see a fat, pointed tongue.">
"There's no hinge there; it's not a door!" CR>)>)>>
<ROUTINE WONT-FIT ()
<TELL "It won't fit." CR>>
<TELL "Your hand won't fit in." CR>>
<ROUTINE MOUTH-CONTENTS ("AUX" STR)
<SET STR " Sitting on the tongue">
@ -739,7 +739,7 @@ ruin." CR>)>)>>
<OBJECT ZIPPER
(IN RUINS-ROOM)
(DESC "zipper")
(SYNONYM ZIPPER HOLE POCKET POUCH)
(SYNONYM ZIPPER AABBCC ;"HOLE" POCKET POUCH)
(ADJECTIVE SILVER DIMLY LIT)
(ACTION ZIPPER-F)
(CONTFCN ZIPPER-F)
@ -769,9 +769,8 @@ ruin." CR>)>)>>
<MAKE-OUT>)>)
(<EQUAL? .RARG ,M-BEG>
<COND (<AND <NOT-IN-VEHICLE?>
<OR <VERB? TAKE>
<NOT <FSET? ,ZIPPER ,OPENBIT>>>>
<TELL "That's outside." CR>)
<NOT <VERB? FIND WHAT WHERE WHO>>>
<TELL "That's not in here." CR>)
(<AND <VERB? LOOK-INSIDE> <EQUAL? ,PRSO ,ZIPPER>>
<PERFORM ,V?LOOK>
<RTRUE>)
@ -788,12 +787,14 @@ ruin." CR>)>)>>
(<AND <VERB? OPEN REZROV>
<EQUAL? ,PRSO ,ZIPPER>
<NOT <FSET? ,ZIPPER ,OPENBIT>>>
<PUT <GETPT ,ZIPPER ,P?SYNONYM> 1 ,W?HOLE>
<FSET ,ZIPPER ,OPENBIT>
<TELL
"Opening the zipper reveals the outside world." CR>)
<TELL "Opened. ">
<CANT-SEE-OUTSIDE>)
(<AND <VERB? CLOSE>
<EQUAL? ,PRSO ,ZIPPER>
<FSET? ,ZIPPER ,OPENBIT>>
<PUT <GETPT ,ZIPPER ,P?SYNONYM> 1 ,W?ZIPPER>
<FCLEAR ,ZIPPER ,OPENBIT>
<TELL
,YOU-ARE-NOW "in a private little world of your own." CR>)
@ -803,11 +804,17 @@ ruin." CR>)>)>>
(<OR <VERB? DISEMBARK>
<AND <VERB? DROP> <EQUAL? ,PRSO ,ZIPPER>>>
<COND (<FSET? ,ZIPPER ,OPENBIT>
<SETG LIT <LIT? ,HERE>>
<MOVE ,PLAYER <LOC ,ZIPPER>>
<MOVE ,ZIPPER ,PLAYER>
<TELL
"You get out of the hole." CR>)
<COND (<NOT <LOC ,ZIPPER>>
<EMERGE-AND-DROWN>)
(ELSE
<SETG LIT <LIT? ,HERE>>
<MOVE ,PLAYER <LOC ,ZIPPER>>
<MOVE ,ZIPPER ,PLAYER>
<TELL
"You get out of the hole." CR>
<COND (,OGRE-MURDEROUS?
<I-OGRE-KILLS-YOU>)>
<RTRUE>)>)
(ELSE
<TELL
,YOU-HAVE-TO " open the " 'ZIPPER " first." CR>)>)>)
@ -819,6 +826,7 @@ ruin." CR>)>)>>
<TELL-OPEN-CLOSED ,ZIPPER>)
(<AND <VERB? OPEN REZROV>
<NOT <FSET? ,ZIPPER ,OPENBIT>>>
<PUT <GETPT ,ZIPPER ,P?SYNONYM> 1 ,W?HOLE>
<FSET ,ZIPPER ,OPENBIT>
<COND (<NOT ,LIT> <SETG LIT <LIT? ,HERE>>)>
<TELL
@ -831,6 +839,7 @@ ruin." CR>)>)>>
the area.">)>
<CRLF>)
(<AND <VERB? CLOSE> <FSET? ,ZIPPER ,OPENBIT>>
<PUT <GETPT ,ZIPPER ,P?SYNONYM> 1 ,W?ZIPPER>
<FCLEAR ,ZIPPER ,OPENBIT>
<SETG LIT <LIT? ,HERE>>
<TELL
@ -869,7 +878,7 @@ the area.">)>
though something was thrust into your hand, there's something there. Oops,
it slipped away again." CR>)>)
(<VERB? BOARD>
<COND (<NOT <HELD? ,ZIPPER>>
<COND (<NOT <IN? ,ZIPPER ,PLAYER>>
<DONT-HAVE-THAT>)
(<FSET? ,ZIPPER ,OPENBIT>
<COND (<OR <EQUAL? ,HERE
@ -879,9 +888,10 @@ it slipped away again." CR>)>)
,IN-PIPE-2>
<EQUAL? ,HERE ,IN-SEWER ,RUINED-PIPE
,PAST-CABINET>
<EQUAL? ,HERE ,CABINET>>
<TELL
"An impossible maneuver under the circumstances." CR>
<EQUAL? ,HERE ,CABINET>
<AND <EQUAL? ,HERE ,OUBLIETTE>
<G? ,WATER-FLAG 0>>>
<IMPOSSIBLE-MANEUVER>
<RTRUE>)>
<COND (<NOT ,ZIPPER-SCROLL?>
<SETG ZIPPER-SCROLL? T>
@ -1366,6 +1376,8 @@ hermit looks glum." CR>>
"\"I like avalanches. They keep people away. Usually.\"" CR>)
(<EQUAL? .OBJ ,ZORKMID>
<MATERIALISM>)
(<EQUAL? .OBJ ,FISH ,BREAD>
<TELL "He perks up at the mention of food." CR>)
(<EQUAL? .OBJ ,LIFE-CUBE ,HUT ,HERMIT>
<TELL
"\"I've been living up here for many years. Wanted to get
@ -1423,7 +1435,7 @@ of a rock not five minutes' walk from here. It was perfect.\"" CR>)>>
<ROCKS-TUMBLING>)
(ELSE
<TELL ,ROCKS-PRECARIOUS ,PERIOD>)>)>)
(<VERB? CLIMB-FOO CLIMB-UP CLIMB-ON>
(<VERB? CLIMB-FOO CLIMB-UP CLIMB-ON CLIMB-OVER>
<DO-WALK ,P?UP>)
(<VERB? RUB MOVE PUSH LESOCH KICK MALYON>
<COND (<EQUAL? ,HERE ,VOLCANO-BASE
@ -1539,7 +1551,7 @@ trail heads west." CR>)>>
(EAST TO CLIFF-BOTTOM)
(IN TO OGRE-CAVE)
(NORTH TO OGRE-CAVE)
(UP "There's no path that way.")
(UP "There's no way up here.")
(ACTION CAVE-ENTRANCE-F)
(FLAGS RLANDBIT OUTSIDE ONBIT)
(GLOBAL GLOBAL-CLIFF GLOBAL-CAVE GLOBAL-ROCKS)
@ -1664,6 +1676,9 @@ credit." CR>>
"This small but cozy hole is the ogre's lair. Moldy, filthy furs piled
in one corner make a crude bed. There is a rocky crawl up to the main
part of the cave." CR>)
(<EQUAL? .RARG ,M-ENTER>
<COND (<EQUAL? ,OHERE ,DULL-ROOM>
<I-OGRE-KILLS-YOU T>)>)
(<EQUAL? .RARG ,M-BEG>
<COND (<AND <VERB? LISTEN> <NOT ,PRSO>>
<OGRE-NOISES>)
@ -1686,6 +1701,7 @@ part of the cave." CR>)
<SET L <LOC ,MAGIC-BOX>>
<COND (<AND .L
<IN? .L ,ROOMS>
<NOT <EQUAL? .L ,EMPORIUM>>
<NOT <GETP .L ,P?CUBE>>
<EQUAL? <GETP ,HERE ,P?CUBE> ,MAGIC-BOX-CUBE>>
<COND (<EQUAL? .L ,CASTLE>
@ -1818,7 +1834,7 @@ bear.">
<TELL
" He is currently six inches of concentrated ugliness.">)>
<CRLF>)
(<AND <VERB? GIVE WAVE-AT> <EQUAL? ,PRSI ,OGRE>>
(<AND <VERB? GIVE SHOW WAVE-AT> <EQUAL? ,PRSI ,OGRE>>
<GIVE-TO-OGRE>)
(<VERB? LISTEN>
<TELL CTHE ,OGRE " sounds ">

35
c2.zil
View file

@ -169,16 +169,19 @@ to reach the bottom." CR>>
(FLAGS RWATERBIT ONBIT)
(GLOBAL WATER)>
<ROUTINE EMERGE-AND-DROWN ()
<COND (<NOT <EQUAL? ,CHANGED? ,GROUPER>>
<JIGS-UP
"You have reemerged beneath the water. There is no air here.
You drown.">)>>
<ROUTINE OCEAN-FLOOR-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"You are deep beneath the waves, near a small pile of rocks and broken
coral that make up the nest of a grouper." CR>)
(<EQUAL? .RARG ,M-ENTER>
<COND (<NOT <EQUAL? ,CHANGED? ,GROUPER>>
<JIGS-UP
"You have reemerged beneath the ocean. There is no air here.
You drown.">)>)
<EMERGE-AND-DROWN>)
(<EQUAL? .RARG ,M-BEG>
<COND (<VERB? WALK SWIM>
<COND (<EQUAL? ,CHANGED? ,GROUPER>
@ -207,7 +210,7 @@ surface." CR CR>
(<EQUAL? ,CHANGED? ,GROUPER>
<FUN-IN-OCEAN>)>)>>
<GLOBAL ATE-AS-GROUPER? <>>
<GLOBAL ATE-AS-GROUPER?:FLAG <>>
<OBJECT GROUPER-NEST
(IN OCEAN-FLOOR)
@ -346,9 +349,9 @@ a few moments, its curiosity unsated." CR>)>>
(FLAGS RLANDBIT)
(GLOBAL TRAP-DOOR WATER)>
<GLOBAL WATER-FLAG 0> ;"how full is oubliette?"
<GLOBAL FREEZE-FLAG 0> ;"how much ice is there?"
<GLOBAL FREEZE-COUNT 0> ;"how near death from hypothermia?"
<GLOBAL WATER-FLAG:NUMBER 0> ;"how full is oubliette?"
<GLOBAL FREEZE-FLAG:NUMBER 0> ;"how much ice is there?"
<GLOBAL FREEZE-COUNT:NUMBER 0> ;"how near death from hypothermia?"
<ROUTINE OUBLIETTE-DOWN-EXIT ()
<COND (,SMALL-FLAG
@ -517,7 +520,7 @@ hypothermia.">>
(<VERB? RUB>
<TELL "It's cold." CR>)>)>>
<GLOBAL WATER-HEIGHTS
<GLOBAL WATER-HEIGHTS:TABLE
<PLTABLE "one-quarter" "half" "three-quarters" "completely">>
<OBJECT INFLOW
@ -735,12 +738,12 @@ and even as a ruin, its essence is still perfect." CR>)>>
(THINGS <PSEUDO (MOSSY SLIME MOSS-PSEUDO)
(<> MOSS MOSS-PSEUDO)>)>
<GLOBAL LONG-PIPE-DESC
<GLOBAL LONG-PIPE-DESC:STRING
"You are inside a small ceramic pipe nearly filled with fast-flowing cold
water. The walls of the pipe are slippery and overgrown with mossy slime
wherever an irregularity shields the growth from the force of the water. ">
<GLOBAL LONG-PIPE-DESC-2
<GLOBAL LONG-PIPE-DESC-2:STRING
"Going east (against the current) would be nearly impossible. Going west
is almost unavoidable.">
@ -851,7 +854,7 @@ confused, you are dashed against the rocks at the bottom of the cistern.">)>>
(EAST TO CELL-HALL-EAST)
(ACTION PRISON-F)
(FLAGS RLANDBIT)
(GLOBAL TRAP-DOOR STAIRS EAST-WALL)
(GLOBAL TRAP-DOOR EAST-WALL)
(THINGS <PSEUDO (<> SLIME MOSS-PSEUDO)
(<> MOSS MOSS-PSEUDO)
(<> FUNGUS MOSS-PSEUDO)>)>
@ -966,6 +969,7 @@ spell.")
<NOT <FSET? .L ,OPENBIT>>>
<TELL-OPEN-CLOSED .L>)
(<AND <VERB? OPEN>
<EQUAL? ,PRSO ,CABINET ,PAST-CABINET>
<NOT <FSET? ,PRSO ,OPENBIT>>>
<FSET ,PRSO ,OPENBIT>
<TELL "Opened." CR>)>)
@ -1025,6 +1029,7 @@ materializes before you!" CR>
<TELL
"The cabinet bursts open">
<COND (<AND <NOT <IN? ,PLAYER ,CABINET>>
<NOT <IN? ,PLAYER ,PAST-CABINET>>
<FIRST? ,PRSO>>
<TELL ", revealing ">
<PRINT-CONTENTS ,PRSO>)>
@ -1084,7 +1089,7 @@ as you watch. While not good as new, the book looks much better">)>
<TELL "There's no spell in ">
<THE-PRSO>)>)>>
<GLOBAL DEAD-BOOK-SCORE 15>
<GLOBAL DEAD-BOOK-SCORE:NUMBER 15>
<ROUTINE CELL-PSEUDO ()
<COND (<VERB? EXAMINE LOOK-INSIDE>
@ -1124,7 +1129,7 @@ bright red and yellow coruscations. The only exit is down." CR>)
<SETG ROC-COUNT 0>
<QUEUE I-ROC -1>)>>
<GLOBAL SEEN-TOWER? <>>
<GLOBAL SEEN-TOWER?:FLAG <>>
<ROUTINE ROC-GRABS-PLAYER ("OPTIONAL" (FALL? <>))
<MOVE ,ROC ,HERE>
@ -1338,7 +1343,7 @@ ravenous like all young birds, gobbles you down.">)>)>>
(ELSE
<TELL "a " 'CONNECTIVITY-CUBE>)>
<TELL " there." CR>)
(<OR <HOSTILE-VERB?> <VERB? OPEN>>
(<OR <HOSTILE-VERB?> <VERB? OPEN RAISE>>
<COND (<IMMOBILIZED?> <RTRUE>)
(<IN? ,ROC ,HERE>
<TELL

268
c3.zil
View file

@ -42,7 +42,7 @@ floor opens into thin air which goes a long way down before anything
solid is reached." CR>
<RFALSE>)>>
<GLOBAL FALL-WARNING? <>>
<GLOBAL FALL-WARNING?:FLAG <>>
<ROUTINE AIR-ROOM-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
@ -233,7 +233,7 @@ of carpets">
'RANDOM-CARPET " that's shabby and badly made">)>)>
<TELL ,PERIOD>>
<GLOBAL MERCHANT-FLAG <>>
<GLOBAL MERCHANT-FLAG:FLAG <>>
<ROUTINE MERCHANT-F ("OPTIONAL" (RARG <>) "AUX" PREV)
<SETG MERCHANT-FLAG T>
@ -445,7 +445,7 @@ thief!\"">
<KICKED-OUT>
<RTRUE>)>>
<GLOBAL ASKED-FOR <>>
<GLOBAL ASKED-FOR:FLAG <>>
<ROUTINE KICKED-OUT ("AUX" (L <LOC ,PLAYER>))
<COND (<FSET? .L ,VEHBIT>
@ -462,10 +462,10 @@ thief!\"">
"The merchant says, \"Time is money, and you've wasted too much of mine!\"">
<KICKED-OUT>)>>
<GLOBAL YOUR-OFFER 0>
<GLOBAL MERCHANT-WANTS 900>
<GLOBAL MERCHANT-COUNT 0>
<GLOBAL MERCHANT-SAYS
<GLOBAL YOUR-OFFER:NUMBER 0>
<GLOBAL MERCHANT-WANTS:NUMBER 900>
<GLOBAL MERCHANT-COUNT:NUMBER 0>
<GLOBAL MERCHANT-SAYS:TABLE
<PLTABLE
"\"These carpets are the epitome of the weaver's art, woven
by skilled native craftsmen with pride in their work. The Flatheads themselves
@ -615,15 +615,18 @@ to fall apart.">
<EQUAL? ,PRSI ,SHEARS ,KNIFE>>
<CARPET-CRUMBLES>)>)>>
<GLOBAL SITTING? <>>
<GLOBAL SITTING?:FLAG <>>
<ROUTINE IMPOSSIBLE-MANEUVER ()
<TELL
"An impossible maneuver under the circumstances." CR>>
<ROUTINE CANT-GET-ON? ()
<COND (<FSET? ,HERE ,RAIRBIT>
<TELL
"A good thought, but a little too late to save you, I'm afraid." CR>)
(<FSET? ,HERE ,RWATERBIT>
<TELL
"Impossible under the circumstances." CR>)
<IMPOSSIBLE-MANEUVER>)
(<HELD? ,PRSO>
<TELL
,YOU-HAVE-TO " put it down first." CR>)>>
@ -848,13 +851,15 @@ fringe of the carpet starts to ruffle expectantly." CR>)
<TELL ,PERIOD>)>
<RTRUE>>
<GLOBAL RIPPLES "The carpet ripples excitedly">
<GLOBAL RIPPLES:STRING "The carpet ripples excitedly">
<ROUTINE GET-OFF-FIRST ()
<TELL
,YOU-HAVE-TO " get off the carpet first." CR>>
<ROUTINE CARPET-CRUMBLES ()
<COND (<IN? ,PLAYER ,PRSO>
<MOVE ,PLAYER ,HERE>)>
<REMOVE ,PRSO>
<TELL
"As the first thread is cut, the " 'PRSO " crumbles to dust." CR>>
@ -911,7 +916,10 @@ Abdul el-Flathead|
(<AND <VERB? CASKLY>
<NOT <IN? ,CARPET-LABEL ,MAGIC-CARPET>>>
<TELL ,NOTHING-HAPPENS>)
(<VERB? TAKE MUNG>
(<OR <VERB? TAKE MUNG>
<AND <VERB? CUT>
,PRSI
<FSET? ,PRSI ,WEAPONBIT>>>
<FSET ,PRSO ,RMUNGBIT>
<COND (<AND <IN? ,PLAYER ,MAGIC-CARPET>
<FSET? ,HERE ,RAIRBIT>>
@ -1014,9 +1022,9 @@ CR>)>)>>
CTHE ,PRSO " falls, dwindling below you, never to be seen again." CR>)
(ELSE <RTRUE>)>>
<GLOBAL NS-COUNT 0>
<GLOBAL EW-COUNT 0>
<GLOBAL UD-COUNT 0>
<GLOBAL NS-COUNT:NUMBER 0>
<GLOBAL EW-COUNT:NUMBER 0>
<GLOBAL UD-COUNT:NUMBER 0>
<ROOM LOST-IN-CLOUDS
(IN ROOMS)
@ -1116,7 +1124,7 @@ is undisturbed by the heat." CR>)
<TELL
"A small patch of lava cools, but it is swept away." CR>>
<GLOBAL SMELL-LAVA "It smells like boiling brimstone.|">
<GLOBAL SMELL-LAVA:STRING "It smells like boiling brimstone.|">
<ROUTINE LAVA-PSEUDO ()
<COND (<VERB? EXAMINE TAKE SWIM THROUGH>
@ -1166,7 +1174,7 @@ the flow." CR>)
<SETG ROCK-ARRIVED? T>
<QUEUE I-ROCK-ARRIVES 2>)>)>>
<GLOBAL ROCK-ARRIVED? <>>
<GLOBAL ROCK-ARRIVED?:FLAG <>>
<OBJECT LAVA-ROCK
(DESC "lava fragment")
@ -1225,7 +1233,7 @@ CTHE ,PRSI " hisses and sizzles when you touch the lava with it." CR>)>)
(MOLTEN LAVA LAVA-PSEUDO)
(<> MOUNTAIN VOLCANO-PSEUDO)>)>
<GLOBAL GOT-MAGIC-CUBE? <>>
<GLOBAL GOT-MAGIC-CUBE?:FLAG <>>
<ROUTINE OUTCROPPING-ROOM-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
@ -1288,7 +1296,7 @@ flat top about four feet across which is roughly square.">
and cubical.">)>
<CLEVER-CONTENTS ,OUTCROPPING-ROOM
" On the top of the outcropping"
,MAGIC-CUBE>
,MAGIC-CUBE>
<CRLF>)
(<AND <VERB? PUT PUT-ON>
<EQUAL? ,PRSI ,OUTCROPPING>>
@ -1380,7 +1388,11 @@ light coming from ">
<TELL " has been reduced
to a thin, barely glowing stream of tiny blobs that drips, spurts
and sputters uselessly to the ground. There it collects into a small pile
which is slowly disappearing, perhaps by evaporation." CR>)>)>>
which is slowly disappearing, perhaps by evaporation." CR>)>)
(<EQUAL? .RARG ,M-ENTER>
<PUT <GETPT ,LIGHT ,P?SYNONYM> 2 ,W?PILE>)
(<EQUAL? .RARG ,M-LEAVE>
<PUT <GETPT ,LIGHT ,P?SYNONYM> 2 ,W?LIGHTS>)>>
<ROUTINE TELL-LIGHT-SOURCE ()
<COND (<EQUAL? ,LIT ,WINNER>
@ -1402,7 +1414,7 @@ which is slowly disappearing, perhaps by evaporation." CR>)>)>>
(THINGS <PSEUDO (LIGHT POOL POOL-PSEUDO)>)>
<ROUTINE POOL-PSEUDO ()
<COND (<VERB? THROUGH> <DO-WALK ,P?DOWN>)
<COND (<VERB? THROUGH BOARD> <DO-WALK ,P?DOWN>)
(<VERB? EXAMINE> <PERFORM ,V?LOOK> <RTRUE>)
(<AND <VERB? THROW DROP>
<EQUAL? ,PRSI ,PSEUDO-OBJECT>>
@ -1441,6 +1453,7 @@ center of the room." CR>)>)
<I-GRUES-NOTICE T>
<RTRUE>)>)
(<EQUAL? .RARG ,M-ENTER>
<PUT <GETPT ,LIGHT ,P?SYNONYM> 2 ,W?PILE>
<COND (<NOT <EQUAL? ,CHANGED? ,GRUE>>
<COND (<NOT <EQUAL? ,OHERE ,DARK-CAVE>>
<QUEUE I-GRUES-NOTICE 1>
@ -1455,7 +1468,9 @@ a larger area." CR CR>)
"You make your way carefully in the almost non-existent light down to an
area filled with dim shapes. They move about purposefully, making horrible
gurgling noises. The floor is rough and jumbled near the walls, so you
haven't been noticed yet." CR CR>)>)>)>>
haven't been noticed yet." CR CR>)>)>)
(<EQUAL? .RARG ,M-LEAVE>
<PUT <GETPT ,LIGHT ,P?SYNONYM> 2 ,W?LIGHTS>)>>
<ROOM LIGHT-POOL
(IN ROOMS)
@ -1478,6 +1493,7 @@ which sticks up out of the light." CR>)
<EQUAL? ,PRSO <> ,ROOMS ,PSEUDO-OBJECT>>
<DO-WALK ,P?OUT>)>)
(<EQUAL? .RARG ,M-ENTER>
<PUT <GETPT ,LIGHT ,P?SYNONYM> 2 ,W?PILE>
<QUEUE I-FRIED-GRUE 2>
<TELL
"You enter the pool, which is composed of the accumulated dribbles of light
@ -1486,7 +1502,9 @@ light tickles">
<COND (<EQUAL? ,CHANGED? ,GRUE>
<TELL " at first, but then it begins to burn and your eyes are
hurting severely">)>
<TELL ,PERIOD CR>)>>
<TELL ,PERIOD CR>)
(<EQUAL? .RARG ,M-LEAVE>
<PUT <GETPT ,LIGHT ,P?SYNONYM> 2 ,W?LIGHTS>)>>
<ROOM PILLAR-ROOM
(IN ROOMS)
@ -1509,13 +1527,17 @@ fear." CR>)
(ELSE
<TELL
"almost imperceptible light. You can barely see dim shapes capering in
the dark." CR>)>)>>
the dark." CR>)>)
(<EQUAL? .RARG ,M-ENTER>
<PUT <GETPT ,LIGHT ,P?SYNONYM> 2 ,W?PILE>)
(<EQUAL? .RARG ,M-LEAVE>
<PUT <GETPT ,LIGHT ,P?SYNONYM> 2 ,W?LIGHTS>)>>
<OBJECT PILLAR
(IN LOCAL-GLOBALS)
(DESC "pillar")
(SYNONYM PILLAR GLYPHS)
(ADJECTIVE MARBLE SHORT ERODED)
(ADJECTIVE MARBLE ERODED STUMP)
(FLAGS NDESCBIT SURFACEBIT READBIT)
(ACTION PILLAR-F)
(TEXT "The only readable ones say \"D.L. 1985.\"")>
@ -1523,20 +1545,24 @@ the dark." CR>)>)>>
<ROUTINE PILLAR-F ("AUX" (IGNORE? <>))
<COND (<VERB? EXAMINE LOOK-INSIDE>
<TELL
"This is a short, squat marble pillar covered with eroded glyphs. It
"This is the stump of a marble pillar covered with eroded glyphs. It
barely projects out of the pool of light. The grues seem awed by it.">
<COND (<AND <IN? ,FIRE-CUBE ,PILLAR-ROOM>
<NOT <EQUAL? ,HERE ,PILLAR-ROOM>>>
<SET IGNORE? ,FIRE-CUBE>
<TELL
" There is something small and white on the pillar.">)>
<CLEVER-CONTENTS ,PILLAR-ROOM
" On top of the pillar"
.IGNORE?>
<COND (<EQUAL? ,HERE ,LIGHT-POOL>
<TELL
" You can't see the top of the pillar from here.">)
(ELSE
<TELL
" There is something small and white on the pillar.">
<CLEVER-CONTENTS ,PILLAR-ROOM
" On top of the pillar"
.IGNORE?>)>)>
<CRLF>)
(<THROW-ONTO ,PILLAR ,PILLAR-ROOM>
<RTRUE>)
(<VERB? CLIMB-ON CLIMB-FOO BOARD>
(<VERB? CLIMB-ON CLIMB-UP CLIMB-FOO BOARD>
<COND (<EQUAL? ,HERE ,GRUE-CAVE>
<TELL
"It's in the pool, out of reach from here." CR>)
@ -1645,7 +1671,7 @@ glassware are carelessly stacked in corners.">)>
north side of the room whose lock mechanism is visible. ">
<DESCRIBE-VAULT-DOOR>)
(<EQUAL? .RARG ,M-LEAVE>
<MAKE-JUNK>)>>
<COND (<VERB? BLORPLE> <MAKE-JUNK>)>)>>
<OBJECT VAULT-DOOR
(IN LOCAL-GLOBALS)
@ -1758,7 +1784,7 @@ five burly guards are coming." CR>)>)
(IN LOCAL-GLOBALS)
(DESC "iron door")
(SYNONYM DOOR)
(ADJECTIVE IRON NORTH N)
(ADJECTIVE IRON NORTH)
(FLAGS DOORBIT LOCKED)
(ACTION IRON-DOOR-F)>
@ -1770,7 +1796,7 @@ five burly guards are coming." CR>)>)
(<VERB? THROUGH>
<DO-WALK ,P?NORTH>)>>
<GLOBAL SPELLS-USED 0>
<GLOBAL SPELLS-USED:FLAG 0>
<ROUTINE SCALES-ROOM-F (RARG "AUX" P1 P2)
<COND (<EQUAL? .RARG ,M-LOOK>
@ -1795,7 +1821,7 @@ five burly guards are coming." CR>)>)
<TELL "a closed">)>
<TELL " iron door. To the south is the inner vault. Its
steel door is ">
<COND (<FSET? ,IRON-DOOR ,OPENBIT>
<COND (<FSET? ,VAULT-DOOR ,OPENBIT>
<TELL "open">)
(ELSE
<TELL "closed">)>
@ -1831,9 +1857,10 @@ that they are.">)
<CUBES-TO-PILES>
<COND (,TIME-CUBE-SCORE?
<SETG TREASURY-GUARDED? T>)>
<MAKE-JUNK>)>>
<COND (<VERB? BLORPLE>
<MAKE-JUNK>)>)>>
<GLOBAL FAKE-CUBE-LIST
<GLOBAL FAKE-CUBE-LIST:TABLE
<LTABLE 0
CUBE-1 CUBE-2 CUBE-3 CUBE-4 CUBE-5 CUBE-6
CUBE-7 CUBE-8 CUBE-9 CUBE-10 CUBE-11 TIME-CUBE>>
@ -1848,11 +1875,10 @@ that they are.">)
<PUT .BUF 0 0>
<SETG P-QNEXT .BUF>>
<ROUTINE CUBES-TO-PILES ("AUX" (CNT 1) L)
<ROUTINE CUBES-TO-PILES ("AUX" L)
<SET L ,FAKE-CUBE-LIST>
<REPEAT ()
<COND (<IGRTR? CNT 13> <RETURN>)>
<MOVE <GET .L .CNT> ,PILE-1>>
<DO (CNT 2 13)
<MOVE <GET .L .CNT> ,PILE-1>>
<COND (<EQUAL? ,TIME-CUBE ,BLORPLE-OBJECT>
<REMOVE ,TIME-CUBE>
<COND (<NOT ,TIME-CUBE-SCORE?>
@ -1863,37 +1889,31 @@ that they are.">)
<LOC ,BLORPLE-OBJECT>>
<SETG BLORPLE-OBJECT <>>)>>
<GLOBAL TIME-CUBE-SCORE? <>>
<GLOBAL TIME-CUBE-SCORE?:FLAG <>>
<ROUTINE JUGGLE-CUBES ("AUX" (CNT 1) BUF (P1 0) (P2 0) Q)
<ROUTINE JUGGLE-CUBES ("AUX" BUF (P1 0) (P2 0) Q)
<ROB ,PILE-1 ,SCALES-ROOM>
<ROB ,PILE-2 ,SCALES-ROOM>
<REPEAT ()
<COND (<IGRTR? CNT 13> <RETURN>)>
<SET Q <PICK-ONE ,FAKE-CUBE-LIST>>
<FSET .Q ,NDESCBIT>
<COND (<OR <EQUAL? .P2 6>
<AND <L? .P1 6> <PROB 50>>>
<SET P1 <+ .P1 1>>
<MOVE .Q ,PILE-1>)
(ELSE
<MOVE .Q ,PILE-2>
<SET P2 <+ .P2 1>>)>>
<DO (CNT 2 13)
<SET Q <PICK-ONE ,FAKE-CUBE-LIST>>
<FSET .Q ,NDESCBIT>
<COND (<OR <EQUAL? .P2 6>
<AND <L? .P1 6> <PROB 50>>>
<SET P1 <+ .P1 1>>
<MOVE .Q ,PILE-1>)
(ELSE
<MOVE .Q ,PILE-2>
<SET P2 <+ .P2 1>>)>>
<SET BUF ,P-QBUF>
<SET Q <FIRST? ,PILE-1>>
<REPEAT ()
<COND (<NOT .Q> <RETURN>)>
<PUTP .Q ,P?NAME .BUF>
<PUT .BUF 0 <CUBE-ADJ .Q>>
<SET BUF <REST .BUF 10>>
<SET Q <NEXT? .Q>>>
<SET Q <FIRST? ,PILE-2>>
<REPEAT ()
<COND (<NOT .Q> <RETURN>)>
<PUTP .Q ,P?NAME .BUF>
<PUT .BUF 0 <CUBE-ADJ .Q>>
<SET BUF <REST .BUF 10>>
<SET Q <NEXT? .Q>>>>
<MAP-CONTENTS (Q ,PILE-1)
<PUTP .Q ,P?NAME .BUF>
<PUT .BUF 0 <CUBE-ADJ .Q>>
<SET BUF <REST .BUF 10>>>
<MAP-CONTENTS (Q ,PILE-2)
<PUTP .Q ,P?NAME .BUF>
<PUT .BUF 0 <CUBE-ADJ .Q>>
<SET BUF <REST .BUF 10>>>
<RTRUE>>
<ROUTINE TELL-PILE (PILE OTHER)
<TELL
@ -1920,12 +1940,11 @@ that they are.">)
<RFALSE>)>>
<ROUTINE MAKE-JUNK ()
<COND (<VERB? BLORPLE>
<FCLEAR ,VAULT-DOOR ,OPENBIT>
<COND (<HELD? ,TREASURE>
<MOVE ,JUNK <LOC ,TREASURE>>
<FSET ,TREASURE ,NDESCBIT>
<MOVE ,TREASURE ,INNER-VAULT>)>)>>
<FCLEAR ,VAULT-DOOR ,OPENBIT>
<COND (<HELD? ,TREASURE>
<MOVE ,JUNK <LOC ,TREASURE>>
<FSET ,TREASURE ,NDESCBIT>
<MOVE ,TREASURE ,INNER-VAULT>)>>
<OBJECT JUNK
(SYNONYM JUNK PASTE GILT LEAD)
@ -1947,22 +1966,21 @@ lead coins." CR>)
<TELL "The junk looks valuable again." CR>)
(ELSE <RTRUE>)>)>>
<GLOBAL IS-GLOWING " is glowing with a faint blue glow.">
<GLOBAL IS-GLOWING:STRING " is glowing with a faint blue glow.">
<ROUTINE MEASURE (OBJ "AUX" (F <FIRST? .OBJ>) (CNT 0))
<REPEAT ()
<COND (<NOT .F> <RETURN .CNT>)
(<GETP .F ,P?CUBE> ;"REAL CUBE"
<SET CNT <+ .CNT ,REAL-VALUE>>)
(<GETPT .F ,P?NAME> ;"FAKE CUBE"
<SET CNT <+ .CNT ,FAKE-VALUE>>)
(<OR <FSET? .F ,MAGICBIT>
<FSET? .F ,SCROLLBIT>>
<SET CNT <+ .CNT 1>>)>
<SET F <NEXT? .F>>>>
<ROUTINE MEASURE (OBJ "AUX" F (CNT 0))
<MAP-CONTENTS (F .OBJ)
(<RETURN .CNT>)
<COND (<GETP .F ,P?CUBE> ;"REAL CUBE"
<SET CNT <+ .CNT ,REAL-VALUE>>)
(<GETPT .F ,P?NAME> ;"FAKE CUBE"
<SET CNT <+ .CNT ,FAKE-VALUE>>)
(<OR <FSET? .F ,MAGICBIT>
<FSET? .F ,SCROLLBIT>>
<SET CNT <+ .CNT 1>>)>>>
<GLOBAL REAL-VALUE 3>
<GLOBAL FAKE-VALUE 2>
<GLOBAL REAL-VALUE:NUMBER 3>
<GLOBAL FAKE-VALUE:NUMBER 2>
<OBJECT ALARM-FAIRY
(DESC "alarm fairy")
@ -1993,8 +2011,8 @@ ceiling, out of reach, and jeers at you." CR>)
"\"Missed me! Missed me! Now you have to kiss me!\" It plants a smooch
on your cheek." CR>)>>
<GLOBAL GUARDS-FLAG 0>
<GLOBAL TREASURY-GUARDED? <>>
<GLOBAL GUARDS-FLAG:NUMBER 0>
<GLOBAL TREASURY-GUARDED?:FLAG <>>
<OBJECT PILE-1
(IN SCALES-ROOM)
@ -2016,32 +2034,29 @@ on your cheek." CR>)>>
(GENERIC GENERIC-RANDOM-F)
(ACTION PILE-F)>
<GLOBAL WHITE-CUBE "featureless white cube">
<GLOBAL WHITE-CUBE:STRING "featureless white cube">
<ROUTINE PILE-LOOP (OBJ "AUX" (F <FIRST? .OBJ>) (1ST? T) (CNT 0) N CUBE?)
<REPEAT ()
<COND (<NOT .F>
<COND (<G? .CNT 0>
<COND (<NOT .1ST?>
<TELL " and ">)>
<TELL N .CNT " " ,WHITE-CUBE>
<COND (<G? .CNT 1> <TELL "s">)>)>
<RETURN>)>
<SET N <NEXT? .F>>
<SET CUBE? <GETPT .F ,P?NAME>>
<COND (<OR <NOT .CUBE?> ;"not a cube?"
<NOT <ZERO? <GETP .F ,P?NAME>>>>
<COND (<NOT .1ST?>
<COND (<AND <NOT .N> <ZERO? .CNT>>
<TELL " and ">)
(ELSE <TELL ", ">)>)
(T <SET 1ST? <>>)>
<COND (<NOT <GETPT .F ,P?NAME>>
<TELL A .F>)
(ELSE
<TELL THE .F>)>)
(ELSE <SET CNT <+ .CNT 1>>)>
<SET F .N>>>
<ROUTINE PILE-LOOP (OBJ "AUX" F N (1ST? T) (CNT 0) CUBE?)
<MAP-CONTENTS (F N .OBJ)
(END <COND (<G? .CNT 0>
<COND (<NOT .1ST?>
<TELL " and ">)>
<TELL N .CNT " " ,WHITE-CUBE>
<COND (<G? .CNT 1> <TELL "s">)>)>)
<SET CUBE? <GETPT .F ,P?NAME>>
<COND (<OR <NOT .CUBE?> ;"not a cube?"
<NOT <ZERO? <GETP .F ,P?NAME>>>>
<COND (<NOT .1ST?>
<COND (<AND <NOT .N> <ZERO? .CNT>>
<TELL " and ">)
(ELSE <TELL ", ">)>)
(T <SET 1ST? <>>)>
<COND (<NOT <GETPT .F ,P?NAME>>
<TELL A .F>)
(ELSE
<TELL THE .F>)>)
(ELSE <SET CNT <+ .CNT 1>>)>>
>
<ROUTINE PILE-F ()
<COND (<VERB? EXAMINE>
@ -2066,6 +2081,11 @@ etc." CR>)
<COND (<AND <NOT <HELD? ,PRSO>>
<EQUAL? <ITAKE> ,M-FATAL <>>>
<RTRUE>)
(<EQUAL? ,PRSO
,MAGIC-CARPET ,RANDOM-CARPET ,ZIPPER>
<MOVE ,PRSO ,HERE>
<TELL
"You put it on the floor near " THE ,PRSI ,PERIOD>)
(ELSE
<MOVE ,PRSO ,PRSI>
<FSET ,PRSO ,TOUCHBIT>
@ -2273,12 +2293,10 @@ on it." CR>)
<TELL "s">)>
<TELL "." CR>>
<ROUTINE CUBE-COUNT (OBJ "AUX" (CNT 0) (CONT <FIRST? .OBJ>))
<REPEAT ()
<COND (<NOT .CONT> <RETURN>)
(<NOT <ZERO? <GETPT .CONT ,P?NAME>>>
<SET CNT <+ .CNT 1>>)
(<FIRST? .CONT>
<SET CNT <+ .CNT <CUBE-COUNT .CONT>>>)>
<SET CONT <NEXT? .CONT>>>
.CNT>
<ROUTINE CUBE-COUNT (OBJ "AUX" (CNT 0))
<MAP-CONTENTS (CONT .OBJ)
(END <RETURN .CNT>)
<COND (<NOT <ZERO? <GETPT .CONT ,P?NAME>>>
<SET CNT <+ .CNT 1>>)
(<FIRST? .CONT>
<SET CNT <+ .CNT <CUBE-COUNT .CONT>>>)>>>

147
c4.zil
View file

@ -69,11 +69,11 @@ like a deflated balloon on the ground.">
ones can do here.\"">)>
<CRLF>>
<GLOBAL ROCK-MOVED? <>>
<GLOBAL ROCK-MOVED?:FLAG <>>
<GLOBAL YOU-LOC 5>
<GLOBAL ROCK-LOC 5>
<GLOBAL OTHER-ROCK-LOC 7>
<GLOBAL YOU-LOC:NUMBER 5>
<GLOBAL ROCK-LOC:NUMBER 5>
<GLOBAL OTHER-ROCK-LOC:NUMBER 7>
<ROUTINE DESCRIBE-PLAIN ("OPTIONAL" (ROCKS? T))
<COND (<HELD? ,PLAYER ,ROCK>
@ -105,7 +105,7 @@ ones can do here.\"">)>
<ROCK-DIRECTION ,OTHER-ROCK-LOC>)>
<TELL ".">)>>
<GLOBAL PLAIN-WALLS
<GLOBAL PLAIN-WALLS:TABLE
<TABLE #BYTE 0
#BYTE %<+ 2 8 128> ;"1 -- E, S, SW"
#BYTE %<+ 2 4 8> ;"2 -- E, W, S"
@ -208,9 +208,9 @@ carefully before answering. ">
one, though not as odd as the last. It was
as unprepossessing as you. Of course, I am the most handsome.\"" CR>)>>
<GLOBAL ROCK-TALKED? <>>
<GLOBAL ROCK-BRIBED? <>>
<GLOBAL TRIED-BOARDING? <>>
<GLOBAL ROCK-TALKED?:FLAG <>>
<GLOBAL ROCK-BRIBED?:FLAG <>>
<GLOBAL TRIED-BOARDING?:FLAG <>>
<ROUTINE ROCK-F ("OPTIONAL" (RARG <>))
<COND (<EQUAL? ,WINNER ,ROCK>
@ -329,7 +329,7 @@ rock says, \"Hey! What is this? What about my privacy?\"">
nice. Then you could ride on top and admire me from that angle. It's a
rare privilege.\"" CR>>
<GLOBAL IT-TICKLES "The rock bobs in place. \"That tickles!\"|">
<GLOBAL IT-TICKLES:STRING "The rock bobs in place. \"That tickles!\"|">
<ROUTINE ROCK-WALK (DIR "AUX" ROW COL)
<QUEUE I-OTHER-ROCK -1>
@ -437,10 +437,10 @@ settle yourself carefully on top. ">
(<NOT <EQUAL? ,OTHER-ROCK-LOC ,YOU-LOC>>
<TELL ,TOO-FAR>)>)>>
<GLOBAL ROCK-IRRITATION
<GLOBAL ROCK-IRRITATION:STRING
"The rock grumbles in irritation. \"Go away,\" it says.|">
<GLOBAL TOO-FAR "It's too far away.|">
<GLOBAL TOO-FAR:STRING "It's too far away.|">
"LIGHT"
@ -578,7 +578,7 @@ the bright blue background." CR>)
"A rabbit hops across the meadow, twitches its nose at you, and
then scampers away." CR>)>)>>
<GLOBAL RABBIT-FLAG <>>
<GLOBAL RABBIT-FLAG:FLAG <>>
<OBJECT SHEARS
(IN MEADOW-ROOM)
@ -593,7 +593,7 @@ then scampers away." CR>)>)>>
<TELL
"This is a very nice pair of pruning shears, such as a gardener
would own." CR>)
(<AND <VERB? CUT>
;(<AND <VERB? CUT>
<NOT <HELD? ,SHEARS>>>
<NOT-HOLDING ,SHEARS>)>>
@ -629,7 +629,7 @@ would own." CR>)
in the meadow. It's like a well-kept garden.">)>
<CRLF>>
<GLOBAL WEED-PLANTED? 2>
<GLOBAL WEED-PLANTED?:NUMBER 2>
<ROUTINE WEED-F ()
<COND (<VERB? EXAMINE>
@ -667,7 +667,12 @@ earth with it." CR>)>
<TELL
"You now have a weed cutting." CR>)>)
(<AND <VERB? PLANT>
<EQUAL? ,PRSI <> ,GROUND>>
<OR <EQUAL? ,PRSI ,GROUND ,GLOBAL-CAVE>
<AND <EQUAL? ,PRSI ,PSEUDO-OBJECT>
<EQUAL? ,P-PNAM ,W?DIRT>>
<AND <NOT ,PRSI>
<OR <FSET? ,HERE ,OUTSIDE>
<EQUAL? ,HERE ,OGRE-CAVE ,OGRE-BEDROOM>>>>>
<COND (<AND <FSET? ,HERE ,RLANDBIT>
<NOT <GETP ,HERE ,P?CUBE>>
<IN? ,WINNER ,HERE>>
@ -828,7 +833,7 @@ fluid." CR>)
(FLAGS RLANDBIT)
(THINGS <PSEUDO (BLACK MARBLE MARBLE-PSEUDO)>)>
<GLOBAL MAZE-EXIT-FLAG <>>
<GLOBAL MAZE-EXIT-FLAG:FLAG <>>
<ROUTINE MAZE-ANTEROOM-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
@ -845,10 +850,11 @@ rose.">)>
(<AND <EQUAL? .RARG ,M-LEAVE>
<NOT <VERB? BLORPLE>>>
<SETG MAZE-EXIT-FLAG <>>
<PUT ,MAZE-ANTEROOM ,P?EXITS 0>
<PUTP ,MAZE-ANTEROOM ,P?EXITS 0>
<OCT-HOLE-DISAPPEARS>)>>
<ROUTINE OCT-HOLE-DISAPPEARS ()
<REMOVE ,OCTAGONAL-HOLE>
<TELL
"You slide through the " ,OCT-HOLE ", which constricts and disappears as
soon as you are through it." CR CR>>
@ -873,7 +879,7 @@ every particular." CR>)
delicate filigree one might expect on a real but ornamental counterpart is
here. As though that challenge was not enough, the artist set the carving deep
in the stone of the wall." CR>)>)
(<VERB? OPEN>
(<VERB? OPEN REZROV>
<YOU-CANT-X-PRSO "open">)
(<VERB? CLOSE>
<YOU-CANT-X-PRSO "close">)
@ -916,17 +922,13 @@ through. You notice that the arm pointing north is now dull pot-metal.">
<TELL "There is a " 'COMPASS-ROSE " here">)>
<TELL ,PERIOD>>
<GLOBAL COMPASS-ROSE-STATE 0>
<GLOBAL COMPASS-ROSE-ARMS 0>
<GLOBAL COMPASS-ROSE-STATE:NUMBER 0>
<GLOBAL COMPASS-ROSE-ARMS:NUMBER 0>
<ROUTINE ARM-DIRECTION (N "AUX" (CNT 1) (L <GET ,DIR-TABLE 0>))
<REPEAT ()
<COND (<G? .CNT .L>
<RETURN>)
(<EQUAL? <GET ,DIR-TABLE .CNT> .N>
<RETURN <GET ,DIR-TABLE <+ .CNT 2>>>)
(ELSE
<SET CNT <+ .CNT 3>>)>>>
<ROUTINE ARM-DIRECTION (N "AUX" (L <GET ,DIR-TABLE 0>))
<DO (CNT 1 .L 3)
<COND (<EQUAL? <GET ,DIR-TABLE .CNT> .N>
<RETURN <GET ,DIR-TABLE <+ .CNT 2>>>)>>>
<ROUTINE COMPASS-ROSE-F ("AUX" (N 1) (1ST? T))
<COND (<VERB? EXAMINE>
@ -986,7 +988,7 @@ the north wall of the room.">)>
(IN LOCAL-GLOBALS)
(DESC "north rune")
(SYNONYM RUNE RUNES)
(ADJECTIVE NORTH N SILVER LEAD)
(ADJECTIVE NORTH SILVER LEAD)
(FLAGS NDESCBIT READBIT)
(EXITS %,C-NORTH)
(GENERIC GENERIC-RANDOM-F)
@ -996,7 +998,7 @@ the north wall of the room.">)>
(IN LOCAL-GLOBALS)
(DESC "east rune")
(SYNONYM RUNE RUNES)
(ADJECTIVE EAST E SILVER LEAD)
(ADJECTIVE EAST SILVER LEAD)
(FLAGS NDESCBIT READBIT)
(EXITS %,C-EAST)
(GENERIC GENERIC-RANDOM-F)
@ -1006,7 +1008,7 @@ the north wall of the room.">)>
(IN LOCAL-GLOBALS)
(DESC "west rune")
(SYNONYM RUNE RUNES)
(ADJECTIVE WEST W SILVER LEAD GOLD)
(ADJECTIVE WEST SILVER LEAD GOLD)
(FLAGS NDESCBIT READBIT)
(EXITS %,C-WEST)
(GENERIC GENERIC-RANDOM-F)
@ -1016,7 +1018,7 @@ the north wall of the room.">)>
(IN LOCAL-GLOBALS)
(DESC "south rune")
(SYNONYM RUNE RUNES)
(ADJECTIVE SOUTH S SILVER LEAD)
(ADJECTIVE SOUTH SILVER LEAD)
(FLAGS NDESCBIT READBIT)
(EXITS %,C-SOUTH)
(GENERIC GENERIC-RANDOM-F)
@ -1026,7 +1028,7 @@ the north wall of the room.">)>
(IN LOCAL-GLOBALS)
(DESC "northeast rune")
(SYNONYM RUNE RUNES)
(ADJECTIVE NORTHEAST NE SILVER LEAD)
(ADJECTIVE NE SILVER LEAD)
(FLAGS NDESCBIT READBIT)
(EXITS %,C-NE)
(GENERIC GENERIC-RANDOM-F)
@ -1036,7 +1038,7 @@ the north wall of the room.">)>
(IN LOCAL-GLOBALS)
(DESC "northwest rune")
(SYNONYM RUNE RUNES)
(ADJECTIVE NORTHWEST NW SILVER LEAD)
(ADJECTIVE NW SILVER LEAD)
(FLAGS NDESCBIT READBIT)
(EXITS %,C-NW)
(GENERIC GENERIC-RANDOM-F)
@ -1046,7 +1048,7 @@ the north wall of the room.">)>
(IN LOCAL-GLOBALS)
(DESC "southeast rune")
(SYNONYM RUNE RUNES)
(ADJECTIVE SOUTHEAST SE SILVER LEAD)
(ADJECTIVE SE SILVER LEAD)
(FLAGS NDESCBIT READBIT)
(EXITS %,C-SE)
(GENERIC GENERIC-RANDOM-F)
@ -1056,7 +1058,7 @@ the north wall of the room.">)>
(IN LOCAL-GLOBALS)
(DESC "southwest rune")
(SYNONYM RUNE RUNES)
(ADJECTIVE SOUTHWEST SW SILVER LEAD)
(ADJECTIVE SW SILVER LEAD)
(FLAGS NDESCBIT READBIT)
(EXITS %,C-SW)
(GENERIC GENERIC-RANDOM-F)
@ -1096,19 +1098,35 @@ of inlaid ">
(SYNONYM HOLE DOOR)
(ADJECTIVE OCTAGONAL)
(DESC "octagonal hole")
(FLAGS DOORBIT NDESCBIT AN CONTBIT OPENBIT)
(FLAGS DOORBIT NDESCBIT AN CONTBIT OPENBIT VEHBIT)
(GENERIC GENERIC-HOLE-F)
(ACTION OCTAGONAL-HOLE-F)>
<ROUTINE OCTAGONAL-HOLE-F ("AUX" E)
<ROUTINE OCTAGONAL-HOLE-F ("AUX" E PT PTS)
<COND (<AND <EQUAL? ,HERE ,MAZE-2>
<NOT <IN? ,MAZE-2-DOOR ,HERE>>>
<IN? ,MAZE-2-DOOR ,HERE>>
<MAZE-2-DOOR-F>)
(<VERB? REZROV>
<TELL ,IT-IS-ALREADY "open." CR>)
(<VERB? LOOK-INSIDE>
<TELL ,NOW-BLACK CR>)
(<VERB? EXAMINE>
<TELL "It looks like an " ,OCT-HOLE ,PERIOD>)
(<VERB? THROUGH>
(<AND <VERB? PUT THROW DROP>
<HELD? ,PRSO>
<EQUAL? ,PRSI ,OCTAGONAL-HOLE>>
<SET E <GETP ,HERE ,P?EXITS>>
<SET E <DIR-BASE .E ,DIR-BIT ,DIR-DIR>>
<SET PT <GETPT ,HERE .E>>
<SET PTS <PTSIZE .PT>>
<COND (<OR <EQUAL? .PTS ,UEXIT>
<AND <EQUAL? .PTS ,CEXIT>
<VALUE <GETB .PT ,CEXITFLAG>>>>
<MOVE ,PRSO <GETB .PT ,REXIT>>
<TELL CTHE ,PRSO " disappears into the hole." CR>)
(ELSE
<TELL "It won't go." CR>)>)
(<VERB? THROUGH BOARD>
<SET E <GETP ,HERE ,P?EXITS>>
<COND (<L? .E 256>
<DO-WALK <DIR-BASE .E ,DIR-BIT ,DIR-DIR>>)>)>>
@ -1121,7 +1139,7 @@ of inlaid ">
(FLAGS AN NDESCBIT TAKEBIT TRYTAKEBIT)
(ACTION MAZE-2-DOOR-F)>
<GLOBAL OCT-HOLE "octagonal hole">
<GLOBAL OCT-HOLE:STRING "octagonal hole">
<ROUTINE DESCRIBE-PLUG ()
<TELL
@ -1389,20 +1407,17 @@ appears in the wall below the rune.">
(ELSE
<TELL ,NOTHING-HAPPENS>)>)>)>>
<ROUTINE TELL-WALLS ("OPTIONAL" (N <>) "AUX" (CNT 1)
(L <GET ,DIR-TABLE 0>) (1ST? T) (OLD <>))
<ROUTINE TELL-WALLS ("OPTIONAL" (N <>)
"AUX" (L <GET ,DIR-TABLE 0>) (1ST? T) (OLD <>))
<COND (<NOT .N> <SET N <GETP ,HERE ,P?WALLS>>)>
<REPEAT ()
<COND (<G? .CNT .L>
<TELL " and " .OLD>
<RETURN>)
(<NOT <ZERO? <BAND <GET ,DIR-TABLE .CNT> .N>>>
<COND (.OLD
<COND (.1ST? <SET 1ST? <>>)
(ELSE <TELL ", ">)>
<TELL .OLD>)>
<SET OLD <GET ,DIR-TABLE <+ .CNT 2>>>)>
<SET CNT <+ .CNT 3>>>>
<DO (CNT 1 .L 3)
(<TELL " and " .OLD>)
<COND (<NOT <ZERO? <BAND <GET ,DIR-TABLE .CNT> .N>>>
<COND (.OLD
<COND (.1ST? <SET 1ST? <>>)
(ELSE <TELL ", ">)>
<TELL .OLD>)>
<SET OLD <GET ,DIR-TABLE <+ .CNT 2>>>)>>>
"MAGIC"
@ -1468,11 +1483,11 @@ black emptiness to the east." CR>)
<COND (<EQUAL? <COUNT-CUBES> 13> <RTRUE>)
(ELSE <RFALSE>)>>
<ROUTINE COUNT-CUBES ("AUX" (CNT 0) (N 0))
<REPEAT ()
<COND (<GOT? <GET ,CUBE-LIST <* .CNT 2>>>
<SET N <+ .N 1>>)>
<COND (<IGRTR? CNT 12> <RETURN .N>)>>>
<ROUTINE COUNT-CUBES ("AUX" (N 0))
<DO (CNT 0 12)
<COND (<GOT? <GET ,CUBE-LIST <* .CNT 2>>>
<SET N <+ .N 1>>)>>
.N>
<ROUTINE MAGIC-DOOR-EXIT ()
<COND (<HAS-ALL-CUBES?>
@ -1571,6 +1586,7 @@ You drown as well.">)
<QUEUE I-WATER-RISING 3>)>)
(<EQUAL? .RARG ,M-LEAVE>
<REMOVE ,PLAYER>
<DEQUEUE I-WATER-RISING>
<COND (<AND <NOT ,DEAD?>
<ONLY? ,ZIPPER ,HERE>
<ONLY? ,GIRGOL-SCROLL ,ZIPPER>
@ -1589,9 +1605,9 @@ rocks and boulders">
<JIGS-UP
", again and again. Finally, you succumb.">)>)>>
<GLOBAL RUINS-SCORE 25>
<GLOBAL RUINS-SCORE:NUMBER 25>
<GLOBAL TIME-SICK
<GLOBAL TIME-SICK:STRING
"As you leave, your consciousness is wrenched as though your memories
were being torn apart. ">
@ -1633,7 +1649,7 @@ were being torn apart. ">
<TELL "closed.">)>
<CRLF>)>>
<GLOBAL WATER-TABLE
<GLOBAL WATER-TABLE:TABLE
<PTABLE
"You are in a small area not yet flooded."
"The water has left only a tiny area dry."
@ -1664,6 +1680,7 @@ imprisonment. A massive oak cabinet dominates one wall. ">
<TELL-OPEN-CLOSED ,PAST-CABINET>
<TELL-OPEN-CLOSED ,CELL-DOOR>)
(<EQUAL? .RARG ,M-LEAVE>
<DEQUEUE I-PRISON-GUARDS>
<REMOVE ,PLAYER>
<COND (<AND <NOT ,DEAD?>
<NOT <FSET? ,PAST-CABINET ,RMUNGBIT>>
@ -1725,11 +1742,11 @@ the shouts of guards and the rattle of weapons." CR>)
<TELL ,PERIOD>
<RFALSE>)>>
<GLOBAL PAST-CELL-GUARDS-KILL-YOU
<GLOBAL PAST-CELL-GUARDS-KILL-YOU:STRING
"You exit into a tangle of guards, who promptly dispatch you for escaping
and resisting arrest.">
<GLOBAL DOOR-LOCKED "The door is closed and locked">
<GLOBAL DOOR-LOCKED:STRING "The door is closed and locked">
"CONNECTIVITY CUBE"
@ -1790,7 +1807,7 @@ a similar gap." CR>)
(SYNONYM QWORD)
(FLAGS NDESCBIT)>
<GLOBAL CUBE-LIST
<GLOBAL CUBE-LIST:TABLE
<PTABLE EARTH-CUBE <VOC "AQ" ADJECTIVE>
WATER-CUBE <VOC "BQ" ADJECTIVE>
AIR-CUBE <VOC "CQ" ADJECTIVE>

89
cards.txt Normal file
View file

@ -0,0 +1,89 @@
SPELLBREAKER "ENCHANTER CARDS"
------------------------------------------------------------
Barsap
Royal Magician
(Turned into a newt, 972)
"The hardest trick is making it look easy."
First performed before royalty, 850
Appointed Royal Magician, 875
Greatest skills: juggling, creative accounting
Guild membership revoked for dues evasion, 960
Last book read: "Magic with Mirrors"
Double Fanucci handicap: 19
------------------------------------------------------------
Barbel of Gurth
Arbiter, Diplomat
"When I was a boy, I was told that any Enchanter could
become a Guildmaster. Now I'm beginning to believe it."
Son of Delbor, advisor to Lord Dimwit Flathead
Inventor of the golmac spell
Guildmaster of Gurth City chapter since 933
President of GAC (Gurth Arbiters Congress)
Greatest skills: arbitrating, speaking in toungues
Responsible for restoration of high enchantmant dues
Double Fanucci handicap: 42
------------------------------------------------------------
Gustar Woomax
Chronicler of Magic
"If history can teach us the difference between good and bad
magic, it can teach us anything."
Author of "A Brief History of Magic," "Bizboz at Galepath,"
"Mage versus Archmage," "Revenge of the Dornbeasts,"
"The Granola Riots" (co-authored by Wilbar Memboob),
and "The Coconut of Quendor: Reality or Illusion?"
Born in Greater Borphee, 880
Attended GUE Tech, 907-911
Favorite author: Bizboz
Greatest skill: none known
Double Fanucci handicap: 620
------------------------------------------------------------
Dimithio of Borphee
"The Cheerful Sorcerer"
(Founder of the Borphee Enchanter's Guild)
"Magic doesn't have to be great to be useful, nor does magic
have to be useful to be great."
Studied under Yooman, the Musican Mage
Animal lover (adapted nitfol spell for egg-laying mammals)
Tremendously well read and good natured
Greatest skill: fireworks displays
Despised by Holnac the Cynic
Double Fanucci handicap: 127
------------------------------------------------------------
Forburn the Wily
Double Fanucci Champion
"The Encyclopedia Frobozzica calls Double Fanucci a 'game
played with cards.' I don't play games; I don't play
anything."
Never formally studied magic
First won a spell book from an unsuspecting G.U.E. Tech
student in a 902 Fanucci match
Raised the level of play in Double Fanucci championships
Brought new meaning to the word "chiseler"
Greatest skill: drawing Trebled Fromps
Double Fanucci handicap: 0.01
------------------------------------------------------------
Berknip
Oldest Active Necromancer
(662-750, 841-present)
"No one weeps for a necromancer."
Survived by 7 children and 39 grandchildren in 750 G.U.E.
(he has since out-relived them)
Greatest skill: assisting historical biographers
Hobby: antiques (making and collecting)
Inexplicably afraid of swords and powdered milk
Vegetarian (adapted nitfol spell for raw oysters and crispy
whole fish)
Double Fanucci handicap: unmeasurable
------------------------------------------------------------

View file

@ -5,6 +5,17 @@
<DIRECTIONS ;"Do not change the order of the first 8 without consulting MARC!"
NORTH NE EAST SE SOUTH SW WEST NW UP DOWN IN OUT>
<SYNONYM NORTH N>
<SYNONYM SOUTH S>
<SYNONYM EAST E>
<SYNONYM WEST W>
<SYNONYM DOWN D>
<SYNONYM UP U>
<SYNONYM NE NORTHEAST>
<SYNONYM NW NORTHWEST>
<SYNONYM SE SOUTHEAST>
<SYNONYM SW SOUTHWEST>
<GLOBAL HERE <>>
<GLOBAL LIT <>>
@ -35,13 +46,10 @@
<CONSTANT DIR-DIR 2>
<CONSTANT DIR-NAME 3>
<ROUTINE DIR-BASE (DIR I O "AUX" (CNT 0) (L <GET ,DIR-TABLE 0>))
<REPEAT ()
<COND (<G? .CNT .L> <RFALSE>)
(<EQUAL? <GET ,DIR-TABLE <+ .CNT .I>> .DIR>
<RETURN <GET ,DIR-TABLE <+ .CNT .O>>>)
(ELSE
<SET CNT <+ .CNT 3>>)>>>
<ROUTINE DIR-BASE (DIR I O "AUX" (L <GET ,DIR-TABLE 0>))
<DO (CNT 0 .L 3)
<COND (<EQUAL? <GET ,DIR-TABLE <+ .CNT .I>> .DIR>
<RETURN <GET ,DIR-TABLE <+ .CNT .O>>>)>>>
"global objects and associated routines"
@ -188,7 +196,7 @@ Always return RFALSE (not handled) if you have resolved the problem."
<OBJECT LIGHT
(IN GLOBAL-OBJECTS)
(DESC "light")
(SYNONYM LIGHT LIGHTS PILE)
(SYNONYM LIGHT LIGHTS PHOTONS)
(ADJECTIVE PILE)
(ACTION LIGHT-F)>
@ -423,7 +431,7 @@ the desired direction." CR>)
(IN GLOBAL-OBJECTS)
(DESC "north wall")
(SYNONYM WALL)
(ADJECTIVE NORTH N)
(ADJECTIVE NORTH)
(ACTION WALL-F)
(EXITS %,C-NORTH)
(GENERIC GENERIC-RANDOM-F)>
@ -432,7 +440,7 @@ the desired direction." CR>)
(IN GLOBAL-OBJECTS)
(DESC "east wall")
(SYNONYM WALL)
(ADJECTIVE EAST E BLANK)
(ADJECTIVE EAST BLANK)
(ACTION WALL-F)
(EXITS %,C-EAST)
(GENERIC GENERIC-RANDOM-F)>
@ -441,7 +449,7 @@ the desired direction." CR>)
(IN GLOBAL-OBJECTS)
(DESC "west wall")
(SYNONYM WALL)
(ADJECTIVE WEST W)
(ADJECTIVE WEST)
(ACTION WALL-F)
(EXITS %,C-WEST)
(GENERIC GENERIC-RANDOM-F)>
@ -450,7 +458,7 @@ the desired direction." CR>)
(IN GLOBAL-OBJECTS)
(DESC "south wall")
(SYNONYM WALL)
(ADJECTIVE SOUTH S)
(ADJECTIVE SOUTH)
(ACTION WALL-F)
(EXITS %,C-SOUTH)
(GENERIC GENERIC-RANDOM-F)>
@ -459,7 +467,7 @@ the desired direction." CR>)
(IN GLOBAL-OBJECTS)
(DESC "northeast wall")
(SYNONYM WALL)
(ADJECTIVE NORTHEAST NE)
(ADJECTIVE NE)
(ACTION WALL-F)
(EXITS %,C-NE)
(GENERIC GENERIC-RANDOM-F)>
@ -468,7 +476,7 @@ the desired direction." CR>)
(IN GLOBAL-OBJECTS)
(DESC "northwest wall")
(SYNONYM WALL)
(ADJECTIVE NORTHWEST NW)
(ADJECTIVE NW)
(ACTION WALL-F)
(EXITS %,C-NW)
(GENERIC GENERIC-RANDOM-F)>
@ -477,7 +485,7 @@ the desired direction." CR>)
(IN GLOBAL-OBJECTS)
(DESC "southeast wall")
(SYNONYM WALL)
(ADJECTIVE SOUTHEAST SE)
(ADJECTIVE SE)
(ACTION WALL-F)
(EXITS %,C-SE)
(GENERIC GENERIC-RANDOM-F)>
@ -486,7 +494,7 @@ the desired direction." CR>)
(IN GLOBAL-OBJECTS)
(DESC "southwest wall")
(SYNONYM WALL)
(ADJECTIVE SOUTHWEST SW)
(ADJECTIVE SW)
(ACTION WALL-F)
(EXITS %,C-SW)
(GENERIC GENERIC-RANDOM-F)>
@ -530,8 +538,12 @@ the desired direction." CR>)
(ELSE
<TELL
"It's still there." CR>)>)
(<AND <VERB? PUT> <EQUAL? ,GROUND ,PRSI>>
<PERFORM ,V?PLANT ,PRSO>
(<AND <VERB? PUT>
<EQUAL? ,GROUND ,PRSI>>
<COND (<EQUAL? ,PRSO ,WEED>
<PERFORM ,V?PLANT ,WEED>)
(ELSE
<PERFORM ,V?DROP ,PRSO>)>
<RTRUE>)
(<VERB? CLIMB-UP CLIMB-ON CLIMB-FOO BOARD>
<TELL ,WASTE-OF-TIME>)
@ -551,9 +563,14 @@ the desired direction." CR>)
<OBJECT WALLS
(IN GLOBAL-OBJECTS)
(FLAGS NDESCBIT TOUCHBIT)
(DESC "wall")
(SYNONYM WALL WALLS)>
(SYNONYM WALL WALLS)
(FLAGS NDESCBIT TOUCHBIT)
(ACTION WALLS-F)>
<ROUTINE WALLS-F ()
<COND (<FSET? ,HERE ,RAIRBIT>
<TELL "What wall?" CR>)>>
<OBJECT GLOBAL-GRUE
(IN GLOBAL-OBJECTS)

View file

@ -158,7 +158,7 @@ the south is the entry of the Guild Hall. ">
efts, and salamanders. Toads and frogs hop excitedly about.">)
(ELSE
<TELL
"There is a meeting of the Guildmasters going on. You are standing among
"There is a meeting of the guildmasters going on. You are standing among
a group of about ten sorcerers, each the master of an Enchanters Guild chapter
somewhere in the land.">
<COND (<G? ,OCOUNT 0>
@ -174,6 +174,7 @@ somewhere in the land.">
'ORKAN ", one of your colleagues, says, \"Stay. Be quiet. Don't
embarrass us.\"" CR>)
(<AND <VERB? SAY> <NOT ,PRSO>>
<END-QUOTE>
<TELL
'ORKAN " quiets you. \"Interruptions will only annoy them.\"" CR>)
(<AND <VERB? LISTEN>
@ -528,10 +529,13 @@ CTHE ,SHADOW " snatches it greedily." CR>)
"The frozen shadow is impervious to harm." CR>)
(ELSE <FREEZES-YOU>)>)
(<VERB? ESPNIS>
<TELL
<COND (<EQUAL? ,HERE ,TIME-STOPPED?>
<TELL ,NOTHING-HAPPENS>)
(ELSE
<TELL
"The shadow begins to nod off but with great effort resists and
awakens. ">
<FREEZES-YOU>)
<FREEZES-YOU>)>)
(<VERB? YOMIN>
<TELL
"You feel your own innermost desires, petty jealousies, and unworthy
@ -544,6 +548,8 @@ the background in a disturbing way." CR>)
(<AND <VERB? TELL> ,FROZEN?>
<TELL "You cannot speak." CR>
<END-QUOTE>)
(<VERB? EMPATHIZE>
<TELL "You sense in return a blast of cold." CR>)
(<AND <NOT ,FROZEN?>
<G? ,SHADOW-COUNT 4>
<L? ,SHADOW-COUNT 8>>
@ -648,7 +654,10 @@ you free it!" CR>)
<FREEZES-YOU>)>)
(<AND <VERB? PUT>
<EQUAL? ,PRSI ,HYPERCUBE>>
<COND (<EQUAL? ,TIME-STOPPED? ,HERE>
<COND (<EQUAL? ,PRSO ,ME>
<PERFORM ,V?BOARD ,PRSI>
<RTRUE>)
(<EQUAL? ,TIME-STOPPED? ,HERE>
<COND (<SET F <FIRST? ,HYPERCUBE>>
<TELL
CTHE .F " is already there." CR>)

View file

@ -5,7 +5,7 @@
;"GENERICS"
<ROUTINE GENERIC-CUBE-F (TBL LEN
"AUX" F (CNT 1) (LAST? <>) (CONT <>) CUBE?)
"AUX" F (CNT 1) (CONT <>) CUBE?)
<COND (<VERB? ASK-ABOUT TELL-ME-ABOUT COUNT>
<GET .TBL .CNT>)
(ELSE
@ -50,7 +50,9 @@
(ELSE ,RANDOM-CARPET)>>
<ROUTINE GENERIC-HOLE-F (TBL LEN)
<COND (<EQUAL? ,HERE ,MAZE-2> ,OCTAGONAL-HOLE)
<COND (<OR <IN? ,OCTAGONAL-HOLE ,HERE>
<EQUAL? ,HERE ,MAZE-2>>
,OCTAGONAL-HOLE)
(ELSE ,GLOBAL-HOLE)>>
<ROUTINE GENERIC-RANDOM-F (TBL LEN)
@ -338,7 +340,7 @@ construction it made, the figure approaches the center. ">
"It grows smaller and smaller, and just before it disappears, the hypercube
vanishes with a pop, and " THE ,MAGIC-CUBE " melts in your hand like an
ice cube." CR CR
"You find yourself back in Belwit Square, all the Guildmasters and even
"You find yourself back in Belwit Square, all the guildmasters and even
Belboz crowding around you. \"A new age begins today,\" says Belboz after
hearing your story. \"The age of magic is ended, as it must, for as magic
can confer absolute power, so it can also produce absolute evil. We may
@ -449,6 +451,8 @@ head." CR>)
<GLOBAL AWAKE -1>
<ROUTINE I-TIRED ("AUX" (FORG <>))
<QUEUE I-TIRED 8>
<COND (<HELD? ,MAGIC-CUBE> <RTRUE>)>
<COND (<G? ,LOAD-ALLOWED 10>
<SETG LOAD-ALLOWED <- ,LOAD-ALLOWED 10>>)>
<COND (<G? ,FUMBLE-NUMBER 1>
@ -459,8 +463,6 @@ head." CR>)
<SETG SPELL-ROOM <- ,SPELL-ROOM 1>>)>
<COND (<EQUAL? ,SPELL-ROOM 0>
<SET FORG T>)>)>
<QUEUE I-TIRED 8>
<COND (<HELD? ,MAGIC-CUBE> <RTRUE>)>
<SETG AWAKE <+ ,AWAKE 1>>
<COND (<G? ,AWAKE 8>
<TELL
@ -538,18 +540,23 @@ their appointment.">)
<QUEUE I-AVALANCHE -1>
<TELL CR
"Tons of rock and dirt continue their downward plunge." CR>)>)>
<COND (<EQUAL? .TF? ,OGRE-BEDROOM ,OGRE-CAVE>
<COND (<AND <EQUAL? .TF? ,OGRE-BEDROOM ,OGRE-CAVE>
<EQUAL? ,HERE ,OGRE-BEDROOM ,OGRE-CAVE>>
<I-OGRE-KILLS-YOU T>)>
<COND (<EQUAL? .TF? ,PAST-RUINS-ROOM>
<COND (<AND <EQUAL? .TF? ,PAST-RUINS-ROOM>
<EQUAL? ,HERE ,PAST-RUINS-ROOM>>
<QUEUE I-WATER-RISING 3>
<TELL CR
"The water begins to rise again." CR>)>
<COND (<EQUAL? .TF? ,CASTLE>
<COND (<AND <EQUAL? .TF? ,CASTLE>
<EQUAL? ,HERE ,CASTLE>>
<COND (<EQUAL? ,SHADOW-COUNT 8>
<TELL CR
"\"Fool!\" chortles the shadow." CR>)>
<RTRUE>)>>
<GLOBAL OGRE-MURDEROUS? <>>
<ROUTINE I-OGRE-KILLS-YOU ("OPTIONAL" (GIRGOL? <>))
<COND (<OR <TIME-FROZEN?>
,SNEEZY?
@ -557,6 +564,9 @@ their appointment.">)
<QUEUE I-OGRE-KILLS-YOU 2>
<RFALSE>)>
<COND (<EQUAL? ,HERE ,OGRE-CAVE ,OGRE-BEDROOM>
<COND (<IN? ,PLAYER ,ZIPPER>
<SETG OGRE-MURDEROUS? T>
<RTRUE>)>
<COND (<NOT .GIRGOL?> <CRLF>)>
<TELL
"The ogre, impatient with your presence and your impudent intrusion, ">
@ -566,7 +576,7 @@ their appointment.">)
<JIGS-UP>)>>
<ROUTINE I-ESPNIS ()
<COND (<EQUAL? ,TIME-STOPPED? ,HERE>
<COND (<TIME-FROZEN?>
<QUEUE I-ESPNIS 2>)
(<NOT ,ESPNIS?> <RFALSE>)>
<COND (<IN? ,ESPNIS? ,HERE>
@ -596,12 +606,21 @@ tail again in the process." CR>)
<TELL
"With a rather unsettling lack of uniformity, " THE .SF " returns
to its former size.">
<COND (<AND <IN? .SF ,WINNER>
<EQUAL? .SF ,WEED>
<COND (<AND <EQUAL? .SF ,WEED>
<FSET? ,WEED ,RMUNGBIT>>
<MOVE .SF ,HERE>
<TELL
" It's too heavy to carry.">)>
<COND (<IN? .SF ,WINNER>
<MOVE .SF ,HERE>
<TELL
" It's too heavy to carry.">)
(<EQUAL? <LOC .SF> ,BOTTLE>
<MOVE .SF <META-LOC ,BOTTLE>>
<REMOVE ,BOTTLE>
<TELL
" It bursts the bottle!">)
(<EQUAL? <LOC .SF>
,MAGIC-CARPET
,RANDOM-CARPET>
<MOVE .SF <META-LOC .SF>>)>)>
<CRLF>)>)>)
(ELSE
<SETG SMALL-FLAG <>>
@ -762,8 +781,12 @@ curtain above you. If you don't do something soon, you will die!" CR>)
<G? ,ROCK-SLIDE-COUNT 3>>>
<DEQUEUE I-AVALANCHE>
<SETG ROCK-SLIDE-COUNT 0>
<COND (<IN? ,PLAYER ,ZIPPER>
<TELL
"Although you can't see or feel it, y">)
(ELSE <TELL "Y">)>
<JIGS-UP
"You are swept away down the cliff face by thousands of tons of rock.
"ou are swept away down the cliff face by thousands of tons of rock.
A huge cloud of dust blowing away down the valley is your only memorial.">)
(<EQUAL? ,HERE ,CLIFF-TOP ,CLIFF-MIDDLE ,CLIFF-BOTTOM>
<ROCKS-TUMBLING>)>)>>
@ -816,11 +839,15 @@ A huge cloud of dust blowing away down the valley is your only memorial.">)
<REPEAT ()
<COND (<NOT .F> <RETURN>)>
<SET N <NEXT? .F>>
<COND (<EQUAL? .F ,WATER-CUBE ,PLAYER ,GROUPER> T)
(<OR <NOT <FSET? .F ,CONTBIT>>
<COND (<EQUAL? .F ,PLAYER ,GROUPER> T)
(<AND <EQUAL? .F ,WATER-CUBE>
<QUEUED? I-CUBE-SINKS>>
T)
(<OR <EQUAL? .F ,ZIPPER>
<NOT <FSET? .F ,CONTBIT>>
<AND <FSET? .F ,OPENBIT>
<PROB 75>>>
<MOVE .F ,OCEAN-FLOOR>
<MOVE .F ,OCEAN-FLOOR>
<FCLEAR .F ,NDESCBIT>
<COND (<EQUAL? ,HERE .RM>
<TELL
@ -954,7 +981,9 @@ are open again." CR>)>)>)>>
<ROUTINE I-ROC ()
<COND (<EQUAL? ,HERE ,GUARD-TOWER>
<SETG ROC-COUNT <+ ,ROC-COUNT 1>>
<COND (<G? ,ROC-COUNT 4>
<COND (<IN? ,PLAYER ,ZIPPER>
<RFALSE>)
(<G? ,ROC-COUNT 4>
<DEQUEUE I-ROC>
<ROC-GRABS-PLAYER>
<CRLF>

2187
mage.hints Normal file

File diff suppressed because it is too large Load diff

39
magic.txt Normal file
View file

@ -0,0 +1,39 @@
-Spell- -English-
s AIMFIZ transport yourself to someone's location
e BLORB STRONG-BOX-SPELL
e CLEESH NEWT-SPELL
e EXEX HASTE-SPELL
e FILFRE CREDITS-SPELL
es FROTZ LIGHT-SPELL
s FWEEP turn caster into a bat
s GASPAR resurrection
es GNUSTO WRITE-MAGIC-SPELL
s GOLMAC travel temporally
e GONDAR QUENCH-SPELL
e GUNCHO BANISH-SPELL
es IZYUK FLY-SPELL
e KREBF REPAIR-SPELL
e KULCAD DISPEL-SPELL
s MALYON bring life to inanimate objects
s MEEF cause plants to wilt
e MELBOR PROTECTION-SPELL
e NITFOL TALK-TO-ANIMALS-SPELL
e OZMOO CHEAT-DEATH-SPELL
s PULVER cause liquids to dry up
es REZROV OPEN-SPELL
s SWANZO exorcise an inhabiting presence
s VARDIK shield a mind from an evil spirit
e VAXUM CHARM-SPELL
s VEZZA view the future
s YOMIN mind probe
s YONK augment the power of certain spells
e ZIFMIA SUMMON-SPELL
-Potion- -English-
s BERZIO obviate need for food and drink
s BLORT see in the dark
s FLAXO exquisite torture
s FOOBLE increase coordination
s VILSTU obviate need for breathing

114
magic.zil
View file

@ -65,7 +65,7 @@ e ZIFMIA SUMMON-SPELL
<GLOBAL SEEN-BLORPLE? <>>
<ROUTINE SPELL-BOOK-F ("AUX" (F <FIRST? ,SPELL-BOOK>))
<ROUTINE SPELL-BOOK-F ("AUX" F)
<COND (<VERB? EXAMINE>
<TELL
"This is your well-used old " 'SPELL-BOOK ", first given to you by Belboz
@ -104,10 +104,8 @@ that you can read them." CR>)>
<TELL "My Spell Book|
|
">
<REPEAT ()
<COND (<NOT .F> <RETURN>)>
<TELL CTHE .F " (" <GETP .F ,P?TEXT> ")." CR>
<SET F <NEXT? .F>>>
<MAP-CONTENTS (F ,SPELL-BOOK)
<TELL CTHE .F " (" <GETP .F ,P?TEXT> ")." CR>>
<COND (<AND ,CLEESHED? <NOT ,SEEN-BLORPLE?>>
<SEE-BLORPLE>
<TELL
@ -433,7 +431,7 @@ without a " 'SPELL-BOOK ,PERIOD>
They slip out of your memory as soon as you cram them in." CR>
<RTRUE>)
(<NOT <G? ,SPELL-ROOM 0>>
<FORGET-SPELL ,PRSO>
<FORGET-SPELL>
<SETG SPELL-ROOM 1>
<SET FORGET T>)>)>
<SETG SPELL-ROOM <- ,SPELL-ROOM 1>>
@ -468,39 +466,29 @@ likely that something may have been forgotten in the shuffle." CR>)>
" The spell is long and complicated.">)>
<CRLF>>
<ROUTINE FORGET-SPELL (SPL "AUX" F CNT TBL (NUM 0) (SP <>))
<ROUTINE FORGET-SPELL ("AUX" F TBL (NUM 0) (SP <>))
<SET F <FIRST? ,SPELL-BOOK>>
<SET TBL ,FORGET-TBL>
<REPEAT ()
<COND (<NOT .F> <RETURN>)
(<G? <SET CNT <GETP .F ,P?COUNT>> 0>
<REPEAT ()
<SET SP .F>
<PUT .TBL 1 .F>
<SET NUM <+ .NUM 1>>
<SET TBL <REST .TBL 2>>
<COND (<L? <SET CNT <- .CNT 1>> 1>
<RETURN>)>>)>
(<G? <GETP .F ,P?COUNT> 0>
<SET SP .F>
<PUT .TBL 1 .F>
<SET NUM <+ .NUM 1>>
<SET TBL <REST .TBL 2>>)>
<SET F <NEXT? .F>>>
<COND (<AND <G? .NUM 0>
<EQUAL? <GETP .SP ,P?COUNT> .NUM>>
<PUTP .SP ,P?COUNT <- .NUM 1>>
<RTRUE>)>
<PUT ,FORGET-TBL 0 .NUM>
<COND (<ZERO? .NUM> <RTRUE>)>
<SET SPL <RANDOM-ELEMENT ,FORGET-TBL>>
<PUTP .SPL ,P?COUNT <- <GETP .SPL ,P?COUNT> 1>>>
<COND (<G? .NUM 1>
<PUT ,FORGET-TBL 0 .NUM>
<SET SP <RANDOM-ELEMENT ,FORGET-TBL>>)>
<PUTP .SP ,P?COUNT <- <GETP .SP ,P?COUNT> 1>>>
<GLOBAL FORGET-TBL <LTABLE 0 0 0 0 0 0 0 0 0 0>>
<GLOBAL FORGET-TBL <LTABLE 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0>>
<ROUTINE FORGET-ALL ("AUX" F)
<SETG SPELL-ROOM ,SPELL-MAX>
<SET F <FIRST? ,SPELL-BOOK>>
<REPEAT ()
<COND (<NOT .F> <RETURN>)
(ELSE
<PUTP .F ,P?COUNT 0>
<SET F <NEXT? .F>>)>>>
<MAP-CONTENTS (F ,SPELL-BOOK)
<PUTP .F ,P?COUNT 0>>>
<ROUTINE WEAR-OFF-SPELLS ("OPTIONAL" (SLEEP? T))
<COND (,CHANGED?
@ -781,27 +769,25 @@ on which it is written." CR>
;GASPAR-SPELL
;YONK-SPELL
<ROUTINE V-SPELLS ("AUX" (CNT <GET ,ALL-SPELLS 0>) S (ANY <>) (OS <>) TMP)
<ROUTINE V-SPELLS ("AUX" S (ANY <>) (OS <>) TMP)
<TELL
"The gnusto, rezrov, and frotz spells are yours forever. Other than that,
you have ">
<REPEAT ()
<COND (<EQUAL? .CNT 0>
<COND (.OS
<SPELL-PRINT .OS .ANY T>
<SET ANY T>)>
<COND (<NOT .ANY>
<TELL "no spells memorized.">)
(T
<TELL " committed to memory.">)>
<CRLF>
<RTRUE>)>
<COND (<SET TMP <SPELL-TIMES <GET ,ALL-SPELLS .CNT>>>
<COND (.OS
<SPELL-PRINT .OS .ANY>
<SET ANY T>)>
<SET OS .TMP>)>
<SET CNT <- .CNT 1>>>>
<DO (CNT <GET ,ALL-SPELLS 0> 1 -1)
<COND (<SET TMP <SPELL-TIMES <GET ,ALL-SPELLS .CNT>>>
<COND (.OS
<SPELL-PRINT .OS .ANY>
<SET ANY T>)>
<SET OS .TMP>)>>
<COND (.OS
<SPELL-PRINT .OS .ANY T>
<SET ANY T>)>
<COND (<NOT .ANY>
<TELL "no spells memorized.">)
(T
<TELL " committed to memory.">)>
<CRLF>
<RTRUE>>
<ROUTINE SPELL-PRINT (S ANY "OPTIONAL" (PAND? <>) "AUX" X)
<COND (.ANY
@ -854,6 +840,9 @@ you have ">
<TELL
"Abruptly, your surroundings shift.">
<COND (<FSET? <LOC ,PLAYER> ,VEHBIT>
<SETG SITTING? <>>
<COND (<EQUAL? ,HERE ,MIDAIR>
<MOVE <LOC ,PLAYER> ,LOST-ON-LAND>)>
<TELL
" The spell leaves " THE <LOC ,PLAYER> " behind.">)>
<MOVE ,PLAYER ,HERE>
@ -1012,20 +1001,17 @@ with identical brightness.">)
nearby." CR>)>>
<ROUTINE DETECT-MAGIC (OBJ "OPTIONAL" (1ST? T) "AUX" F)
<SET F <FIRST? .OBJ>>
<REPEAT ()
<COND (<NOT .F> <RETURN <NOT .1ST?>>)
(<NOT <EQUAL? .F ,PLAYER ,PILE-1 ,PILE-2>>
<COND (<AND <VISIBLE? .F>
<MAGIC? .F>>
<SET 1ST? <>>
<TELL
CTHE .F ,IS-GLOWING CR>)
(<AND <SEE-INSIDE? .F>
<FIRST? .F>>
<COND (<DETECT-MAGIC .F .1ST?>
<SET 1ST? <>>)>)>)>
<SET F <NEXT? .F>>>>
<MAP-CONTENTS (F .OBJ)
(END <RETURN <NOT .1ST?>>)
<COND (<NOT <EQUAL? .F ,PLAYER ,PILE-1 ,PILE-2>>
<COND (<AND <VISIBLE? .F>
<MAGIC? .F>>
<SET 1ST? <>>
<TELL CTHE .F ,IS-GLOWING CR>)
(<AND <SEE-INSIDE? .F>
<FIRST? .F>>
<COND (<DETECT-MAGIC .F .1ST?>
<SET 1ST? <>>)>)>)>>>
<ROUTINE MAGIC? (OBJ)
<COND (<FSET? .OBJ ,MAGICBIT> <RTRUE>)
@ -1243,7 +1229,9 @@ the gnusto spell will work on it." CR>)>)>>
<V-NO-OP>)>>
<ROUTINE V-MALYON ()
<COND (<FSET? ,PRSO ,PERSON>
<COND (<TIME-FROZEN?>
<TELL ,NOTHING-HAPPENS>)
(<FSET? ,PRSO ,PERSON>
<TELL
"Wow! " ,IT-LOOKS-LIKE THE ,PRSO " is now alive! What a magician you are!" CR>)
(<FSET? ,PRSO ,TAKEBIT>
@ -1265,6 +1253,8 @@ little jig, and a moment later returns to normal." CR>)
<FSET? ,PRSO ,DOORBIT>>
<COND (<FSET? ,PRSO ,OPENBIT>
<ALREADY-OPEN>)
(<TIME-FROZEN?>
<TELL ,NOTHING-HAPPENS>)
(<NOT <FSET? ,PRSO ,SCROLLBIT>>
<TELL "Silently, ">
<TELL THE ,PRSO " swings open">

216
misc.zil
View file

@ -24,166 +24,43 @@
;"SUSPECT tell macro and friends"
<COND (<GASSIGNED? ZILCH> ;"version for when compiling"
<DEFMAC TELL ("ARGS" A)
<FORM PROG ()
!<MAPF ,LIST
<FUNCTION ("AUX" E P O)
<COND (<EMPTY? .A> <MAPSTOP>)
(<SET E <NTH .A 1>>
<SET A <REST .A>>)>
<COND (<TYPE? .E ATOM>
<COND (<OR <=? <SET P <SPNAME .E>>
"CRLF">
<=? .P "CR">>
<MAPRET '<CRLF>>)
;(<=? .P "V">
<MAPRET '<VPRINT>>)
(<EMPTY? .A>
<ERROR INDICATOR-AT-END? .E>)
(ELSE
<SET O <NTH .A 1>>
<SET A <REST .A>>
<COND (<OR <=? <SET P <SPNAME .E>>
"DESC">
<=? .P "D">
<=? .P "OBJ">
<=? .P "O">>
<MAPRET
<PFORM DPRINT .O>>)
(<=? .P "CD">
<MAPRET
<PFORM CDPRINT .O>>)
(<=? .P "THE">
<MAPRET
<PFORM THE-PRINT .O>>)
(<=? .P "CTHE">
<MAPRET
<PFORM CTHE-PRINT .O>>)
(<OR <=? .P "A">
<=? .P "AN">>
<MAPRET
<PFORM PRINTA .O>>)
(<OR <=? .P "NUM">
<=? .P "N">>
<MAPRET
<FORM PRINTN .O>>)
(<OR <=? .P "CHAR">
<=? .P "CHR">
<=? .P "C">>
<MAPRET
<FORM PRINTC
<CHTYPE .O FIX>>>)
(ELSE
<MAPRET
<FORM PRINT
<FORM GETP .O .E>>>)>)>)
(<TYPE? .E STRING ZSTRING>
<MAPRET
<COND (<==? <LENGTH .E> 1>
<FORM PRINTC
<CHTYPE <1 .E> FIX>>)
(ELSE
<FORM PRINTI .E>)>>)
(<AND <TYPE? .E FORM>
<==? <NTH .E 1> QUOTE>>
<MAPRET
<FORM PRINTD
<MAKE-GVAL <NTH .E 2>>>>)
(<TYPE? .E FORM LVAL GVAL>
<MAPRET <FORM PRINT .E>>)
(ELSE <ERROR UNKNOWN-TYPE .E>)>>>>>)
(ELSE ;"version for when interpreting"
<DEFINE TELL ("TUPLE" A)
<MAPR <>
<FUNCTION ("AUX" E P O)
<COND (<EMPTY? .A> <MAPLEAVE>)
(<SET E <NTH .A 1>>
<SET A <REST .A>>)>
<COND (<TYPE? .E ATOM>
<COND (<OR <=? <SET P <SPNAME .E>>
"CRLF">
<=? .P "CR">>
<CRLF>)
;(<=? .P "V"> <VPRINT>)
(<AND <GASSIGNED? .E>
<TYPE? ,.E OBJECT>>
<PRINTD ,.E>)
(<EMPTY? .A>
<ERROR INDICATOR-AT-END? .E>)
(ELSE
<SET O <NTH .A 1>>
<SET A <REST .A>>
<COND (<OR <=? <SET P <SPNAME .E>>
"DESC">
<=? .P "D">
<=? .P "OBJ">
<=? .P "O">>
<DPRINT .O>)
(<=? .P "CD">
<DPRINT .O T>)
;(<=? .P "HE/SHE">
<HE/SHE-PRINT .O>)
;(<=? .P "HIM/HER">
<HIM/HER-PRINT .O>)
;(<=? .P "HIS/HER">
<HIM/HER-PRINT .O T>)
(<=? .P "THE">
<THE-PRINT .O>)
(<=? .P "CTHE">
<CTHE-PRINT .O>)
(<OR <=? .P "A">
<=? .P "AN">>
<PRINTA .O>)
(<OR <=? .P "NUM">
<=? .P "N">>
<PRINTN .O>)
(<OR <=? .P "CHAR">
<=? .P "CHR">
<=? .P "C">>
<PRINTC .O>)
(ELSE
<PRINT <GETP .O .E>>)>)>)
(<TYPE? .E STRING ZSTRING>
<PRINTI .E>)
(<AND <TYPE? .E FORM>
<==? <NTH .E 1> QUOTE>>
<PRINTD <GVAL <NTH .E 2>>>)
(<TYPE? .E FORM LVAL GVAL>
<PRINT .E>)
(ELSE <ERROR UNKNOWN-TYPE .E>)>>>>
)>
<TELL-TOKENS (CRLF CR) <CRLF>
(NUM N) * <PRINTN .X>
(CHAR CHR C) * <PRINTC .X>
D ,PRSO <DPRINT-PRSO>
D ,PRSI <DPRINT-PRSI>
D * <DPRINT .X>
CD ,PRSO <CDPRINT-PRSO>
CD ,PRSI <CDPRINT-PRSI>
CD * <CDPRINT .X>
THE ,PRSO <THE-PRINT-PRSO>
THE ,PRSI <THE-PRINT-PRSI>
THE * <THE-PRINT .X>
CTHE ,PRSO <CTHE-PRINT-PRSO>
CTHE ,PRSI <CTHE-PRINT-PRSI>
CTHE * <CTHE-PRINT .X>
(A AN) ,PRSO <PRINTA-PRSO>
(A AN) ,PRSI <PRINTA-PRSI>
(A AN) * <PRINTA .X>>
<DEFINE PFORM (APP OBJ "AUX" A)
<COND (<AND <TYPE? .OBJ LVAL GVAL>
<MEMQ <SET A <CHTYPE .OBJ ATOM>> '[PRSO PRSI]>>
<COND (<==? .APP DPRINT>
<COND (<==? .A PRSO> <FORM DPRINT-PRSO>)
(ELSE <FORM DPRINT-PRSI>)>)
(<==? .APP CDPRINT>
<COND (<==? .A PRSO> <FORM CDPRINT-PRSO>)
(ELSE <FORM CDPRINT-PRSI>)>)
(<==? .APP THE-PRINT>
<COND (<==? .A PRSO> <FORM THE-PRINT-PRSO>)
(ELSE <FORM THE-PRINT-PRSI>)>)
(<==? .APP CTHE-PRINT>
<COND (<==? .A PRSO> <FORM CTHE-PRINT-PRSO>)
(ELSE <FORM CTHE-PRINT-PRSI>)>)
(<==? .APP PRINTA>
<COND (<==? .A PRSO> <FORM PRINTA-PRSO>)
(ELSE <FORM PRINTA-PRSI>)>)
(ELSE <ERROR .APP .OBJ>)>)
(<ASSIGNED? EXT>
<FORM .APP .OBJ .EXT>)
(ELSE
<FORM .APP .OBJ>)>>
<DEFINE MAKE-GVAL (E)
<COND (<OR <GASSIGNED? MUDDLE>
<NOT <TYPE? .E ATOM>>>
<FORM GVAL .E>)
(ELSE
<CHTYPE .E GVAL>)>>
;<TELL-TOKENS (CRLF CR) <CRLF>
(DESC D OBJ O) <DPRINT .X>
CD <CDPRINT .X>
THE <THE-PRINT .X>
CTHE <CTHE-PRINT .X>
(A AN) <PRINTA .X>
(NUM N) <PRINTN .X>
(CHAR CHR C) <PRINTC .X>
<DPRINT ,PRSO> <DPRINT-PRSO>
<DPRINT ,PRSI> <DPRINT-PRSI>
<CDPRINT ,PRSO> <CDPRINT-PRSO>
<CDPRINT ,PRSI> <CDPRINT-PRSI>
<THE-PRINT ,PRSO> <THE-PRINT-PRSO>
<THE-PRINT ,PRSI> <THE-PRINT-PRSI>
<CTHE-PRINT ,PRSO> <CTHE-PRINT-PRSO>
<CTHE-PRINT ,PRSI> <CTHE-PRINT-PRSI>
<PRINTA ,PRSO> <PRINTA-PRSO>
<PRINTA ,PRSI> <PRINTA-PRSI>>
<ROUTINE CTHE-PRINT-PRSO ()
<THE-PRINT ,PRSO T>>
@ -830,19 +707,16 @@ be include when the crunch comes."
<GLOBAL CLOCK-WAIT <>>
<GLOBAL C-TABLE %<COND (<GASSIGNED? ZILCH>
'<ITABLE NONE 26>)
(T
'<ITABLE NONE 52>)>>
<GLOBAL C-TABLE <ITABLE 13 <> <>>>
<CONSTANT C-TABLELEN 52>
<GLOBAL C-INTS 52>
<CONSTANT C-INTLEN 4> ;"length of an interrupt entry in bytes"
<CONSTANT C-RTN 0> ;"word offset of routine name"
<CONSTANT C-TICK 1> ;"word offset of count"
<CONSTANT C-TABLELEN 52> ;"length of interrupt table in bytes"
<GLOBAL C-INTS 52> ;"start of queued interrupts in bytes"
%<DEBUG-CODE <GLOBAL C-MAXINTS 52>>
<CONSTANT C-INTLEN 4> ;"length of an interrupt entry"
<CONSTANT C-RTN 0> ;"offset of routine name"
<CONSTANT C-TICK 1> ;"offset of count"
<ROUTINE DEQUEUE (RTN)
<COND (<SET RTN <QUEUED? .RTN>>
<PUT .RTN ,C-RTN 0>)>>
@ -888,7 +762,7 @@ be include when the crunch comes."
<COND (%<COND (<GASSIGNED? ZILCH>
'<G? .INT ,CLOCK-HAND>)
(ELSE
'<L=? <LENGTH .INT> <LENGTH ,CLOCK-HAND>>)>
'<L? <LENGTH .INT> <LENGTH ,CLOCK-HAND>>)>
<SET TICK <- <+ .TICK 3>>>)>
<PUT .INT ,C-TICK .TICK>
.INT>
@ -950,7 +824,7 @@ be include when the crunch comes."
<COND (<N==? <LENGTH .OBJ> 3>
<ERROR BAD-THING .OBJ>)>
<MAPRET <COND (<NTH .OBJ 2>
<VOC <SPNAME <NTH .OBJ 2>>>)>
<VOC <SPNAME <NTH .OBJ 2>> NOUN>)>
<COND (<NTH .OBJ 1>
<VOC <SPNAME <NTH .OBJ 1>> ADJECTIVE>)>
<3 .OBJ>>>

View file

@ -33,13 +33,20 @@ with 'P-'. Local variables are not restricted in any way."
<GLOBAL WINNER 0>
<GLOBAL P-LEXV <ITABLE BYTE 120>>
<GLOBAL AGAIN-LEXV <ITABLE BYTE 120>>
<GLOBAL RESERVE-LEXV <ITABLE BYTE 120>>
<GLOBAL P-LEXV
<ITABLE 59 (LEXV) 0 #BYTE 0 #BYTE 0> ;<ITABLE BYTE 120>>
<GLOBAL AGAIN-LEXV
<ITABLE 59 (LEXV) 0 #BYTE 0 #BYTE 0> ;<ITABLE BYTE 120>>
<GLOBAL RESERVE-LEXV
<ITABLE 59 (LEXV) 0 #BYTE 0 #BYTE 0> ;<ITABLE BYTE 120>>
<GLOBAL RESERVE-PTR <>>
<GLOBAL P-INBUF <ITABLE BYTE 60>> ;"INBUF - Input buffer for READ"
<GLOBAL OOPS-INBUF <ITABLE BYTE 60>>
<GLOBAL P-INBUF
<ITABLE 120 (BYTE LENGTH) 0>
;<ITABLE BYTE 60>> ;"INBUF - Input buffer for READ"
<GLOBAL OOPS-INBUF
<ITABLE 120 (BYTE LENGTH) 0>
;<ITABLE BYTE 60>>
<GLOBAL OOPS-TABLE <TABLE <> <> <> <>>>
<CONSTANT O-PTR 0> "word pointer to unknown token in P-LEXV"
<CONSTANT O-START 1> "word pointer to sentence start in P-LEXV"
@ -82,10 +89,10 @@ with 'P-'. Local variables are not restricted in any way."
<TABLE 0 0 0 0 0 0 0 0 0 0>>
<GLOBAL P-VTBL
<TABLE 0 0 0 0>>
<TABLE 0 #BYTE 0 #BYTE 0>>
<GLOBAL P-OVTBL
<TABLE 0 0 0 0>>
<TABLE 0 #BYTE 0 #BYTE 0>>
<GLOBAL P-NCN 0>
@ -262,13 +269,14 @@ with 'P-'. Local variables are not restricted in any way."
<SETG QUOTE-FLAG <>>
<RETURN>)
(<SET WRD <KNOWN-WORD? .PTR .VERB>>
<COND (<ZERO? ,P-LEN> <SET NW 0>)
(T <SET NW <GET ,P-LEXV <+ .PTR ,P-LEXELEN>>>)>
<COND (<AND <EQUAL? .WRD ,W?TO>
<EQUAL? .VERB ,ACT?TELL ,ACT?ASK>
;"next clause added 8/20/84 by JW to
enable TELL MY NAME TO BEAST"
<NOT <ZERO?
<WT? <GET ,P-LEXV <+ .PTR ,P-LEXELEN>>
,PS?VERB ,P1?VERB>>>>
<WT? .NW ,PS?VERB ,P1?VERB>>>>
<PUT ,P-ITBL ,P-VERB ,ACT?TELL>
<SET WRD ,W?QUOTE>)
(<AND <EQUAL? .WRD ,W?THEN>
@ -315,9 +323,7 @@ with 'P-'. Local variables are not restricted in any way."
<OR <EQUAL? .LEN 1>
<AND <EQUAL? .LEN 2>
<EQUAL? .VERB ,ACT?WALK ;,ACT?FLY>>
<AND <EQUAL? <SET NW
<GET ,P-LEXV
<+ .PTR ,P-LEXELEN>>>
<AND <EQUAL? .NW
,W?THEN
,W?PERIOD
,W?QUOTE>
@ -353,9 +359,7 @@ with 'P-'. Local variables are not restricted in any way."
<NOT <ZERO? <WT? .WRD ,PS?OBJECT>>>>
<SET VAL 0>>>
<COND (<AND <G? ,P-LEN 1>
<EQUAL? <GET ,P-LEXV
<+ .PTR ,P-LEXELEN>>
,W?OF>
<EQUAL? .NW ,W?OF>
<ZERO? .VAL>
<NOT <EQUAL? .WRD
,W?ALL ,W?ONE ,W?A>>
@ -364,8 +368,7 @@ with 'P-'. Local variables are not restricted in any way."
<SET OF-FLAG T>)
(<AND <NOT <ZERO? .VAL>>
<OR <ZERO? ,P-LEN>
<EQUAL? <GET ,P-LEXV <+ .PTR 2>>
,W?THEN ,W?PERIOD>>>
<EQUAL? .NW ,W?THEN ,W?PERIOD>>>
<SETG P-END-ON-PREP T>
<COND (<L? ,P-NCN 2>
<PUT ,P-ITBL ,P-PREP1 .VAL>
@ -384,9 +387,7 @@ with 'P-'. Local variables are not restricted in any way."
<RETURN>)>)>)
(<EQUAL? .WRD ,W?OF>
<COND (<OR <NOT .OF-FLAG>
<EQUAL?
<GET ,P-LEXV <+ .PTR ,P-LEXELEN>>
,W?PERIOD ,W?THEN>>
<EQUAL? .NW ,W?PERIOD ,W?THEN>>
<CANT-USE .PTR>
<RFALSE>)
(T
@ -1207,15 +1208,15 @@ OOPS-INBUF, leaving the appropriate pointers in AGAIN-LEXV"
<GLOBAL P-ADJN <>>
<GLOBAL P-PRSO <ITABLE NONE 80>>
<GLOBAL P-PRSO <ITABLE 80 <>>>
<GLOBAL P-PRSI <ITABLE NONE 80>>
<GLOBAL P-PRSI <ITABLE 80 <>>>
<GLOBAL P-BUTS <ITABLE NONE 80>>
<GLOBAL P-BUTS <ITABLE 80 <>>>
<GLOBAL P-MERGE <ITABLE NONE 80>>
<GLOBAL P-MERGE <ITABLE 80 <>>>
<GLOBAL P-OCLAUSE <ITABLE NONE 80>>
<GLOBAL P-OCLAUSE <ITABLE 80 <>>>
<GLOBAL P-MATCHLEN 0>
@ -1241,7 +1242,9 @@ OOPS-INBUF, leaving the appropriate pointers in AGAIN-LEXV"
<COND (.WAS-ALL <SETG P-GETFLAGS ,P-ALL>)>
<RETURN .WV>)
(T
<SET NW <GET .PTR ,P-LEXELEN>>
<COND (<==? .EPTR <REST .PTR ,P-WORDLEN>>
<SET NW 0>)
(T <SET NW <GET .PTR ,P-LEXELEN>>)>
<COND (<EQUAL? .WRD ,W?ALL ,W?BOTH>
<SETG P-GETFLAGS ,P-ALL>
<COND (<EQUAL? .NW ,W?OF>

900
rooms.txt Normal file
View file

@ -0,0 +1,900 @@
<OBJECT BURIN
(IN PLAYER)
(DESC "magic burin")
<ROOM DULL-ROOM
(IN ROOMS)
(DESC "Nondescript Room")
(OUT PER DULL-ROOM-EXIT)
(SOUTH PER DULL-ROOM-EXIT)
<OBJECT EARTH-CUBE
(DESC "cube")
<ROOM EARTH-ROOM
(IN ROOMS)
(DESC "Packed Earth")
(NORTH PER MAGIC-BOX-EXIT)
(EAST TO HALL-OF-STONE)
(WEST TO CAVE-ENTRANCE)
(SOUTH TO CLIFF-MIDDLE)
(DOWN PER MIDAIR-EXIT)
<ROOM HALL-OF-STONE
(IN ROOMS)
(DESC "Hall of Stone")
(NORTH TO SOUTH-SNAKE-ROOM)
(SOUTH TO RUINS-ROOM)
<ROOM NORTH-SNAKE-ROOM
(IN ROOMS)
(DESC "North of Serpent")
(SOUTH PER SNAKE-ROOM-EXIT)
(NORTH TO TEMPLE-ROOM)
(EAST PER SNAKE-ROOM-EXIT)
(WEST PER SNAKE-ROOM-EXIT)
<ROOM SOUTH-SNAKE-ROOM
(IN ROOMS)
(DESC "Smooth Room")
(NORTH PER SNAKE-ROOM-EXIT)
(SOUTH TO HALL-OF-STONE)
(EAST PER SNAKE-ROOM-EXIT)
(WEST PER SNAKE-ROOM-EXIT)
<OBJECT SNAKE
(IN LOCAL-GLOBALS)
(DESC "serpent")
<ROOM TEMPLE-ROOM
(IN ROOMS)
(DESC "Temple")
(SOUTH TO NORTH-SNAKE-ROOM)
<OBJECT IDOL
(IN TEMPLE-ROOM)
(DESC "rodent idol")
<OBJECT TEETH
(IN IDOL)
(DESC "fangs")
<OBJECT MOUTH
(IN IDOL)
(DESC "mouth")
<OBJECT OPAL
(IN IDOL)
(DESC "opal eye")
<OBJECT OPAL-SHARD
(DESC "opal shard")
<OBJECT ZIPPER
(IN RUINS-ROOM)
(DESC "zipper")
<ROOM RUINS-ROOM
(IN ROOMS)
(DESC "Ruins Room")
(NORTH TO HALL-OF-STONE)
(SOUTH "The ruins end here.")
(DOWN TO RUINED-PIPE IF SMALL-FLAG)
<OBJECT RUINS-CHANNEL
(IN RUINS-ROOM)
(DESC "channel")
<OBJECT RUINS-INFLOW
(IN RUINS-ROOM)
(DESC "inflow pipe")
<OBJECT RUINS-OUTFLOW
(IN RUINS-ROOM)
(DESC "outflow pipe")
<ROOM CLIFF-TOP
(IN ROOMS)
(DESC "Cliff Top")
(DOWN TO CLIFF-MIDDLE)
(UP PER CLIFF-TOP-EXIT) ;"BOULDER-1"
<ROOM BOULDER-1
(IN ROOMS)
(DESC "Boulder")
(UP TO BOULDER-2)
(DOWN TO CLIFF-TOP)
<ROOM BOULDER-2
(IN ROOMS)
(DESC "Boulder")
(UP TO BOULDER-3)
(DOWN TO BOULDER-1)
<ROOM BOULDER-3
(IN ROOMS)
(DESC "Boulder")
(UP TO MOUNTAIN-TOP)
(DOWN TO BOULDER-2)
<ROOM MOUNTAIN-TOP
(IN ROOMS)
(DESC "Mountain Top")
(IN PER HUT-ROOM-EXIT)
(WEST PER HUT-ROOM-EXIT)
(DOWN PER CLIFF-TOP-EXIT ;CLIFF-TOP)
<ROOM HUT-ROOM
(IN ROOMS)
(DESC "Stone Hut")
(OUT PER HUT-ROOM-EXIT ;MOUNTAIN-TOP)
(EAST PER HUT-ROOM-EXIT ;MOUNTAIN-TOP)
<OBJECT HUT
(IN LOCAL-GLOBALS)
(DESC "stone hut")
<OBJECT HERMIT
(IN HUT-ROOM)
(DESC "hermit")
<OBJECT GLOBAL-CLIFF
(IN LOCAL-GLOBALS)
(DESC "cliff")
<OBJECT GLOBAL-ROCKS
(IN LOCAL-GLOBALS)
(DESC "rock")
<ROOM CLIFF-MIDDLE
(IN ROOMS)
(DESC "Cliff Middle")
(UP TO CLIFF-TOP)
(DOWN TO CLIFF-BOTTOM)
<ROOM CLIFF-BOTTOM
(IN ROOMS)
(DESC "Cliff Bottom")
(UP TO CLIFF-MIDDLE)
(DOWN "You're at the bottom already.")
(WEST TO CAVE-ENTRANCE)
(EAST "There's no path that way.")
(SOUTH "There's no path that way.")
<OBJECT GLOBAL-CAVE
(IN LOCAL-GLOBALS)
(DESC "cave")
<ROOM CAVE-ENTRANCE
(IN ROOMS)
(DESC "Cave Entrance")
(EAST TO CLIFF-BOTTOM)
(IN TO OGRE-CAVE)
(NORTH TO OGRE-CAVE)
(UP "There's no path that way.")
<ROOM OGRE-CAVE
(IN ROOMS)
(DESC "Cave")
(OUT TO CAVE-ENTRANCE)
(SOUTH TO CAVE-ENTRANCE)
(DOWN PER OGRE-BEDROOM-EXIT)
<ROOM OGRE-BEDROOM
(IN ROOMS)
(DESC "Ogre Lair")
(UP TO OGRE-CAVE)
(OUT TO OGRE-CAVE)
<OBJECT MAGIC-BOX
(IN OGRE-BEDROOM)
(DESC "gold box")
<OBJECT OGRE
(IN OGRE-CAVE)
(DESC "ogre")
;<OBJECT CLUB
(IN OGRE)
(DESC "club")
<OBJECT WATER-CUBE
(IN MAGIC-BOX)
(DESC "cube")
<ROOM WATER-ROOM
(IN ROOMS)
(DESC "Water Room")
(NORTH TO OUBLIETTE)
(EAST PER MAGIC-BOX-EXIT)
(SOUTH TO OCEAN-ROOM)
<ROOM OCEAN-ROOM
(IN ROOMS)
(DESC "Mid-Ocean")
<ROOM LOST-IN-OCEAN
(IN ROOMS)
(DESC "Open Ocean")
<ROOM OCEAN-FLOOR
(IN ROOMS)
(DESC "Ocean Floor")
(UP TO OCEAN-ROOM)
<OBJECT GROUPER-NEST
(IN OCEAN-FLOOR)
(DESC "grouper nest")
<OBJECT BOTTLE
(IN OCEAN-ROOM)
(DESC "bottle")
<OBJECT GROUPER
(IN OCEAN-ROOM)
(DESC "grouper")
<ROOM OUBLIETTE
(IN ROOMS)
(DESC "Oubliette")
(DOWN PER OUBLIETTE-DOWN-EXIT)
(UP PER OUBLIETTE-UP-EXIT) ;"PRISON"
<OBJECT ICEBERG
(DESC "ice floe")
<OBJECT INFLOW
(IN OUBLIETTE)
(DESC "inflow pipe")
<OBJECT OUTFLOW
(IN OUBLIETTE)
(DESC "outflow pipe")
<ROOM IN-CHANNEL
(IN ROOMS)
(DESC "In Channel")
(UP TO OUBLIETTE)
(WEST TO IN-PIPE)
(EAST "The current is too strong." ;IN-PIPE-2)
<OBJECT WATER-PIPE
(IN LOCAL-GLOBALS)
(DESC "pipe")
<OBJECT OUBLIETTE-CHANNEL
(IN OUBLIETTE)
(DESC "channel")
<ROOM IN-PIPE
(IN ROOMS)
(DESC "In Pipe")
(EAST "The current is too strong." ;IN-CHANNEL)
(WEST TO IN-PIPE-2)
<ROOM IN-PIPE-2
(IN ROOMS)
(DESC "In Pipe")
(EAST "The current is too strong." ;IN-PIPE)
(WEST TO RUINED-PIPE)
<OBJECT CHUNK
(IN IN-PIPE-2)
(DESC "crack")
<ROOM RUINED-PIPE
(IN ROOMS)
(DESC "Ruined Pipe")
(EAST "The current is too strong." ;IN-PIPE-2)
(WEST TO IN-SEWER)
(UP TO RUINS-ROOM)
(OUT TO RUINS-ROOM)
<ROOM IN-SEWER
(IN ROOMS)
(DESC "In Pipe")
(EAST "The current is too strong." ;RUINED-PIPE)
<ROOM PRISON
(IN ROOMS)
(DESC "Dungeon")
(DOWN PER PRISON-DOWN-EXIT ;OUBLIETTE)
(UP TO GUARD-TOWER)
(EAST TO CELL-HALL-EAST)
<OBJECT TRAP-DOOR
(IN LOCAL-GLOBALS)
(DESC "trap door")
<ROOM CELL-HALL-EAST
(IN ROOMS)
(DESC "Dungeon East End")
(WEST TO PRISON)
(NORTH TO CELL-EAST)
<ROOM CELL-EAST
(IN ROOMS)
(DESC "Dungeon Cell")
(SOUTH TO CELL-HALL-EAST)
<OBJECT CABINET
(IN CELL-EAST)
(DESC "massive cabinet")
<OBJECT PAST-CABINET
(IN PAST-CELL-EAST)
(DESC "massive cabinet")
<OBJECT KEY
(IN BELBOZ)
(DESC "wrought iron key")
<OBJECT DEAD-BOOK
(IN CABINET)
(DESC "moldy book")
<ROOM GUARD-TOWER
(IN ROOMS)
(DESC "Guard Tower")
(DOWN TO PRISON)
(UP "You'll need to flap your wings harder than that.")
<OBJECT ROC
(DESC "roc")
<ROOM ROC-NEST
(IN ROOMS)
(DESC "In Roc Nest")
(OUT "The nest is perched on a pinnacle of rock. It's a long way down.")
<OBJECT EGG
(IN ROC-NEST)
(DESC "roc egg")
<OBJECT BABY-ROC
(DESC "roc chick")
<OBJECT AIR-CUBE
(IN MOUTH)
(DESC "cube")
<ROOM AIR-ROOM
(IN ROOMS)
(DESC "Air Room")
(NORTH TO GLACIER-ROOM)
(WEST TO BAZAAR)
(SOUTH PER MIDAIR-EXIT) ;"EITHER WARNING OR MIDAIR"
(DOWN PER MAGIC-BOX-EXIT)
<ROOM GLACIER-ROOM
(IN ROOMS)
(DESC "Glacier")
<ROOM EMPORIUM
(IN ROOMS)
(DESC "Emporium")
(WEST TO BAZAAR IF EMPORIUM-DOOR IS OPEN)
(OUT TO BAZAAR IF EMPORIUM-DOOR IS OPEN)
<OBJECT EMPORIUM-DOOR
(IN LOCAL-GLOBALS)
(DESC "shop door")
<OBJECT ZORKMID
(IN MOUNTAIN-TOP)
(DESC "gold coin")
<OBJECT MERCHANT
(IN EMPORIUM)
(DESC "merchant")
<ROOM BAZAAR
(IN ROOMS)
(DESC "Bazaar")
(EAST PER EMPORIUM-EXIT)
(IN PER EMPORIUM-EXIT)
<OBJECT RANDOM-CARPET
(DESC "scruffy red carpet")
<OBJECT MAGIC-CARPET
(DESC "beautiful blue carpet")
<OBJECT CARPET-LABEL
(IN MAGIC-CARPET)
(DESC "label")
<ROOM MIDAIR
(IN ROOMS)
(DESC "Midair")
<ROOM LOST-IN-CLOUDS
(IN ROOMS)
(DESC "In Thick Clouds")
<ROOM LOST-ON-LAND
(IN ROOMS)
(DESC "Wilderness")
<OBJECT FIRE-CUBE
(IN PILLAR-ROOM)
(DESC "cube")
<ROOM FIRE-ROOM
(IN ROOMS)
(DESC "Fire Room")
(SOUTH TO CLIFF-TOP)
(NORTH TO VOLCANO-ROOM)
(EAST PER MAGIC-BOX-EXIT)
<ROOM VOLCANO-ROOM
(IN ROOMS)
(DESC "Volcano")
<ROOM VOLCANO-BASE
(IN ROOMS)
(DESC "Volcano Base")
<OBJECT LAVA-ROCK
(DESC "lava fragment")
<ROOM OUTCROPPING-ROOM
(IN ROOMS)
(DESC "Outcropping")
<OBJECT OUTCROPPING
(IN LOCAL-GLOBALS)
(DESC "outcropping")
<OBJECT DARK-CUBE
(IN OTHER-ROCK)
(DESC "cube")
<ROOM DARK-ROOM
(IN ROOMS)
(DESC "Dark Room")
(DOWN TO DARK-CAVE)
(UP PER MAGIC-BOX-EXIT)
<ROOM DARK-CAVE
(IN ROOMS)
(DESC "Dark Cave")
(DOWN TO GRUE-CAVE)
<ROOM GRUE-CAVE
(IN ROOMS)
(DESC "Grue Cave")
(UP TO DARK-CAVE)
(IN TO LIGHT-POOL)
(DOWN TO LIGHT-POOL)
<ROOM LIGHT-POOL
(IN ROOMS)
(DESC "Light Pool")
(OUT TO GRUE-CAVE)
(UP TO GRUE-CAVE)
<ROOM PILLAR-ROOM
(IN ROOMS)
(DESC "On Pillar")
(DOWN TO LIGHT-POOL)
<OBJECT PILLAR
(IN LOCAL-GLOBALS)
(DESC "pillar")
<OBJECT MIND-CUBE
(IN MAZE-1)
(DESC "cube")
<ROOM MIND-ROOM
(IN ROOMS)
(DESC "No Place")
(EAST PER SCALES-ROOM-EXIT)
(SOUTH PER PLAIN-ROOM-EXIT)
(WEST PER MIND-BOX-EXIT)
<ROOM INNER-VAULT
(IN ROOMS)
(DESC "Inner Vault")
(OUT TO SCALES-ROOM IF VAULT-DOOR IS OPEN)
(NORTH TO SCALES-ROOM IF VAULT-DOOR IS OPEN)
<OBJECT VAULT-DOOR
(IN LOCAL-GLOBALS)
(DESC "vault door")
<ROOM SCALES-ROOM
(IN ROOMS)
(DESC "Outer Vault")
(OUT PER IRON-DOOR-EXIT)
(NORTH PER IRON-DOOR-EXIT)
(SOUTH TO INNER-VAULT IF VAULT-DOOR IS OPEN)
<OBJECT IRON-DOOR
(IN LOCAL-GLOBALS)
(DESC "iron door")
<OBJECT TREASURE
(IN INNER-VAULT)
(DESC "treasure")
<OBJECT JUNK
(DESC "pile of junk")
<OBJECT ALARM-FAIRY
(DESC "alarm fairy")
<OBJECT PILE-1
(IN SCALES-ROOM)
(DESC "first pile")
<OBJECT PILE-2
(IN SCALES-ROOM)
(DESC "second pile")
<OBJECT CUBE-1
(IN PILE-1)
(DESC "cube")
<OBJECT CUBE-2
(IN PILE-1)
(DESC "cube")
<OBJECT CUBE-3
(IN PILE-1)
(DESC "cube")
<OBJECT CUBE-4
(IN PILE-1)
(DESC "cube")
<OBJECT CUBE-5
(IN PILE-1)
(DESC "cube")
<OBJECT CUBE-6
(IN PILE-1)
(DESC "cube")
<OBJECT CUBE-7
(IN PILE-2)
(DESC "cube")
<OBJECT CUBE-8
(IN PILE-2)
(DESC "cube")
<OBJECT CUBE-9
(IN PILE-2)
(DESC "cube")
<OBJECT CUBE-10
(IN PILE-2)
(DESC "cube")
<OBJECT CUBE-11
(IN PILE-2)
(DESC "cube")
<ROOM PLAIN-ROOM
(IN ROOMS)
(DESC "Plain")
<OBJECT LINES
(IN LOCAL-GLOBALS)
(DESC "lines")
<OBJECT ROCK
(IN PLAIN-ROOM)
(DESC "green eyed rock")
<OBJECT OTHER-ROCK
(IN PLAIN-ROOM)
(DESC "brown eyed rock")
<OBJECT LIGHT-CUBE
(IN GROUPER-NEST)
(DESC "cube")
<ROOM LIGHT-ROOM
(IN ROOMS)
(DESC "Light Room")
(SOUTH PER MAGIC-BOX-EXIT)
(WEST TO VOLCANO-BASE)
<OBJECT LIFE-CUBE
(IN HUT-ROOM)
(DESC "cube")
<ROOM LIFE-ROOM
(IN ROOMS)
(DESC "Soft Room")
(EAST PER MAGIC-BOX-EXIT)
(SOUTH TO MEADOW-ROOM)
<ROOM MEADOW-ROOM
(IN ROOMS)
(DESC "Meadow")
<OBJECT SHEARS
(IN MEADOW-ROOM)
(DESC "pair of pruning shears")
<OBJECT WEED
(IN MEADOW-ROOM)
(DESC "weed")
<OBJECT DEATH-CUBE
(IN PRISON)
(DESC "cube")
<ROOM DEATH-ROOM
(IN ROOMS)
(DESC "Boneyard")
(OUT TO BELWIT-SQUARE)
(NORTH TO BELWIT-SQUARE)
(WEST PER MAGIC-BOX-EXIT)
<OBJECT CHANGE-CUBE
(IN CHUNK)
(DESC "cube")
<ROOM CHANGE-ROOM
(IN ROOMS)
(DESC "Changing Room")
(NORTH TO BARE-ROOM)
(WEST TO MAZE-ANTEROOM)
(EAST PER MAGIC-BOX-EXIT)
<ROOM BARE-ROOM
(IN ROOMS)
(DESC "Bare Room")
<ROOM MAZE-ANTEROOM
(IN ROOMS)
(DESC "Carving Room")
(NORTH TO MAZE-9 IF MAZE-EXIT-FLAG)
<OBJECT COMPASS-CARVING
(IN MAZE-ANTEROOM)
(DESC "carving")
<OBJECT COMPASS-ROSE
(IN BARE-ROOM)
(DESC "compass rose")
<OBJECT NORTH-RUNE
(IN LOCAL-GLOBALS)
(DESC "north rune")
<OBJECT EAST-RUNE
(IN LOCAL-GLOBALS)
(DESC "east rune")
<OBJECT WEST-RUNE
(IN LOCAL-GLOBALS)
(DESC "west rune")
<OBJECT SOUTH-RUNE
(IN LOCAL-GLOBALS)
(DESC "south rune")
<OBJECT NE-RUNE
(IN LOCAL-GLOBALS)
(DESC "northeast rune")
<OBJECT NW-RUNE
(IN LOCAL-GLOBALS)
(DESC "northwest rune")
<OBJECT SE-RUNE
(IN LOCAL-GLOBALS)
(DESC "southeast rune")
<OBJECT SW-RUNE
(IN LOCAL-GLOBALS)
(DESC "southwest rune")
<ROOM MAZE-1
(IN ROOMS)
(DESC "Octagonal Room")
(SOUTH TO MAZE-4)
(SE TO MAZE-5)
(EAST TO MAZE-2)
<OBJECT OCTAGONAL-HOLE
(IN MAZE-2)
(DESC "octagonal hole")
<OBJECT MAZE-2-DOOR
(IN MAZE-2)
(DESC "alabaster plug")
<ROOM MAZE-2
(IN ROOMS)
(DESC "Octagonal Room")
(WEST TO MAZE-1 IF OCTAGONAL-HOLE IS OPEN)
(SW TO MAZE-4)
(SOUTH TO MAZE-5)
(SE TO MAZE-6)
(EAST TO MAZE-3)
<ROOM MAZE-3
(IN ROOMS)
(DESC "Octagonal Room")
(WEST TO MAZE-2)
(SW TO MAZE-5)
(SOUTH TO MAZE-6)
<ROOM MAZE-4
(IN ROOMS)
(DESC "Octagonal Room")
(NORTH TO MAZE-1)
(NE TO MAZE-2)
(EAST TO MAZE-5)
(SE TO MAZE-8)
(SOUTH TO MAZE-7)
<ROOM MAZE-5
(IN ROOMS)
(DESC "Octagonal Room")
(NORTH TO MAZE-2)
(EAST TO MAZE-6)
(SOUTH TO MAZE-8)
(WEST TO MAZE-4)
<ROOM MAZE-6
(IN ROOMS)
(DESC "Octagonal Room")
(NORTH TO MAZE-3)
(SOUTH TO MAZE-9)
(SW TO MAZE-8)
(WEST TO MAZE-5)
(NW TO MAZE-2)
<ROOM MAZE-7
(IN ROOMS)
(DESC "Octagonal Room")
(NORTH TO MAZE-4)
(NE TO MAZE-5)
(EAST TO MAZE-8)
<ROOM MAZE-8
(IN ROOMS)
(DESC "Octagonal Room")
(WEST TO MAZE-7)
(NW TO MAZE-4)
(NORTH TO MAZE-5)
(NE TO MAZE-6)
(EAST TO MAZE-9)
<ROOM MAZE-9
(IN ROOMS)
(DESC "Octagonal Room")
(WEST TO MAZE-8)
(NW TO MAZE-5)
(NORTH TO MAZE-6)
(SOUTH TO MAZE-ANTEROOM)
<OBJECT MAGIC-CUBE
(IN OUTCROPPING-ROOM)
(DESC "cube")
<ROOM MAGIC-ROOM
(IN ROOMS)
(DESC "Magic Room")
(NORTH TO MEADOW-ROOM)
(EAST PER MAGIC-DOOR-EXIT)
(SOUTH PER MAGIC-BOX-EXIT)
<OBJECT TIME-CUBE
(DESC "cube")
<ROOM TIME-ROOM
(IN ROOMS)
(DESC "Sand Room")
(UP TO PAST-RUINS-ROOM)
(DOWN TO PAST-CELL-EAST)
<ROOM PAST-RUINS-ROOM
(IN ROOMS)
(DESC "Ruins Room")
(NORTH "The water is too deep and cold.")
(SOUTH "The water is too deep and cold.")
<OBJECT SACK
(IN PAST-RUINS-ROOM)
(DESC "sack")
<ROOM PAST-CELL-EAST
(IN ROOMS)
(DESC "Dungeon Cell")
(SOUTH PER PAST-CELL-EAST-EXIT)
<OBJECT CELL-DOOR
(IN LOCAL-GLOBALS)
(DESC "cell door")
<OBJECT CONNECTIVITY-CUBE
(IN ROC-NEST)
(DESC "cube")
<ROOM CONNECTIVITY-ROOM
(IN ROOMS)
(DESC "String Room")
(EAST PER MAGIC-BOX-EXIT)
(SOUTH TO RETREAT)
<OBJECT QWORD
(IN GLOBAL-OBJECTS)
(DESC "handwritten word")
<OBJECT GLOBAL-OBJECTS
<OBJECT LOCAL-GLOBALS
(IN GLOBAL-OBJECTS)
<OBJECT ROOMS
(IN TO ROOMS)>
<OBJECT INTNUM
(IN GLOBAL-OBJECTS)
(DESC "number")
<OBJECT PSEUDO-OBJECT
(IN GLOBAL-OBJECTS)
(DESC "pseudo")
<OBJECT IT
(IN GLOBAL-OBJECTS)
(DESC "it")
<OBJECT NOT-HERE-OBJECT
(DESC "it")
<OBJECT LIGHT
(IN GLOBAL-OBJECTS)
(DESC "light")
<OBJECT GLOBAL-HOLE
(IN LOCAL-GLOBALS)
(DESC "hole")
<OBJECT CEILING
(IN GLOBAL-OBJECTS)
(DESC "ceiling")
<OBJECT ICE
(IN GLOBAL-OBJECTS)
(DESC "ice")
<OBJECT AIR
(IN GLOBAL-OBJECTS)
(DESC "air")
<OBJECT HANDS
(IN GLOBAL-OBJECTS)
(DESC "your hand")
<OBJECT HEAD
(IN GLOBAL-OBJECTS)
(DESC "your head")
<OBJECT EYES
(IN GLOBAL-OBJECTS)
(DESC "your eyes")
<OBJECT PLAYER
(IN COUNCIL-CHAMBER)
(DESC "it")
<OBJECT ME
(IN GLOBAL-OBJECTS)
(DESC "yourself")
<OBJECT GLOBAL-ROOM
(IN GLOBAL-OBJECTS)
(DESC "room")
<OBJECT NORTH-WALL
(IN GLOBAL-OBJECTS)
(DESC "north wall")
<OBJECT EAST-WALL
(IN GLOBAL-OBJECTS)
(DESC "east wall")
<OBJECT WEST-WALL
(IN GLOBAL-OBJECTS)
(DESC "west wall")
<OBJECT SOUTH-WALL
(IN GLOBAL-OBJECTS)
(DESC "south wall")
<OBJECT NE-WALL
(IN GLOBAL-OBJECTS)
(DESC "northeast wall")
<OBJECT NW-WALL
(IN GLOBAL-OBJECTS)
(DESC "northwest wall")
<OBJECT SE-WALL
(IN GLOBAL-OBJECTS)
(DESC "southeast wall")
<OBJECT SW-WALL
(IN GLOBAL-OBJECTS)
(DESC "southwest wall")
<OBJECT DIRT
(IN GLOBAL-OBJECTS)
(DESC "dirt")
<OBJECT GROUND
(IN GLOBAL-OBJECTS)
(DESC "ground")
<OBJECT CORRIDOR
(IN GLOBAL-OBJECTS)
(DESC "passage")
<OBJECT WALLS
(IN GLOBAL-OBJECTS)
(DESC "wall")
<OBJECT GLOBAL-GRUE
(IN GLOBAL-OBJECTS)
(DESC "lurking grue")
<OBJECT GRUE
(IN LOCAL-GLOBALS)
(DESC "grue")
<OBJECT LOCAL-WATER
(DESC "water")
<OBJECT WATER
(IN LOCAL-GLOBALS)
(DESC "water")
<ROOM RETREAT
(IN ROOMS)
(DESC "Enchanters' Retreat")
<OBJECT BELBOZ
(IN RETREAT)
(DESC "Belboz")
<OBJECT GLOBAL-SLEEP
(IN GLOBAL-OBJECTS)
(DESC "sleep")
<OBJECT MAGIC
(IN GLOBAL-OBJECTS)
(DESC "magic")
<OBJECT KNIFE
(IN PLAYER)
(DESC "knife")
<ROOM GUILD-HALL
(IN ROOMS)
(DESC "Guild Hall")
(NORTH TO COUNCIL-CHAMBER)
(SOUTH TO BELWIT-SQUARE)
(OUT TO BELWIT-SQUARE)
<OBJECT BREAD
(IN GUILD-HALL)
(DESC "chunk of rye bread")
<OBJECT FISH
(IN GUILD-HALL)
(DESC "smoked fish")
<ROOM COUNCIL-CHAMBER
(IN ROOMS)
(DESC "Council Chamber")
(SOUTH TO GUILD-HALL)
(OUT TO GUILD-HALL)
<OBJECT SORCERER
(IN COUNCIL-CHAMBER)
(DESC "sorcerer")
<OBJECT SPEAKER
(IN COUNCIL-CHAMBER)
(DESC "speaker")
<OBJECT ORKAN
(IN COUNCIL-CHAMBER)
(DESC "Orkan of Thriff")
<OBJECT SNEFFLE
(IN COUNCIL-CHAMBER)
(DESC "Sneffle")
<OBJECT HOOBLY
(IN COUNCIL-CHAMBER)
(DESC "Hoobly")
<OBJECT GZORNENPLATZ
(IN COUNCIL-CHAMBER)
(DESC "Gzornenplatz")
<OBJECT ARDIS
(IN COUNCIL-CHAMBER)
(DESC "Ardis")
<ROOM BELWIT-SQUARE
(IN ROOMS)
(DESC "Belwit Square")
(NORTH TO GUILD-HALL)
(EAST "You wander around for a while and end up back in the square.")
(WEST "You wander around for a while and end up back in the square.")
(SOUTH "A remarkably surly guard blocks your way.")
<OBJECT SHADOW
(IN COUNCIL-CHAMBER)
(DESC "shadowy figure")
<OBJECT CLOUD
(IN BELWIT-SQUARE)
(DESC "cloud of orange smoke")
<ROOM CASTLE
(IN ROOMS)
(DESC "Castle")
<OBJECT HYPERCUBE
(DESC "construction")
<OBJECT SPELL-BOOK
(IN PLAYER)
(DESC "spell book")
<OBJECT BLORPLE-SPELL
(IN CASTLE) ;"so MOBY-FIND can find it"
(DESC "blorple spell")
<OBJECT LESOCH-SPELL
(IN SPELL-BOOK)
(DESC "lesoch spell")
<OBJECT SNAVIG-SPELL
(IN CASTLE) ;"so MOBY-FIND can find it"
(DESC "snavig spell")
<OBJECT GIRGOL-SCROLL
(IN CASTLE) ;"so MOBY-FIND can find it"
(DESC "flimsy scroll")
<OBJECT GIRGOL-SPELL
(IN GIRGOL-SCROLL)
(DESC "girgol spell")
<OBJECT JINDAK-SPELL
(IN SPELL-BOOK)
(DESC "jindak spell")
<OBJECT ESPNIS-SCROLL
(IN OGRE-BEDROOM)
(DESC "dusty scroll")
<OBJECT ESPNIS-SPELL
(IN ESPNIS-SCROLL)
(DESC "espnis spell")
<OBJECT TINSOT-SCROLL
(IN GLACIER-ROOM)
(DESC "white scroll")
<OBJECT TINSOT-SPELL
(IN TINSOT-SCROLL)
(DESC "tinsot spell")
<OBJECT THROCK-SCROLL
(IN CLIFF-MIDDLE)
(DESC "dirty scroll")
<OBJECT THROCK-SPELL
(IN THROCK-SCROLL)
(DESC "throck spell")
<OBJECT CASKLY-SCROLL
(IN ROC-NEST)
(DESC "stained scroll")
<OBJECT CASKLY-SPELL
(IN CASKLY-SCROLL)
(DESC "caskly spell")
<OBJECT LISKON-SCROLL
(IN BOTTLE)
(DESC "damp scroll")
<OBJECT LISKON-SPELL
(IN LISKON-SCROLL)
(DESC "liskon spell")
<OBJECT MALYON-SPELL
(IN SPELL-BOOK)
(DESC "malyon spell")
<OBJECT GNUSTO-SPELL
(IN SPELL-BOOK)
(DESC "gnusto spell")
<OBJECT FROTZ-SPELL
(IN SPELL-BOOK)
(DESC "frotz spell")
<OBJECT REZROV-SPELL
(IN SPELL-BOOK)
(DESC "rezrov spell")
<OBJECT YOMIN-SPELL
(IN SPELL-BOOK)
(DESC "yomin spell")
<OBJECT SPELL-COPY
(DESC "original")
<OBJECT BLANK-SCROLL
(IN PAST-CABINET)
(DESC "vellum scroll")

51
spells.txt Normal file
View file

@ -0,0 +1,51 @@
---Summary of magic spells---
Earth
Air
Fire
Water
Dark/Light
Mind
Death/Life
Change
Magic
Time
Connectivity
-------------------------|-----------------------
Spell English | E A F W D I X C M T =
-------------------------|-----------------------
s *AIMFIZ go to person | I =
e BLORB strong box | E M
6 BLORPLE connections | M =
e CLEESH newt | W C
e EXEX haste | F T
e *FILFRE fireworks | F D
es FROTZ light | D C
s FWEEP bat | A C
s GASPAR resurrect | A X
6 GIRGOL stop time | C T
es GNUSTO write magic | C M
s GOLMAC time travel | M T
e GONDAR quench | F X
e *GUNCHO banish | X =
es IZYUK fly | A C
e KREBF repair | C =
e *KULCAD dispel | I M
6 LESOCH wind | A F
s MALYON animate | F X
s MEEF wilt | W X
e MELBOR protection | E M
e NITFOL animal talk | I C
e OZMOO cheat death | X T
s PULVER dry up | F W
es REZROV open | E C
6 SNAVIG grue | E C
s SWANZO exorcise | X M
s VARDIK mind shield | E I
e VAXUM charm | A I
s VEZZA view future | I T
s YOMIN mind probe | D I
s *YONK augment | M T
e ZIFMIA summon | I =
-------------------------|-----------------------
E A F W D I X C M T =

View file

@ -5,20 +5,14 @@
<BUZZ $BUZZ A AN THE IS ARE AM AND OF THEN ALL ONE BUT EXCEPT \. \, \"
PLEASE HERE SOME G AGAIN OOPS>
<SYNONYM WITH USING>
;<SYNONYM THROUGH THRU>
<SYNONYM ON ONTO>
<SYNONYM IN INSIDE INTO>
<SYNONYM UNDER BELOW BENEATH UNDERNEATH>
<SYNONYM AROUND ALONG>
<SYNONYM ALL BOTH>
<PREP-SYNONYM WITH USING>
;<PREP-SYNONYM THROUGH THRU>
<PREP-SYNONYM ON ONTO>
<PREP-SYNONYM IN INSIDE INTO>
<PREP-SYNONYM UNDER BELOW BENEATH UNDERNEATH>
<PREP-SYNONYM AROUND ALONG>
<SYNONYM NORTH N>
<SYNONYM SOUTH S>
<SYNONYM EAST E>
<SYNONYM WEST W>
<SYNONYM DOWN D>
<SYNONYM UP U>
<SYNONYM ALL BOTH>
\
@ -29,15 +23,15 @@
<SYNTAX BRIEF = V-BRIEF>
<SYNTAX SUPER = V-SUPER-BRIEF>
<SYNONYM SUPER SUPERBRIEF>
<VERB-SYNONYM SUPER SUPERBRIEF>
<SYNTAX DIAGNOSE = V-DIAGNOSE>
<SYNTAX I = V-INVENTORY>
<SYNONYM I INVENTORY>
<VERB-SYNONYM I INVENTORY>
<SYNTAX QUIT = V-QUIT>
<SYNONYM QUIT Q>
<VERB-SYNONYM QUIT Q>
<SYNTAX RESTAR = V-RESTART>
@ -62,7 +56,7 @@
<SYNTAX ANSWER = V-ANSWER>
<SYNTAX ANSWER OBJECT = V-REPLY>
<SYNONYM ANSWER REPLY RESPOND>
<VERB-SYNONYM ANSWER REPLY RESPOND>
<SYNTAX APPLY OBJECT (HELD MANY HAVE) TO OBJECT = V-PUT PRE-PUT>
@ -70,12 +64,12 @@
<SYNTAX ASK OBJECT (FIND PERSON) FOR OBJECT = V-ASK-FOR PRE-ASK-FOR>
<SYNTAX ASK ABOUT OBJECT = V-ASK-ABOUT PRE-ASK-ABOUT>
<SYNTAX ASK OBJECT (FIND PERSON) ABOUT OBJECT = V-ASK-ABOUT PRE-ASK-ABOUT>
<SYNONYM ASK QUERY QUIZ>
<VERB-SYNONYM ASK QUERY QUIZ>
<SYNTAX ATTACK OBJECT (FIND PERSON) (ON-GROUND IN-ROOM) = V-ATTACK>
<SYNTAX ATTACK OBJECT (FIND PERSON) (ON-GROUND IN-ROOM)
WITH OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE) = V-ATTACK>
<SYNONYM ATTACK ASSAULT FIGHT HIT STRIKE>
<VERB-SYNONYM ATTACK ASSAULT FIGHT HIT STRIKE>
<SYNTAX BITE OBJECT = V-BITE>
@ -83,13 +77,13 @@
<SYNTAX BLOW OUT OBJECT = V-LAMP-OFF>
<SYNTAX BOARD OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-BOARD PRE-BOARD>
<SYNONYM BOARD EMBARK RIDE>
<VERB-SYNONYM BOARD EMBARK RIDE>
<SYNTAX BURN OBJECT (HELD CARRIED ON-GROUND IN-ROOM)
WITH OBJECT (HELD CARRIED ON-GROUND IN-ROOM HAVE) = V-BURN>
<SYNTAX BURN DOWN OBJECT (HELD CARRIED ON-GROUND IN-ROOM)
WITH OBJECT (HELD CARRIED ON-GROUND IN-ROOM HAVE) = V-BURN>
<SYNONYM BURN IGNITE>
<VERB-SYNONYM BURN IGNITE>
<SYNTAX CLIMB OBJECT (ON-GROUND IN-ROOM) = V-CLIMB-FOO>
<SYNTAX CLIMB ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
@ -99,41 +93,43 @@
<SYNTAX CLIMB IN OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-BOARD PRE-BOARD>
<SYNTAX CLIMB OFF OBJECT (FIND RLANDBIT) (ON-GROUND IN-ROOM) = V-DISEMBARK>
<SYNTAX CLIMB OUT OBJECT (FIND RLANDBIT) (ON-GROUND IN-ROOM) = V-DISEMBARK>
<SYNONYM CLIMB SCALE>
<VERB-SYNONYM CLIMB SCALE>
<SYNTAX DESCEN OBJECT (ON-GROUND IN-ROOM) = V-CLIMB-DOWN>
<SYNTAX LIE DOWN OBJECT (FIND RLANDBIT) = V-SLEEP>
<SYNTAX LIE ON OBJECT (FIND VEHBIT) = V-BOARD>
;<SYNONYM LIE>
;<VERB-SYNONYM LIE>
<SYNTAX CLOSE OBJECT (FIND CONTBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-CLOSE PRE-CLOSE>
<SYNONYM CLOSE SHUT ZIP>
<VERB-SYNONYM CLOSE SHUT ZIP>
<SYNTAX COMPARE OBJECT TO OBJECT = V-COMPARE>
<SYNTAX COMPARE OBJECT WITH OBJECT = V-COMPARE>
<SYNTAX COUNT OBJECT = V-COUNT>
<SYNTAX COUNT OBJECT IN OBJECT = V-COUNT>
;<SYNONYM COUNT>
;<VERB-SYNONYM COUNT>
<SYNTAX CROSS OBJECT = V-CROSS>
<SYNONYM CROSS FORD TRAVERSE>
<VERB-SYNONYM CROSS FORD TRAVERSE>
<SYNTAX CUT OBJECT WITH OBJECT (FIND WEAPONBIT) (CARRIED HELD) = V-CUT>
<SYNTAX CUT THROUGH OBJECT WITH OBJECT (FIND WEAPONBIT) (CARRIED HELD) = V-CUT>
<SYNONYM CUT SLICE SLASH SEVER SPLIT DIVIDE PRUNE>
<SYNTAX CUT OBJECT
WITH OBJECT (FIND WEAPONBIT) (CARRIED HELD HAVE) = V-CUT>
<SYNTAX CUT THROUGH OBJECT
WITH OBJECT (FIND WEAPONBIT) (CARRIED HELD HAVE) = V-CUT>
<VERB-SYNONYM CUT SLICE SLASH SEVER SPLIT DIVIDE PRUNE>
<SYNTAX SHIT = V-CURSE>
<SYNONYM SHIT DAMN FUCK>
<VERB-SYNONYM SHIT DAMN FUCK>
<SYNTAX CRACK OBJECT (ON-GROUND IN-ROOM) = V-MUNG>
<SYNTAX CRACK OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
WITH OBJECT (HELD CARRIED TAKE) = V-MUNG>
<SYNTAX CRACK DOWN OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
WITH OBJECT (HELD CARRIED TAKE) = V-MUNG>
<SYNONYM CRACK DESTROY BREAK SMASH WRECK SCRATCH>
<VERB-SYNONYM CRACK DESTROY BREAK SMASH WRECK SCRATCH>
<SYNTAX DIG IN OBJECT = V-DIG>
<SYNTAX DIG WITH OBJECT = V-DIG>
@ -142,31 +138,31 @@
WITH OBJECT (FIND TOOLBIT) (HELD CARRIED HAVE) = V-DIG>
<SYNTAX DIG IN OBJECT (ON-GROUND IN-ROOM)
WITH OBJECT (FIND TOOLBIT) (HELD CARRIED HAVE) = V-DIG>
<SYNONYM DIG EXCAVATE>
<VERB-SYNONYM DIG EXCAVATE>
<SYNTAX DISEMBARK = V-DISEMBARK>
<SYNTAX DISEMBARK OBJECT (ON-GROUND IN-ROOM) = V-DISEMBARK>
<SYNONYM DISEMBARK DEBARK>
<VERB-SYNONYM DISEMBARK DEBARK>
<SYNTAX DRINK OBJECT (HELD CARRIED ON-GROUND IN-ROOM) = V-DRINK>
<SYNTAX DRINK FROM OBJECT (HELD CARRIED) = V-DRINK-FROM>
<SYNONYM DRINK SIP SWALLOW>
<VERB-SYNONYM DRINK SIP SWALLOW>
<SYNTAX DROP OBJECT (HELD MANY HAVE) = V-DROP PRE-DROP>
<SYNTAX DROP OBJECT (HELD MANY HAVE) DOWN OBJECT = V-PUT PRE-PUT>
<SYNTAX DROP OBJECT (HELD MANY HAVE) IN OBJECT = V-PUT PRE-PUT>
<SYNTAX DROP OBJECT (HELD MANY HAVE) ON OBJECT = V-PUT PRE-PUT>
<SYNONYM DROP RELEASE DUMP>
<VERB-SYNONYM DROP RELEASE DUMP>
<SYNTAX EAT OBJECT (HELD CARRIED ON-GROUND IN-ROOM MANY) = V-EAT>
<SYNONYM EAT CONSUME TASTE ;INGEST GOBBLE>
<VERB-SYNONYM EAT CONSUME TASTE ;INGEST GOBBLE>
<SYNTAX ENTER = V-ENTER>
<SYNTAX ENTER OBJECT = V-THROUGH>
;<SYNTAX ENTER = V-ENTER>
<SYNTAX ENTER OBJECT (FIND RLANDBIT) = V-THROUGH>
<SYNTAX EXIT = V-EXIT>
<SYNTAX EXIT OBJECT = V-EXIT>
<SYNONYM EXIT DEPART WITHDRAW>
;<SYNTAX EXIT = V-EXIT>
<SYNTAX EXIT OBJECT (FIND RLANDBIT) = V-EXIT>
<VERB-SYNONYM EXIT DEPART WITHDRAW>
<SYNTAX EXAMINE OBJECT (HELD CARRIED ON-GROUND IN-ROOM)
= V-EXAMINE PRE-EXAMINE>
@ -175,16 +171,16 @@
<SYNTAX EXAMINE ON OBJECT (HELD CARRIED IN-ROOM ON-GROUND)
= V-LOOK-INSIDE>
<SYNTAX EXAMINE FOR OBJECT = V-FIND>
<SYNONYM EXAMINE INSPECT DESCRIBE CHECK OBSERVE WATCH>
<VERB-SYNONYM EXAMINE INSPECT DESCRIBE CHECK OBSERVE WATCH>
;<SYNTAX EXORCISE OBJECT = V-EXORCISE>
;<SYNTAX EXORCISE OUT OBJECT (FIND PERSON) = V-EXORCISE>
;<SYNTAX EXORCISE AWAY OBJECT (FIND PERSON) = V-EXORCISE>
;<SYNONYM EXORCISE BANISH DRIVE>
;<VERB-SYNONYM EXORCISE BANISH DRIVE>
<SYNTAX EXTINGUISH OBJECT
(MANY HELD CARRIED ON-GROUND IN-ROOM TAKE HAVE) = V-LAMP-OFF>
;<SYNONYM EXTINGUISH DOUSE>
;<VERB-SYNONYM EXTINGUISH DOUSE>
<SYNTAX FILL OBJECT (FIND CONTBIT) (HELD TAKE HAVE) = V-FILL>
<SYNTAX FILL OBJECT (FIND CONTBIT) (HELD TAKE HAVE)
@ -193,17 +189,18 @@
AT OBJECT = V-FILL>
<SYNTAX FIND OBJECT = V-FIND>
;<SYNONYM FIND SEEK SEE>
;<VERB-SYNONYM FIND SEEK SEE>
<SYNTAX FLY = V-FLY>
<SYNTAX FLY OBJECT = V-FLY>
<SYNONYM FLY LAUNCH>
<SYNTAX FOLLOW = V-FOLLOW>
<SYNTAX FOLLOW OBJECT = V-FOLLOW>
<SYNONYM FOLLOW PURSUE CHASE>
<VERB-SYNONYM FOLLOW PURSUE CHASE>
<SYNTAX FORGET OBJECT = V-FORGET>
<SYNONYM FORGET UNLEARN ;UNMEMORIZE>
<VERB-SYNONYM FORGET UNLEARN ;UNMEMORIZE>
<SYNTAX GIVE OBJECT (MANY HELD HAVE)
TO OBJECT (FIND PERSON) (ON-GROUND) = V-GIVE PRE-GIVE>
@ -212,15 +209,15 @@
<SYNTAX GIVE OBJECT (FIND PERSON) (ON-GROUND) WITH OBJECT (MANY HELD HAVE)
= V-SGIVE PRE-SGIVE>
<SYNTAX GIVE OBJECT FOR OBJECT = V-OFFER>
<SYNONYM GIVE HAND OFFER FEED ;PRESENT>
<VERB-SYNONYM GIVE HAND OFFER FEED ;PRESENT>
<SYNTAX HELLO = V-HELLO>
<SYNTAX HELLO OBJECT = V-HELLO>
<SYNONYM HELLO HI ;GREETINGS>
<VERB-SYNONYM HELLO HI ;GREETINGS>
<SYNTAX HELP = V-HELP>
<SYNTAX HELP OBJECT = V-HELP>
<SYNONYM HELP HINT ;HINTS>
<VERB-SYNONYM HELP HINT ;HINTS>
<SYNTAX HIDE = V-HIDE>
<SYNTAX HIDE OBJECT (HELD HAVE) = V-HIDE>
@ -229,7 +226,7 @@
<SYNTAX HIDE OBJECT (HELD HAVE) FROM OBJECT = V-HIDE>
<SYNTAX HIDE IN OBJECT = V-BOARD>
<SYNTAX HIDE FROM OBJECT = V-HIDE-FROM>
<SYNONYM HIDE CONCEAL ;STASH>
<VERB-SYNONYM HIDE CONCEAL ;STASH>
<SYNTAX INFLAT OBJECT = V-INFLATE>
@ -242,21 +239,21 @@
<SYNTAX JUMP OFF OBJECT = V-LEAP>
<SYNTAX JUMP ON OBJECT = V-CLIMB-ON>
<SYNTAX JUMP TO OBJECT = V-CLIMB-ON>
<SYNONYM JUMP LEAP DIVE>
<VERB-SYNONYM JUMP LEAP DIVE>
<SYNTAX KICK OBJECT = V-KICK PRE-OPEN>
<SYNTAX KILL OBJECT (FIND PERSON) (ON-GROUND IN-ROOM) = V-KILL>
<SYNTAX KILL OBJECT (FIND PERSON) (ON-GROUND IN-ROOM)
WITH OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE) = V-KILL>
<SYNONYM KILL MURDER SLAY STAB>
<VERB-SYNONYM KILL MURDER SLAY STAB>
<SYNTAX KISS OBJECT (FIND PERSON) (ON-GROUND IN-ROOM) = V-KISS>
<SYNTAX KNOCK AT OBJECT = V-KNOCK>
<SYNTAX KNOCK ON OBJECT = V-KNOCK>
<SYNTAX KNOCK DOWN OBJECT (FIND PERSON) (ON-GROUND IN-ROOM) = V-ATTACK>
<SYNONYM KNOCK RAP>
<VERB-SYNONYM KNOCK RAP>
<SYNTAX LAND = V-LAND>
@ -270,7 +267,7 @@
<SYNTAX LISTEN FOR OBJECT = V-LISTEN>
<SYNTAX LOCK OBJECT (ON-GROUND IN-ROOM) WITH OBJECT
(HELD CARRIED ON-GROUND IN-ROOM) = V-LOCK>
(HELD CARRIED HAVE) = V-LOCK>
<SYNTAX LOOK = V-LOOK>
<SYNTAX LOOK AROUND OBJECT (FIND RLANDBIT) = V-LOOK>
@ -289,19 +286,19 @@
<SYNTAX LOOK UP OBJECT IN OBJECT = V-WHAT>
<SYNTAX LOOK FOR OBJECT = V-FIND>
<SYNTAX LOOK OBJECT = V-CHASTISE>
<SYNONYM LOOK L STARE GAZE>
<VERB-SYNONYM LOOK L STARE GAZE>
<SYNTAX LOWER OBJECT = V-LOWER>
<SYNTAX LOWER OBJECT IN OBJECT = V-LOWER-INTO>
<SYNTAX LOWER OBJECT DOWN OBJECT = V-LOWER-INTO>
<SYNTAX MELT OBJECT WITH OBJECT (HELD CARRIED ON-GROUND IN-ROOM) = V-MELT>
<SYNONYM MELT THAW>
<VERB-SYNONYM MELT THAW>
<SYNTAX MOVE = V-WALK-AROUND>
<SYNTAX MOVE OBJECT (ON-GROUND IN-ROOM) = V-MOVE>
<SYNTAX ROLL UP OBJECT (ON-GROUND IN-ROOM) = V-MOVE>
<SYNONYM MOVE SHIFT>
<VERB-SYNONYM MOVE SHIFT>
<SYNTAX PAY OBJECT (MANY HELD HAVE) = V-PAY>
<SYNTAX PAY OBJECT (FIND PERSON) WITH OBJECT (MANY HELD HAVE) = V-PAY>
@ -313,7 +310,7 @@
<SYNTAX PULL OBJECT (ON-GROUND IN-ROOM) = V-MOVE>
<SYNTAX PULL ON OBJECT (ON-GROUND IN-ROOM) = V-MOVE>
<SYNTAX PULL DOWN OBJECT = V-LOWER>
<SYNONYM PULL TUG DRAG>
<VERB-SYNONYM PULL TUG DRAG>
<SYNTAX OPEN OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-OPEN PRE-OPEN>
@ -322,32 +319,32 @@
<SYNTAX OPEN OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
WITH OBJECT (FIND TOOLBIT) (ON-GROUND IN-ROOM HELD CARRIED HAVE)
= V-OPEN PRE-OPEN>
<SYNONYM OPEN UNZIP>
<VERB-SYNONYM OPEN UNZIP>
<SYNTAX PICK OBJECT = V-PICK>
<SYNTAX PICK OBJECT WITH OBJECT = V-PICK>
<SYNTAX PICK UP OBJECT (FIND TAKEBIT) (ON-GROUND MANY) = V-TAKE PRE-TAKE>
<SYNTAX PLUG OBJECT WITH OBJECT = V-PLUG>
<SYNONYM PLUG CLOG BLOCK>
<VERB-SYNONYM PLUG CLOG BLOCK>
<SYNTAX REPAIR OBJECT = V-REPAIR>
<SYNTAX REPAIR OBJECT WITH OBJECT = V-REPAIR>
<SYNONYM REPAIR PATCH FIX>
<VERB-SYNONYM REPAIR PATCH FIX>
<SYNTAX POINT AT OBJECT = V-POINT>
<SYNTAX POINT TO OBJECT = V-POINT>
<SYNONYM POINT GESTURE>
<VERB-SYNONYM POINT GESTURE>
<SYNTAX POKE OBJECT (FIND PERSON) (ON-GROUND IN-ROOM)
WITH OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE) = V-MUNG>
<SYNONYM POKE JAB BLIND>
<VERB-SYNONYM POKE JAB BLIND>
<SYNTAX POUR OBJECT (HELD CARRIED) = V-POUR>
<SYNTAX POUR OBJECT (HELD CARRIED) IN OBJECT = V-POUR>
<SYNTAX POUR OBJECT (HELD CARRIED) ON OBJECT = V-POUR>
<SYNTAX POUR OBJECT (HELD CARRIED) FROM OBJECT = V-POUR>
<SYNONYM POUR EMPTY SPILL>
<VERB-SYNONYM POUR EMPTY SPILL>
<SYNTAX PUMP UP OBJECT = V-PUMP>
<SYNTAX PUMP UP OBJECT WITH OBJECT = V-PUMP>
@ -357,7 +354,7 @@
<SYNTAX PUSH OBJECT (IN-ROOM ON-GROUND) OBJECT = V-PUSH-TO>
<SYNTAX PUSH OBJECT (IN-ROOM ON-GROUND) TO OBJECT = V-PUSH-TO>
<SYNTAX PUSH OBJECT UNDER OBJECT = V-PUT-UNDER>
<SYNONYM PUSH PRESS SHOVE>
<VERB-SYNONYM PUSH PRESS SHOVE>
<SYNTAX PUT OBJECT (HELD MANY HAVE) IN OBJECT = V-PUT PRE-PUT>
<SYNTAX PUT OBJECT (HELD MANY HAVE) DOWN OBJECT = V-PUT PRE-PUT>
@ -368,11 +365,11 @@
<SYNTAX PUT OBJECT (HELD MANY HAVE) UNDER OBJECT = V-PUT-UNDER>
<SYNTAX PUT ON OBJECT (IN-ROOM ON-GROUND CARRIED MANY) = V-WEAR>
<SYNTAX PUT OBJECT (HELD MANY HAVE) BEHIND OBJECT = V-PUT-BEHIND>
<SYNONYM PUT STUFF INSERT PLACE LAY FIT WEDGE>
<VERB-SYNONYM PUT STUFF INSERT PLACE LAY FIT WEDGE>
<SYNTAX RAISE OBJECT = V-RAISE>
<SYNTAX RAISE UP OBJECT = V-RAISE>
<SYNONYM RAISE LIFT>
<VERB-SYNONYM RAISE LIFT>
<SYNTAX REACH IN OBJECT (ON-GROUND IN-ROOM) = V-REACH-IN>
@ -382,31 +379,31 @@
THROUGH OBJECT = V-READ PRE-READ>
<SYNTAX READ ABOUT OBJECT = V-WHAT>
<SYNTAX READ ABOUT OBJECT IN OBJECT = V-WHAT>
;<SYNONYM READ>
;<VERB-SYNONYM READ>
<SYNTAX REMOVE OBJECT = V-TAKE-OFF>
<SYNONYM REMOVE SHED>
<VERB-SYNONYM REMOVE SHED>
<SYNTAX SAY TO OBJECT (FIND PERSON) (IN-ROOM) = V-TELL>
<SYNTAX SAY = V-SAY>
<SYNONYM SAY TALK CALL>
<VERB-SYNONYM SAY TALK CALL>
<SYNTAX SEARCH OBJECT = V-SEARCH>
<SYNTAX SEARCH IN OBJECT = V-SEARCH>
<SYNTAX SEARCH FOR OBJECT = V-FIND>
<SYNONYM SEARCH RUMMAGE ;FRISK>
<VERB-SYNONYM SEARCH RUMMAGE ;FRISK>
<SYNTAX SEND FOR OBJECT = V-SEND>
<SYNTAX SHAKE OBJECT = V-SHAKE>
<SYNTAX SHAKE OBJECT AT OBJECT = V-WAVE-AT>
<SYNONYM SHAKE ;JOSTLE RATTLE>
<VERB-SYNONYM SHAKE ;JOSTLE RATTLE>
<SYNTAX SHARPEN OBJECT WITH OBJECT (FIND TOOLBIT) (HAVE) = V-SHARPEN>
;<SYNONYM SHARPEN HONE>
;<VERB-SYNONYM SHARPEN HONE>
<SYNTAX SHOOT OBJECT = V-SHOOT>
<SYNONYM SHOOT FIRE>
<VERB-SYNONYM SHOOT FIRE>
<SYNTAX SHOW OBJECT TO OBJECT = V-SHOW>
<SYNTAX SHOW OBJECT OBJECT = V-SSHOW PRE-SSHOW>
@ -415,7 +412,7 @@
<SYNTAX SIT DOWN OBJECT (FIND RLANDBIT) (ON-GROUND IN-ROOM) = V-SIT>
<SYNTAX SIT IN OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-BOARD PRE-BOARD>
<SYNTAX SIT AT OBJECT = V-SIT>
<SYNONYM SIT REST MEDITATE>
<VERB-SYNONYM SIT REST MEDITATE>
<SYNTAX SLEEP = V-SLEEP>
<SYNTAX SLEEP IN OBJECT (IN-ROOM ON-GROUND) = V-BOARD>
@ -430,16 +427,16 @@
<SYNTAX SNOOZE ON OBJECT (IN-ROOM ON-GROUND) = V-BOARD>
<SYNTAX SKIP = V-SKIP>
<SYNONYM SKIP HOP CAVORT GAMBOL>
<VERB-SYNONYM SKIP HOP CAVORT GAMBOL>
<SYNTAX SLIDE OBJECT UNDER OBJECT = V-PUT-UNDER>
<SYNTAX SMELL = V-SMELL>
<SYNTAX SMELL OBJECT = V-SMELL>
<SYNONYM SMELL SNIFF>
<VERB-SYNONYM SMELL SNIFF>
<SYNTAX SPIN OBJECT = V-SPIN>
<SYNONYM SPIN WHIRL ROTATE>
<VERB-SYNONYM SPIN WHIRL ROTATE>
<SYNTAX SQUEEZE OBJECT = V-SQUEEZE>
<SYNTAX SQUEEZE OBJECT (HELD MANY HAVE) ON OBJECT = V-PUT PRE-PUT>
@ -447,16 +444,16 @@
<SYNTAX STAND = V-STAND>
<SYNTAX STAND UP OBJECT (FIND RLANDBIT) = V-STAND>
<SYNTAX STAND ON OBJECT = V-STAND-ON>
<SYNONYM STAND RISE>
<VERB-SYNONYM STAND RISE>
<SYNTAX SWIM = V-SWIM>
<SYNTAX SWIM IN OBJECT = V-SWIM>
<SYNONYM SWIM BATHE WADE>
<VERB-SYNONYM SWIM BATHE WADE>
<SYNTAX SWING OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE) = V-SWING>
<SYNTAX SWING OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE)
AT OBJECT (FIND PERSON) (ON-GROUND IN-ROOM) = V-SWING>
<SYNONYM SWING THRUST>
<VERB-SYNONYM SWING THRUST>
<SYNTAX TAKE OBJECT (FIND TAKEBIT) (ON-GROUND IN-ROOM MANY) = V-TAKE PRE-TAKE>
<SYNTAX TAKE IN OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-BOARD PRE-BOARD>
@ -472,7 +469,7 @@
<SYNTAX TAKE OBJECT (FIND TAKEBIT) (IN-ROOM CARRIED MANY)
IN OBJECT = V-TAKE PRE-TAKE>
<SYNTAX TAKE OFF OBJECT = V-TAKE-OFF>
<SYNONYM TAKE GRAB CATCH GET HOLD CARRY SNATCH>
<VERB-SYNONYM TAKE GRAB CATCH GET HOLD CARRY SNATCH>
<SYNTAX TELL OBJECT (FIND PERSON) (IN-ROOM) = V-TELL>
<SYNTAX TELL OBJECT ABOUT OBJECT = V-TELL-ABOUT PRE-TELL-ABOUT>
@ -481,7 +478,7 @@
<SYNTAX THANK OBJECT = V-THANK>
<SYNTAX THANK = V-THANK>
<SYNONYM THANK THANKS>
<VERB-SYNONYM THANK THANKS>
<SYNTAX THROW OBJECT (HELD CARRIED HAVE)
AT OBJECT (ON-GROUND IN-ROOM) = V-THROW>
@ -494,22 +491,22 @@
<SYNTAX THROW OBJECT (HELD MANY HAVE) DOWN OBJECT = V-THROW>
<SYNTAX THROW OBJECT (HELD MANY HAVE) IN OBJECT = V-THROW>
<SYNTAX THROW OBJECT (HELD MANY HAVE) ON OBJECT = V-THROW>
<SYNONYM THROW HURL TOSS PITCH>
<VERB-SYNONYM THROW HURL TOSS PITCH>
<SYNTAX TIE OBJECT TO OBJECT = V-TIE>
<SYNTAX TIE UP OBJECT (FIND PERSON) (ON-GROUND IN-ROOM) WITH OBJECT
(FIND TOOLBIT) (ON-GROUND IN-ROOM HELD CARRIED HAVE) = V-TIE-UP>
<SYNONYM TIE FASTEN ATTACH>
<VERB-SYNONYM TIE FASTEN ATTACH>
<SYNTAX TIME = V-TIME>
<SYNONYM TIME T>
<VERB-SYNONYM TIME T>
<SYNTAX TORTUR OBJECT = V-TORTURE>
<SYNTAX TOUCH OBJECT = V-RUB>
<SYNTAX TOUCH OBJECT WITH OBJECT = V-RUB>
<SYNTAX TOUCH OBJECT TO OBJECT = V-SRUB PRE-SRUB>
<SYNONYM TOUCH FEEL PAT PET RUB>
<VERB-SYNONYM TOUCH FEEL PAT PET RUB>
<SYNTAX TURN OBJECT TO OBJECT = V-TURN>
<SYNTAX TURN OBJECT = V-TURN>
@ -519,22 +516,22 @@
<SYNTAX TURN OFF OBJECT
(HELD CARRIED ON-GROUND IN-ROOM TAKE) = V-LAMP-OFF>
<SYNTAX TURN OVER OBJECT = V-TURN-OVER>
<SYNONYM TURN FLIP SHUT SET>
<VERB-SYNONYM TURN FLIP ;SHUT SET>
<SYNTAX UNLOCK OBJECT (ON-GROUND IN-ROOM)
WITH OBJECT = V-UNLOCK>
WITH OBJECT (HELD CARRIED HAVE) = V-UNLOCK>
<SYNTAX UNTIE OBJECT (ON-GROUND IN-ROOM HELD CARRIED) = V-UNTIE>
<SYNTAX UNTIE OBJECT (ON-GROUND IN-ROOM HELD CARRIED) FROM OBJECT = V-UNTIE>
<SYNONYM UNTIE FREE UNFASTEN UNATTACH>
<VERB-SYNONYM UNTIE FREE UNFASTEN UNATTACH>
<SYNTAX WAIT = V-WAIT>
<SYNTAX WAIT FOR OBJECT = V-WAIT-FOR>
<SYNONYM WAIT Z>
<VERB-SYNONYM WAIT Z>
<SYNTAX WAKE OBJECT (FIND RLANDBIT) = V-ALARM>
<SYNTAX WAKE UP OBJECT (FIND RLANDBIT) = V-ALARM>
<SYNONYM WAKE AWAKE SURPRISE STARTLE ROUSE>
<VERB-SYNONYM WAKE AWAKE SURPRISE STARTLE ROUSE>
<SYNTAX WALK = V-WALK-AROUND>
<SYNTAX WALK OBJECT = V-WALK>
@ -546,32 +543,32 @@
<SYNTAX WALK UP OBJECT (ON-GROUND IN-ROOM) = V-CLIMB-UP>
<SYNTAX WALK DOWN OBJECT (ON-GROUND IN-ROOM) = V-CLIMB-DOWN>
<SYNTAX WALK TO OBJECT = V-WALK-TO>
<SYNONYM WALK GO RUN PROCEED STEP>
<VERB-SYNONYM WALK GO RUN PROCEED STEP>
<SYNTAX WAVE OBJECT (HELD CARRIED) = V-WAVE>
<SYNTAX WAVE AT OBJECT = V-WAVE-AT>
<SYNTAX WAVE TO OBJECT = V-WAVE-AT>
<SYNTAX YELL AT OBJECT = V-WAVE-AT>
<SYNTAX WAVE OBJECT (HELD CARRIED) AT OBJECT = V-WAVE>
<SYNONYM WAVE ;MOTION BECKON>
<VERB-SYNONYM WAVE ;MOTION BECKON>
<SYNTAX WEAR OBJECT = V-WEAR>
<SYNTAX WHAT OBJECT = V-WHAT>
;<SYNONYM WHAT WHATS>
;<VERB-SYNONYM WHAT WHATS>
<SYNTAX WHERE = V-WHERE>
<SYNTAX WHERE OBJECT = V-WHERE>
;<SYNONYM WHERE WHERES>
;<VERB-SYNONYM WHERE WHERES>
<SYNTAX WHO = V-WHO>
<SYNTAX WHO OBJECT = V-WHO>
;<SYNONYM WHO WHOS>
;<VERB-SYNONYM WHO WHOS>
<SYNTAX YAWN = V-YAWN>
<SYNTAX YELL = V-YELL>
<SYNONYM YELL SCREAM SHOUT>
<VERB-SYNONYM YELL SCREAM SHOUT>
\^L
@ -580,10 +577,10 @@
<SYNTAX CAST OBJECT = V-CAST>
<SYNTAX CAST OBJECT ON OBJECT = V-CAST>
<SYNTAX CAST OBJECT AT OBJECT = V-CAST>
<SYNONYM CAST INCANT INVOKE>
<VERB-SYNONYM CAST INCANT INVOKE>
<SYNTAX LEARN OBJECT (HELD CARRIED MANY) = V-LEARN>
<SYNONYM LEARN MEMORIZE ;KNOW>
<VERB-SYNONYM LEARN MEMORIZE ;KNOW>
<SYNTAX SPELLS = V-SPELLS>
@ -635,23 +632,24 @@
WITH OBJECT (FIND TOOLBIT) = V-WRITE-ON PRE-WRITE-ON>
<SYNTAX WRITE IN OBJECT (HELD CARRIED)
WITH OBJECT (FIND TOOLBIT) = V-WRITE-ON PRE-WRITE-ON>
<SYNONYM WRITE PRINT INSCRIBE SCRIBE>
<VERB-SYNONYM WRITE PRINT INSCRIBE SCRIBE>
<SYNTAX PRY OBJECT WITH OBJECT = V-PRY>
<SYNTAX PRY OUT OBJECT WITH OBJECT = V-PRY>
<VERB-SYNONYM PRY LEVER LOOSEN>
<SYNTAX PLANT OBJECT = V-PLANT>
<SYNTAX PLANT OBJECT IN OBJECT = V-PLANT>
<SYNONYM PLANT BURY>
<VERB-SYNONYM PLANT BURY>
<SYNTAX YES = V-YES>
<SYNONYM YES Y OKAY>
<VERB-SYNONYM YES Y OKAY>
<SYNTAX NO = V-NO>
<SYNONYM NO NOPE>
<VERB-SYNONYM NO NOPE>
<SYNTAX BUY OBJECT FROM OBJECT (FIND PERSON) = V-BUY>
<SYNTAX BUY OBJECT WITH OBJECT = V-BUY>
<SYNONYM BUY PURCHASE>
<VERB-SYNONYM BUY PURCHASE>
<SYNTAX SELL OBJECT TO OBJECT (FIND PERSON) = V-SELL>
<SYNTAX SELL OBJECT OBJECT = V-SSELL PRE-SSELL>
@ -665,12 +663,12 @@
<SYNTAX LURK IN OBJECT = V-SLAVER>
<SYNTAX SLAVER = V-SLAVER>
<SYNONYM SLAVER DROOL SALIVATE GURGLE>
<VERB-SYNONYM SLAVER DROOL SALIVATE GURGLE>
<SYNTAX ERASE OBJECT = V-ERASE>
<SYNTAX ADMIRE OBJECT (FIND PERSON) = V-ADMIRE>
<SYNONYM ADMIRE COMPLIMENT>
<VERB-SYNONYM ADMIRE COMPLIMENT>
<SYNTAX COPY OBJECT (FIND READBIT)
WITH OBJECT (FIND TOOLBIT) = V-COPY>
@ -681,4 +679,9 @@
<SYNTAX COPY OBJECT (FIND READBIT) = V-COPY>
<SYNTAX BARGAIN WITH OBJECT (FIND PERSON) = V-BARGAIN>
<SYNONYM BARGAIN HAGGLE>
<VERB-SYNONYM BARGAIN HAGGLE>
<SYNTAX LOVE OBJECT (FIND PERSON) = V-EMPATHIZE>
<SYNTAX PRAY FOR OBJECT (FIND PERSON) = V-EMPATHIZE>
<SYNTAX SYMPATHIZE WITH OBJECT (FIND PERSON) = V-EMPATHIZE>
<VERB-SYNONYM SYMPATHIZE EMPATHIZE>

160
verbs.zil
View file

@ -187,30 +187,29 @@
<GLOBAL FAILED "Failed.|">
<ROUTINE FINISH ("OPTIONAL" (REPEATING <>))
<ROUTINE FINISH ("AUX" WRD)
<V-SCORE>
<CRLF>
%<DEBUG-CODE <TELL-C-INTS>>
<COND (<NOT .REPEATING>
<V-SCORE>
<CRLF>)>
<TELL
<REPEAT ()
<CRLF>
<TELL
"Would you like to restart the game from the beginning, restore a saved
game position, or end this session of the game?|
(Type RESTART, RESTORE, or QUIT):|
>">
<READ ,P-INBUF ,P-LEXV>
<COND (<EQUAL? <GET ,P-LEXV 1> ,W?RESTAR>
<RESTART>
<TELL ,FAILED>
<FINISH T>)
(<EQUAL? <GET ,P-LEXV 1> ,W?RESTOR>
<COND (<RESTORE>
<TELL ,OKAY>)
(T
<TELL ,FAILED>
<FINISH T>)>)
(T
<QUIT>)>>
<READ ,P-INBUF ,P-LEXV>
<SET WRD <GET ,P-LEXV 1>>
<COND (<EQUAL? .WRD ,W?RESTAR>
<RESTART>
<TELL ,FAILED>)
(<EQUAL? .WRD ,W?RESTOR>
<COND (<RESTORE>
<TELL ,OKAY>)
(T
<TELL ,FAILED>)>)
(<EQUAL? .WRD ,W?QUIT ,W?Q>
<QUIT>)>>>
<ROUTINE YES? ()
<PRINTI "?|
@ -276,21 +275,17 @@ game position, or end this session of the game?|
<GLOBAL COPR-NOTICE
" a transcript of interaction with SPELLBREAKER.">
<ROUTINE V-VERSION ("AUX" (CNT 17))
<TELL <COND (<PROB 99> "SPELLBREAKER")
(ELSE "MAGE")>
"|
<ROUTINE V-VERSION ()
<TELL
"SPELLBREAKER|
An Interactive Fantasy|
Copyright (c) 1985 by Infocom, Inc. All rights reserved.|
SPELLBREAKER is a trademark of Infocom, Inc.|
Release ">
<PRINTN <BAND <GET 0 1> *3777*>>
<TELL " / Serial number ">
<REPEAT ()
<COND (<G? <SET CNT <+ .CNT 1>> 23>
<RETURN>)
(T
<PRINTC <GETB 0 .CNT>>)>>
<DO (CNT 18 23)
<PRINTC <GETB 0 .CNT>>>
<CRLF>>
<ROUTINE V-$VERIFY ()
@ -344,14 +339,11 @@ Release ">
<PERFORM ,V?TELL ,PRSO>
<RTRUE>)>>
<ROUTINE FIND-IN (WHERE WHAT "AUX" W)
<SET W <FIRST? .WHERE>>
<REPEAT ()
<COND (<NOT .W> <RFALSE>)
(<AND <FSET? .W .WHAT>
<VISIBLE? .W>>
<RETURN .W>)>
<SET W <NEXT? .W>>>>
<ROUTINE FIND-IN (WHERE WHAT)
<MAP-CONTENTS (W .WHERE)
(END <RFALSE>)
<COND (<AND <FSET? .W .WHAT> <VISIBLE? .W>>
<RETURN .W>)>>>
"V-ASK-FOR -- transform into PRSO, GIVE PRSI TO ME"
@ -380,7 +372,10 @@ Release ">
<ROUTINE PRE-BOARD ("AUX" AV)
<SET AV <LOC ,WINNER>>
<COND (<FSET? ,PRSO ,VEHBIT>
<COND (<OR <FSET? ,PRSO ,VEHBIT>
<AND <EQUAL? ,PRSO ,PSEUDO-OBJECT>
<EQUAL? <GETP ,PSEUDO-OBJECT ,P?ACTION>
,POOL-PSEUDO>>>
<COND (<EQUAL? .AV ,PRSO>
<TELL ,YOU-ARE ,PERIOD>)
(<AND <FSET? .AV ,VEHBIT>
@ -590,14 +585,6 @@ the luncheon.">
(ELSE
<TELL ,NOW-BLACK>)>)>>
<ROUTINE V-ENTER ("AUX" VEHICLE)
<COND (<SET VEHICLE <FIND-IN ,HERE ,VEHBIT>>
<PERFORM ,V?BOARD .VEHICLE>
<RTRUE>)
(<GETPT ,HERE ,P?IN>
<DO-WALK ,P?IN>)
(ELSE <V-WALK-AROUND>)>>
<ROUTINE PRE-EXAMINE ()
<COND (<NOT ,LIT>
<TELL ,TOO-DARK>)>>
@ -626,7 +613,8 @@ is glowing brightly." CR>)
<TELL "You see nothing special about "><THE-PRSO>>
<ROUTINE V-EXIT ()
<COND (<AND ,PRSO <FSET? ,PRSO ,VEHBIT>>
<COND (<AND <NOT <EQUAL? ,PRSO ,ROOMS>>
<FSET? ,PRSO ,VEHBIT>>
<PERFORM ,V?DISEMBARK ,PRSO>
<RTRUE>)
(<GETPT ,HERE ,P?OUT>
@ -965,7 +953,8 @@ before you leaped.">)
<ROUTINE V-OPEN ("AUX" F STR)
<COND (<OR <AND <NOT <FSET? ,PRSO ,CONTBIT>>
<NOT <FSET? ,PRSO ,DOORBIT>>>
<FSET? ,PRSO ,SCROLLBIT>>
<FSET? ,PRSO ,SCROLLBIT>
<FSET? ,PRSO ,SURFACEBIT>>
<TELL "You must tell me how to do that to ">
<A-PRSO>)
(<NOT <EQUAL? <GETP ,PRSO ,P?CAPACITY> 0>>
@ -1021,23 +1010,19 @@ before you leaped.">)
(ELSE
<YOU-CANT-X-THAT "pour">)>>
<ROUTINE EMPTY-ALL (FROM TO "AUX" (F <FIRST? .FROM>) N R)
<COND (<NOT .F>
<ROUTINE EMPTY-ALL (FROM TO "AUX" F N R)
<COND (<NOT <FIRST? .FROM>>
<TELL CTHE .FROM " is empty." CR>)
(ELSE
<REPEAT ()
<COND (.F
<SET N <NEXT? .F>>
<TELL D .F ": ">
<SET R
<COND (.TO
<PERFORM ,V?PUT .F .TO>)
(ELSE
<PERFORM ,V?DROP .F>)>>
<COND (<EQUAL? .R ,M-FATAL> <RTRUE>)
(ELSE <SET F .N>)>)
(T
<RTRUE>)>>)>>
<MAP-CONTENTS (F N .FROM)
<TELL D .F ": ">
<SET R
<COND (.TO
<PERFORM ,V?PUT .F .TO>)
(ELSE
<PERFORM ,V?DROP .F>)>>
<COND (<EQUAL? .R ,M-FATAL> <RTRUE>)>>
<RTRUE>)>>
<ROUTINE V-PUMP ()
<TELL "It's not clear how." CR>>
@ -1300,6 +1285,11 @@ the ogre destroys you.">)
don't know how much it hurt.">)
(ELSE
<IMPOSSIBLE-TO-SLEEP>)>)
(<AND <NOT .FORCE?>
<OR <IN? ,PLAYER ,CABINET>
<IN? ,PLAYER ,PAST-CABINET>>>
<TELL
"It's too cramped in here to sleep comfortably." CR>)
(T
<COND (<EQUAL? ,HERE ,GLACIER-ROOM>
<SETG FREEZE-COUNT 9>)>
@ -1330,8 +1320,10 @@ don't know how much it hurt.">)
(<IN? ,PLAYER ,ZIPPER>
<TELL "in the nothingness">)
(ELSE
<MOVE ,PLAYER ,HERE>
<TELL "on the floor">)>
<TELL "on the floor">
<COND (<NOT <IN? ,PLAYER ,HERE>>
<TELL " next to " THE <LOC ,PLAYER>>
<MOVE ,PLAYER ,HERE>)>)>
<TELL " and">)>
<TELL " drift off, renewing your powers and
refreshing your mind. Time passes as you snore blissfully." CR CR>
@ -1354,7 +1346,6 @@ possessions!">)>)>
<WEAR-OFF-SPELLS>
<RTRUE>)>>
<GLOBAL DREAMS
<LTABLE 0
"a group of mages clustered around a magic mirror in which
@ -1483,7 +1474,7 @@ smokes."
<ROUTINE NOT-IN-VEHICLE? ("AUX" (V <LOC ,WINNER>))
<AND ,PRSO
<NOT <EQUAL? ,PRSO .V>>
<NOT <EQUAL? ,PRSO .V ,ROOMS>>
<NOT <HELD? ,PRSO>>
<NOT <HELD? ,PRSO .V>>>>
@ -1514,13 +1505,22 @@ smokes."
<END-QUOTE>)>>
<ROUTINE V-THANK ()
<COND (<FSET? ,PRSO ,PERSON>
<COND (<NOT ,PRSO>
<TELL "You're welcome, I guess." CR>)
(<FSET? ,PRSO ,PERSON>
<UNINTERESTED ,PRSO>)
(T
<HOW-DO-YOU> <A-PRSO?>)>>
<ROUTINE V-THROUGH ("AUX" M)
<COND (<FSET? ,PRSO ,VEHBIT>
<COND (<EQUAL? ,PRSO ,ROOMS>
<COND (<SET M <FIND-IN ,HERE ,VEHBIT>>
<PERFORM ,V?BOARD .M>
<RTRUE>)
(<GETPT ,HERE ,P?IN>
<DO-WALK ,P?IN>)
(ELSE <V-WALK-AROUND>)>)
(<FSET? ,PRSO ,VEHBIT>
<PERFORM ,V?BOARD ,PRSO>
<RTRUE>)
(<NOT <FSET? ,PRSO ,TAKEBIT>>
@ -1760,21 +1760,17 @@ to take it as well." CR>)>
<RTRUE>)>>
<ROUTINE CCOUNT (OBJ "AUX" (CNT 0) X)
<COND (<SET X <FIRST? .OBJ>>
<REPEAT ()
<SET CNT <+ .CNT 1>>
<COND (<NOT <SET X <NEXT? .X>>>
<RETURN>)>>)>
.CNT>
<MAP-CONTENTS (X .OBJ)
(END <RETURN .CNT>)
<SET CNT <+ .CNT 1>>>>
;"WEIGHT: Gets sum of SIZEs of supplied object, recursing to nth level."
<ROUTINE WEIGHT (OBJ "AUX" CONT (WT 0))
<COND (<EQUAL? .OBJ ,ZIPPER ,SPELL-BOOK> T)
(<SET CONT <FIRST? .OBJ>>
<REPEAT ()
<SET WT <+ .WT <WEIGHT .CONT>>>
<COND (<NOT <SET CONT <NEXT? .CONT>>> <RETURN>)>>)>
(ELSE
<MAP-CONTENTS (CONT .OBJ)
<SET WT <+ .WT <WEIGHT .CONT>>>>)>
<+ .WT <GETP .OBJ ,P?SIZE>>>
^\L
@ -2033,6 +2029,8 @@ long description (fdesc or ldesc), otherwise will print short."
<ROUTINE JIGS-UP ("OPTIONAL" (DESC <>))
<SETG WINNER ,PLAYER>
<COND (.DESC <TELL .DESC>)>
<COND (<EQUAL? ,HERE ,INNER-VAULT ,SCALES-ROOM>
<MAKE-JUNK>)>
<FORGET-ALL>
<SETG FALLING? <>>
<TELL "|
@ -2089,6 +2087,8 @@ start all over with someone else. All this effort, too.">>
<COND (<AND <FSET? .F ,TAKEBIT>
<NOT <EQUAL? .F .IGNORE>>>
<SET 1ST? T>
<COND (<IN? ,PLAYER .F>
<MOVE ,PLAYER ,HERE>)>
<COND (.TO <MOVE .F .TO>)
(ELSE <REMOVE .F>)>)>
<SET F .N>)
@ -2137,6 +2137,9 @@ start all over with someone else. All this effort, too.">>
(<AND <SEE-INSIDE? .L>
<VISIBLE? .L>>
<RTRUE>)
(<AND <EQUAL? ,HERE ,VOLCANO-ROOM>
<EQUAL? .L ,OUTCROPPING-ROOM>>
<RTRUE>)
(T
<RFALSE>)>>
@ -2388,3 +2391,6 @@ CTHE ,PRSI ,HAS-NO-SURFACE ,PERIOD>>
<COND (<EQUAL? ,PRSO ,ROOMS>
<TELL "Don't get a sore neck." CR>)
(ELSE <PERFORM ,V?WHAT ,PRSO> <RTRUE>)>>
<ROUTINE V-EMPATHIZE ()
<TELL "A nice sentiment." CR>>

378
z6.chart Normal file
View file

@ -0,0 +1,378 @@
-date- -rel- -size- -pre- -obj- -glo- -voc-
5/20 13 66554 16454 179 140 638
5/20 14 66520 16469 179 140 638
5/21 14 68452 16598 181 141 644
5/21 15 68494 16645 183 141 645
5/22 17 70064 16673 182 145 647
5/22 20 71098 16836 184 148 653
5/23 21 72396 16946 186 149 657
5/23 22 74738 17027 188 154 658
5/24 23 74748 17032 188 155 658
5/24 24 75162 17073 189 155 660
5/24 25 76512 17306 190 158 676
5/24 26 76610 17303 190 158 676
5/24 27 77102 17333 190 158 679
5/24 28 80376 17830 204 159 691
5/24 29 80394 17845 204 159 691
5/24 30 81454 17926 206 159 694
5/25 31 81598 17961 207 159 695
5/29 32 82386 18032 208 160 695
5/30 33 84666 18220 213 161 700
5/30 34 84664 18222 213 162 700
5/31 35 86940 18386 217 161 707
5/31 36 86950 18388 217 162 707
5/31 37 87834 18423 218 164 707
6/03 38 89926 18762 227 167 718
6/03 39 89814 18763 227 166 719
6/03 40 89812 18763 227 166 719
6/03 41 90480 18797 228 166 719
6/04 42 90952 18859 229 165 723
6/04 43 91660 18889 230 165 722
6/04 44 93598 19263 238 169 737
6/05 45 95128 19435 242 170 745
6/06 46 95388 19486 243 170 746
6/06 47 95610 19494 243 170 747
6/07 48 96604 19688 245 170 759
6/07 49 96612 19695 245 170 760
6/07 50 97764 19759 245 170 763
6/07 51 97760 19776 245 170 764
6/10 52 98206 19844 246 170 768
6/10 52 98204 19844 246 170 768
6/10 53 98314 19856 246 170 768
6/11 54 98410 19856 246 170 768
6/11 55 99286 19853 246 172 764
6/11 56 99278 19846 246 172 763
6/12 57 99292 19848 246 173 763
6/12 58 99324 19848 246 173 763
6/12 59 99298 19857 246 173 764
6/12 59 99306 19857 246 173 764
6/12 59 99324 19857 246 173 764
6/12 59 99336 19869 246 173 764
6/12 59 99330 19869 246 173 764
6/12 59 99334 19869 246 173 764
6/12 60 99330 19858 245 173 764
6/13 61 99682 19918 245 174 768
6/13 62 99682 19918 245 174 768
6/13 63 99682 19918 245 174 768
6/13 64 101206 19957 245 175 768
6/13 65 101204 19959 245 176 768
6/14 66 102492 20096 247 176 772
6/14 66 102492 20096 247 176 772
6/14 67 102490 20096 247 176 772
6/14 68 102616 20096 247 176 772
6/14 69 102618 20098 247 176 772
6/15 70 103690 20241 247 176 778
6/15 71 103754 20248 247 177 778
6/15 72 103436 20312 247 177 778
6/15 73 103530 20316 247 177 778
6/17 74 104230 20393 247 177 779
6/17 74 105386 20439 247 177 780
6/17 75 106402 20519 247 177 783
6/17 75 106406 20521 247 178 783
6/18 75 106406 20521 247 178 783
6/18 76 107214 20526 247 178 783
6/18 76 107212 20526 247 178 783
6/18 77 109802 20603 248 178 788
6/18 77 109796 20603 248 178 788
6/19 77 109796 20603 248 178 788
6/19 78 110120 20594 247 178 788
6/19 78 110932 20630 247 177 791
6/19 78 110930 20630 247 177 791
6/20 78 110930 20630 247 177 791
6/20 78 110930 20630 247 177 791
6/20 79 111590 20623 247 176 791
6/20 79 111590 20623 247 176 791
6/20 79 111592 20623 247 176 791
6/20 80 111840 20646 247 176 792
6/21 81 112946 20746 247 179 797
6/24 82 113810 20806 247 179 801
6/24 82 113808 20806 247 179 801
6/24 82 113804 20806 247 179 801
6/24 82 113804 20806 247 179 801
6/24 82 115522 20970 249 180 804
6/25 82 115530 20970 249 180 804
6/25 83 116110 21010 249 180 806
6/25 84 116840 21170 250 180 807
6/26 85 117186 21171 250 180 807
6/26 86 117324 21173 250 181 807
6/27 87 117962 21238 250 181 810
6/27 87 118220 21238 250 181 810
6/28 88 118510 21242 250 180 810
6/28 89 118742 21266 250 181 811
6/28 89 118742 21266 250 181 811
6/28 89 119128 21582 250 181 811
6/28 89 119164 21582 250 181 811
7/01 90 119526 21493 252 183 811
7/02 91 119850 21495 252 184 811
7/02 92 119902 21517 252 184 812
7/02 92 119904 21517 252 184 812
7/02 92 120224 21540 252 184 813
7/02 92 120222 21540 252 184 813
7/02 92 120220 21537 252 184 813
7/03 93 120306 21537 252 184 813
7/03 93 123774 24789 252 184 813
7/03 93 121664 22273 252 184 851
7/03 93 122132 22273 252 184 851
7/03 93 122134 22266 252 184 850
7/05 94 123278 22301 252 185 852
7/05 94 123282 22301 252 185 852
7/08 95 123368 22299 252 184 852
7/08 96 126010 22431 251 186 860
7/08 96 125974 22431 251 186 860
7/10 97 131730 22627 251 194 869
7/10 97 131656 22691 251 194 869
7/10 97 131082 22619 251 192 867
7/10 97 131018 22619 251 192 867
7/10 98 130818 22659 252 194 867
7/11 99 130224 22661 252 198 867
7/11 99 130236 22661 252 198 867
7/11 99 130236 22661 252 198 867
7/11 100 130246 22661 252 198 867
7/11 101 129610 22445 252 200 867
7/12 102 130336 22574 254 202 869
7/12 102 130334 22574 254 202 869
7/12 103 130442 22574 254 202 869
7/15 103 130442 22574 254 202 869
7/15 104 130686 22568 254 201 869
7/15 104 130694 22568 254 201 869
7/16 105 130758 22564 254 202 870
7/17 106 130514 22511 254 205 869
7/17 107 130546 22550 254 204 871
7/17 107 130544 22550 254 204 871
7/17 107 130610 22552 254 205 871
7/18 108 130730 22552 254 205 871
7/18 108 130954 22581 254 205 873
7/18 108 130990 22573 254 205 873
7/18 109 131048 22573 254 205 873
7/19 110 131282 22587 254 212 873
7/19 110 131096 22587 254 212 873
7/19 110 130966 22587 254 212 873
7/19 110 131066 22621 254 220 873
7/22 111 130498 22629 254 230 873
7/22 111 130496 22629 254 230 873
7/24 112 130702 22597 253 229 871
7/24 112 130688 22597 253 229 871
7/26 113 130978 23380 253 239 915
7/26 113 131222 23452 254 238 916
7/26 113 131284 23448 254 238 916
7/26 113 130554 23415 254 236 917
7/26 114 130696 23406 254 236 918
7/29 115 130916 23411 254 236 918
7/29 115 129882 23276 254 233 912
7/30 115 130880 23408 254 238 917
7/30 116 130274 23262 254 237 917
7/31 117 130342 23267 254 238 917
7/31 117 129094 23127 254 234 911
8/01 117 129036 23127 254 234 911
8/01 117 128898 23129 254 235 911
8/01 118 128954 23138 254 235 912
8/01 118 128952 23138 254 235 912
8/01 118 128964 23138 254 235 912
8/01 119 130266 23278 254 239 918
8/01 119 130266 23278 254 239 918
8/01 119 130266 23278 254 239 918
8/01 120 130266 23278 254 239 918
8/01 119 130266 23278 254 239 918
8/01 120 130254 23278 254 239 918
8/01 120 130224 23278 254 239 918
8/01 120 130222 23278 254 239 918
8/02 121 128872 23143 254 236 912
8/02 121 128870 23143 254 236 912
8/03 122 128878 23145 254 237 912
8/05 122 128930 23155 254 238 913
8/05 123 128960 23223 254 235 913
8/06 124 130374 23369 254 239 919
8/07 124 130410 23375 254 241 919
8/07 124 130404 23375 254 240 919
8/08 125 130494 23389 254 240 920
8/09 126 130494 23389 254 240 920
8/10 126 130514 22411 254 240 920
8/12 126 130514 22411 254 240 920
8/12 126 130744 22413 254 240 920
8/12 126 130742 22413 254 240 920
8/13 127 131332 22427 254 240 920
8/13 127 131064 22427 254 240 920
8/15 128 131130 22464 254 240 924
8/15 128 130946 22466 254 239 924
8/15 129 131068 22478 254 239 924
8/16 130 131088 22476 254 240 924
8/16 130 131048 22271 254 240 889
8/19 130 131058 22271 254 240 889
8/19 131 131058 22271 254 240 889
8/19 131 131060 22262 253 240 889
8/19 131 131058 22271 254 240 889
8/19 131 130750 22274 252 240 895
8/19 131 130904 22279 252 240 895
8/20 132 130970 22269 251 240 898
8/20 132 128294 22269 251 240 898
8/20 132 128294 22269 251 240 898
8/20 132 130644 22269 251 240 898
8/20 132 130656 22269 251 240 898
8/20 132 131396 22298 251 240 900
8/20 132 131396 22298 251 240 900
8/21 132 130410 22210 251 239 897
8/21 132 130410 22210 251 239 897
8/21 132 130410 22210 251 239 897
8/21 133 130410 22210 251 239 897
8/21 133 130446 22210 251 239 897
8/21 133 130492 22251 251 240 900
8/22 133 130502 22243 251 240 899
8/22 134 130764 22278 251 240 909
8/22 134 130722 22259 251 240 907
8/22 134 130706 22243 251 240 905
8/23 135 129090 22085 251 235 899
8/23 135 129274 22065 252 235 898
8/23 135 129126 22057 252 235 897
8/23 135 129126 22057 252 235 897
8/26 136 129214 22064 252 235 898
8/26 136 129214 22064 252 235 898
8/26 136 129214 22064 252 235 898
8/26 137 129068 22063 252 235 898
8/26 137 129022 22066 252 235 898
8/27 138 128992 22089 252 236 900
8/27 139 129214 22069 252 236 899
8/27 139 129166 22065 252 236 899
8/28 139 128904 22066 252 236 899
8/28 139 129034 22086 252 236 901
8/28 139 128988 22086 252 236 901
8/29 140 128988 22086 252 236 901
8/29 140 129300 22131 252 237 904
8/30 141 129404 22122 251 237 906
8/30 141 129456 22125 251 237 906
9/03 142 129698 22156 251 237 910
9/03 142 129700 22158 251 237 910
9/03 143 129700 22158 251 237 910
9/04 143 129746 22172 251 237 911
9/04 143 129628 22172 251 237 911
9/04 143 129628 22172 251 237 911
9/04 144 129768 22194 251 237 912
9/05 144 129256 22197 251 237 912
9/06 144 128592 22124 251 238 905
9/09 145 129302 22197 251 238 911
9/09 145 129102 22195 251 237 911
9/09 146 129374 22184 251 237 909
9/09 146 129422 22136 251 237 909
9/09 146 129432 22136 251 237 909
9/09 146 129378 22118 251 237 909
9/09 146 129378 22118 251 237 909
9/09 146 129198 22136 251 237 909
9/09 146 129198 22136 251 237 909
9/10 147 129318 22112 251 237 912
9/10 148 128916 22056 249 237 911
9/11 149 128796 22066 249 238 910
9/11 150 128950 22068 249 238 910
9/11 151 128950 22064 249 238 910
9/11 152 128540 21747 249 238 869
9/12 153 128542 21747 249 238 869
9/12 54 128634 21747 249 238 869
9/12 53 128588 21747 249 238 869
9/12 54 128432 21657 249 235 862
9/12 55 128438 21665 249 235 862
9/13 56 128428 21665 249 235 862
9/13 56 128496 21665 249 235 862
9/13 56 128502 21665 249 235 862
9/13 56 128442 21665 249 235 862
9/13 57 128426 21665 249 235 862
9/13 58 128506 21672 249 235 863
9/13 59 128504 21672 249 235 863
9/13 59 128512 21674 249 236 863
9/13 60 128496 21653 249 236 860
9/16 61 128628 21661 249 236 861
9/16 62 128474 21546 249 236 844
9/16 62 128474 21546 249 236 844
9/16 62 128474 21546 249 236 844
9/16 62 128474 21546 249 236 844
9/16 63 128480 21546 249 236 844
9/17 63 128480 21546 249 236 844
9/19 64 128480 21546 249 236 844
9/19 64 128156 21540 249 236 844
9/20 64 128156 21540 249 236 844
9/20 64 128156 21540 249 236 844
10/25 64 128480 0 249 236 844
10/25 64 128156 0 249 236 844
10/25 64 128480 0 249 236 844
10/25 64 136390 0 249 236 844
10/25 64 128156 0 249 236 844
10/25 64 128156 0 249 236 844
10/30 65 128156 0 249 236 844
10/30 65 128156 0 249 236 844
11/04 65 128156 0 249 236 844
11/04 65 128156 0 249 236 844
11/05 65 128156 0 249 236 844
11/05 65 128156 21540 249 236 844
11/07 65 128168 21540 249 236 844
11/07 65 128168 21540 249 236 844
11/08 66 128168 21540 249 236 844
11/08 66 128168 21540 249 236 844
11/08 66 128168 21540 249 236 844
11/08 66 128168 0 249 236 844
11/08 66 128168 21540 249 236 844
11/11 66 128168 21540 249 236 844
11/11 66 128168 21540 249 236 844
11/11 66 128164 0 249 236 844
11/11 66 128142 21540 249 236 844
11/26 67 128148 21540 249 236 844
11/26 67 128148 21540 249 236 844
11/26 68 128148 21540 249 236 844
11/26 69 128148 21540 249 236 844
12/16 69 128148 21540 249 236 844
12/16 69 128148 21540 249 236 844
1/29 69 128148 21540 249 236 844
1/30 70 128148 21540 249 236 844
1/30 70 128148 21540 249 236 844
1/31 70 128120 21511 248 236 844
2/28 71 128548 21515 248 237 845
2/28 71 128546 21515 248 237 845
2/28 71 128556 21515 248 237 845
3/05 71 128638 21515 248 237 845
3/05 71 128554 21515 248 237 845
3/07 71 128780 21563 248 237 845
3/07 71 128602 21563 248 237 845
3/07 71 128550 21511 248 237 845
3/13 71 128622 21511 248 237 845
3/14 71 128548 21511 248 237 845
3/14 71 128520 21511 248 237 845
3/17 71 128424 21511 248 237 845
3/17 71 128460 21511 248 237 845
3/28 71 128508 21511 248 237 845
4/03 72 128498 21511 248 237 845
4/03 73 128498 21511 248 237 845
4/09 74 128498 21511 248 237 845
4/17 75 128498 21511 248 237 845
4/17 76 128498 21511 248 237 845
4/17 77 128498 21511 248 237 845
4/17 78 128498 21511 248 237 845
4/17 79 128498 21511 248 237 845
4/17 80 128498 21511 248 237 845
4/17 81 128498 21511 248 237 845
4/17 82 128498 21511 248 237 845
4/17 83 128498 21511 248 237 845
4/17 84 128498 21511 248 237 845
4/18 75 128498 21511 248 237 845
4/18 76 128498 21511 248 237 845
4/18 77 128498 21511 248 237 845
5/27 77 128498 21511 248 237 845
5/27 78 128520 21511 248 237 845
7/07 79 128498 21511 248 237 845
7/08 79 128748 21578 248 238 849
7/08 79 128750 21578 248 238 849
7/08 79 128750 21578 248 238 849
7/08 80 128896 21583 248 237 850
7/09 81 128912 21593 248 237 850
7/15 82 128890 21593 248 237 850
7/16 82 128960 21593 248 237 850
7/16 82 128942 21593 248 237 850
7/16 82 128874 21593 248 237 850
7/16 82 128884 21593 248 237 850
7/17 82 128880 21593 248 237 850
7/23 82 128880 21593 248 237 850
7/23 83 128920 21573 248 237 850
7/24 84 128912 21573 248 237 850
8/27 85 128914 21573 248 237 850
8/29 86 128928 21573 248 237 850
9/04 87 128916 21573 248 237 850
9/18 88 128916 21573 248 237 850
9/18 88 128916 21573 248 237 850
9/18 88 128916 21573 248 237 850
9/18 88 128916 21573 248 237 850
9/18 88 128336 21563 248 237 850

50
z6.compare Normal file
View file

@ -0,0 +1,50 @@
I've read over your Z6.TXT. It really has the same problem as mine,
which is that it's a plot without any (enough?) associated problems.
The plots are even pretty similar.
Specifics:
1. In mine, it's you who is the cause of all the problems, as the most
powerful Enchanter in the land. In yours it's some other Enchanter, but
the differences in the effect on the plot are fairly small. I like my
idea better (surprise!) because I like the idea of "power corrupts"
in regard to even the best intentioned good guy (yourself) when
confronted with the potentially unlimited power of magic.
2. I'm not too keen on your killing off Belboz, and I sort of like my
idea of consulting him as a sage. This is pretty minor though.
3. I like the idea of spells in your book fading as concepts are removed
from the universe. In fact, it might be a good idea if some of this has
happened already when the game opens.
4. I would like to figure out some use for the cubes other than in the
final battle. My theory is approximately that the cubes you find can
reactivate the kind of magic they control. The details of this in
relation to individual problems is fuzzy, though. The idea would be
that you find out by using them what they are good for, and thus know
enough by the final battle to use them as weapons against the bad guy.
For example, you might use a cube that controlled the concept
"transformation" to become a grue in the "Grue Heaven" problem.
5. I hate chess problems. (Sorry, Steve).
General:
1. I think the "Expert" rating need not mean the game can't be played.
What I mean by this is that even a difficult game that you can do a lot
of exploring in even without solving problems is not going to be seen as
being as hard as (say) Starcross or Hitchhiker's where there is a
difficult problem right near the start.
2. If this is going to be collaboration, the critical time is
unfortunately right now. After May 6 I will be able to devote full time
to it. It's between now and then (less than six weeks) that is the real
problem. Is there any time soon when we can get together for a
brainstorming session to get the plot and problems more fully designed?
Are you really going to have enough time in the next six weeks to do a
lot of work?
3. And what about Naomi?
Dave

BIN
z6.index Normal file

Binary file not shown.

BIN
z6.pre Normal file

Binary file not shown.

BIN
z6.pur Normal file

Binary file not shown.

1
z6.serial Normal file
View file

@ -0,0 +1 @@
439

62
z6.synopsis Normal file
View file

@ -0,0 +1,62 @@
1. Browsie back cover.
In MAGE, third in the ENCHANTER series, the world is menaced
by the threatened destruction of magic itself, and only you can
save it.
You owe your position as head of the Enchanters Guild to your
clever and innovative use of magic, but now magic has become
unreliable and intermittent. The foundations of the kingdom
are threatened.
Who or what is causing this calamity? In a journey through the
very structure of the magical universe, from the Zorkian underworld
to the far reaches of the higher dimensions, you search for
the source of the unmaking.
You must use all your wit to prepare for the final confrontation,
uncovering the tools and powers to meet the ultimate evil. The
outcome is uncertain when evil's dark purposes are at last exposed,
but a mage never falters.
The Table of Contents for the instruction manual is on page 11.
Take a look at it to find out what you should read before you begin
the story.
2. Package back cover.
MAGE, the mysterious conclusion to the ENCHANTER trilogy, explores
the strange underpinnings of the Zorkian universe. A world founded
on magic and sorcery suddenly finds itself without magic, and you,
the head of the Enchanters Guild, are the only mage who can find
the reason. The very structure of the universe is under siege, and
only a journey through the foundation of magic itself will reveal
the terrifying reason.
3. Instruction Manual Intro.
Welcome to the world of the Enchanter saga -- a world founded on magic,
where guilds of magicians have mastered the powers of sorcery; a
world now threatened with destruction.
You distinguished yourself among the young Enchanters by defeating the
evil warlock Krill, whose attempt to subjugate the land was thwarted by
your cleverness, as your inexperience allowed you to succeed where
others might have failed. This earned you a place on the Circle of
Enchanters, second only to the great Belboz the Necromancer. Then Belboz
himself was nearly destroyed, and your rescue of him from the evil demon
Jeearr earned you the ultimate honor given a mage, the leadership of the
Circle of Enchanters.
Now, a crisis has befallen the kingdom. Magic itself seems to be
failing. Spells fail to work or go strangely awry, the populace is
confused and restive, and even the Enchanters Guild is baffled. A great
conclave of the Guildmasters is ordained, and it is at this conclave
that the final conflict between good and evil begins to unfold.
If you're familiar with Infocom's interactive fiction, you may not feel
like reading this entire manual. However, you should at least read
about the use of magic (on page x). Also look at the appendix of
recognized verbs (on page x); some of the verbs listed are found in all
Infocom stories, while others are included especially for MAGE. All
wizards will want to familiarize themselves with this list.

153
z6.txt Normal file
View file

@ -0,0 +1,153 @@
Thoughts on Z6
Z6 opens during a meeting of the Guild Masters in the ancient Guild Hall
at Borphee. The meeting has been called to discuss the problem of the
deterioration of magic. As magic is widely used in "mundane" industries
and applications, this threatens the very fabric of civilization.
Master after master details in a heart-rending way how the magic method
of (for example) dry cleaning clothes no longer works or is unreliable.
In a less-and-less subtle way, the Masters begin to accuse the Guild of
Enchanters of not "holding up their end." Anger begins to rise among
the Enchanters.
Suddenly, without any warning, all the masters saving only yourself are
CLEESHed.
* * *
You notice a sinister cloaked figure scurrying suspiciously out of the
hall, and follow. In Belwit Square the figure disappears in a puff of
orange smoke, leaving behind only a pure-white cube with nothing written
on it.
You decide to consult Belboz, who has retired to the Enchanter's
equivalent of a monastery, so you AIMFIZ yourself to him. He recalls a
legend that the universe was constructed of such blocks, not materially
but conceptually, and each block represented a concept. (Various
funny/serious analogies with sub-atomic physics and ZIL can be made
here). But he remembers that the process involved writing mystic runes
representing the concept on the block, and this one is blank. This is
especially disturbing because that means that someone may be trying to
introduce new concepts by creating new blocks, or worse yet, erasing
concepts by erasing the letters from existing blocks!
By a whizz-bang new spell that uses the Law of Contagion and the Law of
Similarity, it is be possible to find out where the other blocks are if
this one has touched them recently, and sure enough, you can reach their
locales quite easily. These are the locations of the problems, and each
problem rewards you with a block.
This is done by BLORPLEing a cube. It produces a room with you inside it
whose doors open to the locations of things that have recently touched the
object you BLORPLE. (How's that for advanced magical technology, sports
fans?) Some of the doors may be locked, even. When you go through a door
the BLORPLEd object (usually a cube) goes with you.
* * *
Possible problems:
1) The Worm Ouroboros. In this problem a giant serpent (we're talking
circa 200 feet long and maybe 15 feet thick) guards a block. You can't
get by the serpent, but you can convince him to eat his own tail. This
is done by creating and then enticing him through a dimensional gate
that warps back around to where his tail is. Making this a
possible-to-solve problem is the big challenge. The gate must be made
plausible, not to mention understandable, etc.
2) Oubliette. An oubliette is a cell-like pit in which prisoners are
dropped whom you wish to basically ignore. The only way out is at the
top. Has a water channel for sanitation or something. Idea is to
freeze the water over the outlet and float out. Above the cell is a
cube.
3) Self-built Maze. This starts as a solid rock cell, no doors, no
windows. You have a spell that detects secret doors. Here, however,
every wall actually has one potentially, so the first wall you use it on
always has one. It leads into another similar cell. Etc. The idea
here is that the last cell of six (?) has the cube in it, and the exit
out. Is this too repetitious and silly?
4) Nowhere. This is a featureless plain in another dimension, inhabited
by large flat-bottomed boulders which you can push around because they
float frictionlessly on the mirror-smooth surface. The idea would be to
use some mechanism (perhaps billiards-like) to push a boulder over to a
cube which you can then grab. Alternately you would have to ride a
boulder and induce it somehow to do what you want.
5) Grue Heaven. This takes place in a dimension inhabited entirely by
Grues, and in fact is favored by them since, although the supply of
adventurers is chancy at best, there is never any light there, because
the physical laws are different and a photon is a big fuzzy thing about
the size of a tennis ball. (Could be amusing if you have a light
source). Idea here is to shape-shift into a Grue, enabling you to (a)
see in the dark and (b) not look conspicuously adventurer-like and thus
be invited to lunch. The Grues have a cube in the grue temple, which
you can steal.
6) Flying Carpet. Trick here is to learn how to operate it, find a cube
in a roc's nest, evade the roc, etc.
7) Appointment in Samarra. Not sure what to do with this, but some
dangerous being (perhaps Death, perhaps someone less lofty) sees you at
some point in the game and looks startled. Later, in a different point
in the game, he encounters you with much more aplomb. He was startled
because he saw you in the first place and knew you had an appointment
with him in the second place, and you weren't there.
8) Scales. There is a standard old brain-teaser involving how to find
one non-canonical coin (in this it would be a cube) in a pile of N given
only M chances to weigh them. This could be hoked up into cubes and
charges of some magical item, for example. The prize would be the
non-canonical cube (the only real one).
9) Labyrinth. This is an alternative to the Self-made Maze idea. Here
you have concentric circles which you can push (physically or magically)
to line up entrances and exits. There used to be a kid's game like
this, and the idea was get your marbles to the center before your
opponent. Here the idea is to get you to the center before ... what?
10) Another Silly Maze. This one can't be mapped by the usual
techniques because it consists of only one room and each wall has a
door. It is the sequence of directions that's important. Not sure what
clues if any you get as to what virtual room you are in. Not sure if
the world could stand another *^%&*^ maze problem anyway.
* * *
What's Really Going On?:
The theory is that actually you, and not some other force, are
responsible for collecting the cubes and banishing them to other
dimensions, planes, etc. This is being done by a creature analogous to
the Shadow in Z3, which is working to create an environment it will find
more to its liking. This would include, for example, god-like powers
for Enchanters, no distinction between creatures such as itself (spirits
and the like) and material beings, instant correspondance between
thought and deed, and so on. We're talking a real power-trip here.
The catch is that after all this is revealed during the final climactic
battle with the creature, it also becomes clear that such a development
(both the bringing to life of the dark side of the Enchanter's power and
the realignment of the universe) is inherent in the idea of magic, and
eventually some other Enchanter will get into the same situation. The
only solution is to destroy the magic-related cubes, which destroys
magic and perhaps plunges the world into a dark age, but saves it from
that form of evil forever (or at least until Z7).
* * *
The Cubes:
They represent concepts in the physical universe, and possessing them
gives you power over that aspect of the universe.
Possible cubes include
Earth, Air, Fire, Water: the elements
Existence, Length, Breadth, Volume, Time: the dimensions
Animation, Transformation, Creation: the actions
Mind, Essence, Lightning, Mass, Magic: the forces
There could also be others, of course. For example, there might be lesser
cubes that embody adjectives and nouns. Arranging (joining?) them properly
would produce (e.g.) a dog house or a house dog.

BIN
z6.zip

Binary file not shown.

1813
z6manual.txt Normal file

File diff suppressed because it is too large Load diff