Final Revision

master
historicalsource 2019-04-13 21:47:22 -04:00
parent 34cc828c4f
commit 87a3b787d1
17 changed files with 4422 additions and 1071 deletions

View File

@ -64,10 +64,14 @@ to brush them with." CR>)
<ROUTINE GRANITE-WALL-F ()
<COND (<EQUAL? ,HERE ,NORTH-TEMPLE>
<COND (<VERB? FIND>
<TELL "The west wall is solid granite here." CR>)>)
<TELL "The west wall is solid granite here." CR>)
(<VERB? TAKE RAISE LOWER>
<TELL "It's solid granite." CR>)>)
(<EQUAL? ,HERE ,TREASURE-ROOM>
<COND (<VERB? FIND>
<TELL "The east wall is solid granite here." CR>)>)
<TELL "The east wall is solid granite here." CR>)
(<VERB? TAKE RAISE LOWER>
<TELL "It's solid granite." CR>)>)
(<EQUAL? ,HERE ,SLIDE-ROOM>
<COND (<VERB? FIND READ>
<TELL "It only SAYS \"Granite Wall\"." CR>)
@ -122,8 +126,20 @@ It is clear that the owners must have been extremely wealthy." CR>)
(<VERB? BURN>
<TELL "You must be joking." CR>)>>
;"0 -> no next, 1 -> success, 2 -> failed move"
<ROUTINE GO-NEXT (TBL "AUX" VAL)
<COND (<SET VAL <LKP ,HERE .TBL>>
<COND (<NOT <GOTO .VAL>> 2)
(T 1)>)>>
<ROUTINE FOREST-F ()
<COND (<VERB? WALK-AROUND>
<COND (<OR <EQUAL? ,HERE
,WEST-OF-HOUSE ,NORTH-OF-HOUSE
,SOUTH-OF-HOUSE>
<EQUAL? ,HERE ,EAST-OF-HOUSE>>
<TELL "You aren't even in the forest." CR>)>
<GO-NEXT ,FOREST-AROUND>)
(<VERB? DISEMBARK>
<TELL "You will have to specify a direction." CR>)
@ -140,7 +156,7 @@ It is clear that the owners must have been extremely wealthy." CR>)
<ROUTINE WATER-F ("AUX" AV W PI?)
<COND (<VERB? SGIVE> <RFALSE>)
(<VERB? THROUGH>
(<VERB? THROUGH BOARD>
<TELL <PICK-ONE ,SWIMYUKS> CR>
<RTRUE>)
(<VERB? FILL> ;"fill bottle with water =>"
@ -153,8 +169,9 @@ It is clear that the owners must have been extremely wealthy." CR>)
<EQUAL? ,PRSO ,WATER>>
<SET W ,PRSO>
<SET PI? <>>)
(<SET W ,PRSI>
<SET PI? T>)>
(ELSE
<SET W ,PRSI>
<COND (.W <SET PI? T>)>)>
<COND (<EQUAL? .W ,GLOBAL-WATER>
<SET W ,WATER>
<COND (<VERB? TAKE PUT> <REMOVE-CAREFULLY .W>)>)>
@ -192,8 +209,19 @@ It is clear that the owners must have been extremely wealthy." CR>)
"It's in the bottle. Perhaps you should take that instead." CR>)
(T
<TELL "The water slips through your fingers." CR>)>)
(.PI? <TELL "Nice try." CR>)
(.PI?
<COND (<AND <VERB? PUT>
<GLOBAL-IN? ,RIVER ,HERE>>
<PERFORM ,V?PUT ,PRSO ,RIVER>)
(ELSE
<TELL "Nice try." CR>)>
<RTRUE>)
(<VERB? DROP GIVE>
<COND (<AND <VERB? DROP>
<IN? ,WATER ,BOTTLE>
<NOT <FSET? ,BOTTLE ,OPENBIT>>>
<TELL "The bottle is closed." CR>
<RTRUE>)>
<REMOVE-CAREFULLY ,WATER>
<COND (.AV
<TELL "There is now a puddle in the bottom of the "
@ -288,10 +316,11 @@ It is clear that the owners must have been extremely wealthy." CR>)
<ROUTINE FLY-ME ()
<FWEEP 4>
<TELL CR
<TELL
"The bat grabs you by the scruff of your neck and lifts you away...." CR CR>
<GOTO <PICK-ONE ,BAT-DROPS> <>>
<V-FIRST-LOOK>
<COND (<NOT <EQUAL? ,HERE ,ENTRANCE-TO-HADES>>
<V-FIRST-LOOK>)>
T>
<ROUTINE FWEEP (N)
@ -398,7 +427,7 @@ is completed in \"ZORK III: The Dungeon Master.\"" CR>)
(T
<TELL "
ZORK: The Great Underground Empire.|" CR>)>
<V-QUIT <>>)>>
<FINISH>)>>
<ROUTINE BARROW-DOOR-FCN ()
<COND (<VERB? OPEN CLOSE>
@ -610,8 +639,8 @@ uncomfortable, you stand up again." CR>)
<ROUTINE TROLL-FCN ("OPTIONAL" (MODE <>))
<COND (<VERB? TELL>
<TELL "The troll isn't much of a conversationalist." CR>
<SETG P-CONT <>>)
<SETG P-CONT <>>
<TELL "The troll isn't much of a conversationalist." CR>)
(<EQUAL? .MODE ,F-BUSY?>
<COND (<IN? ,AXE ,TROLL> <>)
(<AND <IN? ,AXE ,HERE> <PROB 75 90>>
@ -738,7 +767,7 @@ his guttural tongue." CR>)
"SUBTITLE GRATING/MAZE"
<GLOBAL LEAVES-GONE <>>
;<GLOBAL LEAVES-GONE <>> ;"no longer used?"
<GLOBAL GRATE-REVEALED <>>
<GLOBAL GRUNLOCK <>>
@ -1020,7 +1049,7 @@ drawing you over the railing and down." CR>
<JIGS-UP
"I'm afraid that the leap you attempted has done you in.">)>)>>
<GLOBAL EGYPT-FLAG <>>
;<GLOBAL EGYPT-FLAG <>> ;"no longer used?"
\
@ -1177,9 +1206,9 @@ glowing serenely">)>
T)>)
(T <TELL
"The bolt won't turn with your best effort." CR>)>)
(,PRSI <TELL
"The bolt won't turn using the " D ,PRSI "." CR>)
(T <TELL "You can't with your bare hands." CR>)>)
(ELSE
<TELL
"The bolt won't turn using the " D ,PRSI "." CR>)>)
(<VERB? TAKE>
<INTEGRAL-PART>)
(<VERB? OIL>
@ -1253,7 +1282,7 @@ to the other side." CR>)>
T>
<GLOBAL DROWNINGS
<TABLE "up to your ankles."
<TABLE (PURE) "up to your ankles."
"up to your shin."
"up to your knees."
"up to your hips."
@ -1613,7 +1642,7 @@ His enflamed tongue protrudes from his man-sized mouth." CR>)>)
<OR <0? ,CYCLOWRATH> <ENABLE <INT I-CYCLOPS>>>)>>
<GLOBAL CYCLOMAD
<TABLE
<TABLE (PURE)
"The cyclops seems somewhat agitated."
"The cyclops appears to be getting more agitated."
"The cyclops is moving about the room, looking for something."
@ -1662,7 +1691,7 @@ stop. With a tremendous effort, you scramble out of the room." CR CR>
"The rest of your commands have been lost in the noise." CR>
<SETG P-CONT <>>)>
<REPEAT ()
<CRLF>
<COND (<NOT ,SUPER-BRIEF> <CRLF>)>
<TELL ">">
<READ ,P-INBUF ,P-LEXV>
<COND (<0? <GETB ,P-LEXV ,P-LEXWORDS>>
@ -1691,7 +1720,8 @@ stop. With a tremendous effort, you scramble out of the room." CR CR>
<SETG LOUD-FLAG T>
<FCLEAR ,BAR ,SACREDBIT>
<TELL
"The acoustics of the room change subtly." CR CR>
"The acoustics of the room change subtly." CR>
<COND (<NOT ,SUPER-BRIEF> <CRLF>)>
<RETURN>)
;(,DEAD <CRLF>)
(T
@ -1743,7 +1773,7 @@ walls here. He does not speak, but it is clear from his aspect that
the bag will be taken only over his dead body." CR>
<SETG THIEF-HERE T>
<RTRUE>)
(<IN? ,STILETTO ,WINNER>
;(<IN? ,STILETTO ,WINNER>
<MOVE ,STILETTO ,THIEF>
<FSET ,STILETTO ,NDESCBIT>
<FCLEAR ,THIEF ,INVISIBLE>
@ -1774,16 +1804,20 @@ Fortunately, he took nothing." CR>
<RTRUE>)
(<PROB 70> <RFALSE>)
(<NOT ,DEAD>
<COND (<ROB ,HERE ,THIEF 100> <SET ROBBED? T>)
<COND (<ROB ,HERE ,THIEF 100>
<SET ROBBED? ,HERE>)
(<ROB ,WINNER ,THIEF>
<SET ROBBED? T>
<SET WINNER-ROBBED? T>)>
<SET ROBBED? ,PLAYER>)>
<SETG THIEF-HERE T>
<COND (<AND .ROBBED? <NOT .HERE?>>
<TELL
"A seedy-looking individual with a large bag just wandered through
the room. On the way through, he quietly abstracted some valuables
from the room and from your possession, mumbling something about
the room. On the way through, he quietly abstracted some valuables from ">
<COND (<EQUAL? .ROBBED? ,HERE>
<TELL "the room">)
(ELSE
<TELL "your possession">)>
<TELL ", mumbling something about
\"Doing unto others before...\"" CR>
<STOLE-LIGHT?>)
(.HERE?
@ -1792,10 +1826,11 @@ from the room and from your possession, mumbling something about
<TELL
"The thief just left, still carrying his large bag. You may
not have noticed that he ">
<COND (.WINNER-ROBBED?
<COND (<EQUAL? .ROBBED? ,PLAYER>
<TELL
"robbed you blind first.">)
(T <TELL
(T
<TELL
"appropriated the valuables in the room.">)>
<CRLF>
<STOLE-LIGHT?>)
@ -1813,12 +1848,21 @@ large bag. Finding nothing of value, he left disgruntled." CR>
(T
<COND (.HERE? ;"Here, already announced."
<COND (<PROB 30>
<COND (<SET ROBBED?
<OR <ROB ,HERE ,THIEF 100>
<ROB ,WINNER ,THIEF>>>
<COND (<ROB ,HERE ,THIEF 100>
<SET ROBBED? ,HERE>)
(<ROB ,WINNER ,THIEF>
<SET ROBBED? ,PLAYER>)>
<COND (.ROBBED?
<TELL
"The thief just left, still carrying his large bag. You may
not have noticed that he robbed you blind first." CR>
not have noticed that he ">
<COND (<EQUAL? .ROBBED? ,PLAYER>
<TELL
"robbed you blind first.">)
(T
<TELL
"appropriated the valuables in the room.">)>
<CRLF>
<STOLE-LIGHT?>)
(T
<TELL
@ -1913,16 +1957,24 @@ your greeting with his usual graciousness." CR>)
(<AND <EQUAL? ,PRSO ,KNIFE>
<VERB? THROW>
<NOT <FSET? ,THIEF ,FIGHTBIT>>>
<MOVE ,PRSO ,HERE>
<COND (<PROB 10 0>
<TELL
"You evidently frightened the robber, though you didn't hit him. He
flees">
<COND (<SET X <FIRST? ,THIEF>>
<REMOVE ,LARGE-BAG>
<SET X <>>
<COND (<IN? ,STILETTO ,THIEF>
<REMOVE ,STILETTO>
<SET X T>)>
<COND (<FIRST? ,THIEF>
<MOVE-ALL ,THIEF ,HERE>
<TELL
", but the contents of his bag fall on the floor.">)
(T
<TELL ".">)>
<MOVE ,LARGE-BAG ,THIEF>
<COND (.X <MOVE ,STILETTO ,THIEF>)>
<CRLF>
<FSET ,THIEF ,INVISIBLE>)
(T
@ -1945,7 +1997,11 @@ angered by your attempt." CR>
<TELL
"Your proposed victim suddenly recovers consciousness." CR>)>
<MOVE ,PRSO ,THIEF>
<COND (<G? <GETP ,PRSO ,P?TVALUE> 0>
<COND ;(<EQUAL? ,PRSO ,STILETTO>
<TELL
"The thief takes his stiletto and salutes you with a small nod of
his head." CR>)
(<G? <GETP ,PRSO ,P?TVALUE> 0>
<SETG THIEF-ENGROSSED T>
<TELL
"The thief is taken aback by your unexpected generosity, but accepts
@ -2079,20 +2135,18 @@ inside." CR>)>>
"You can't. It's not a very good chalice, is it?" CR>)
(T <DUMB-CONTAINER>)>>
<ROUTINE TREASURE-ROOM-FCN (RARG "AUX" (FLG <>) TL)
<ROUTINE TREASURE-ROOM-FCN (RARG "AUX" TL)
<COND (<AND <EQUAL? .RARG ,M-ENTER>
<1? <GET <INT I-THIEF> ,C-ENABLED?>>
<NOT ,DEAD>>
<COND (<SET FLG <NOT <IN? ,THIEF ,HERE>>>
<TELL
<1? <GET <INT I-THIEF> ,C-ENABLED?>>
<NOT ,DEAD>>
<COND (<NOT <IN? ,THIEF ,HERE>>
<TELL
"You hear a scream of anguish as you violate the robber's hideaway.
Using passages unknown to you, he rushes to its defense." CR>
<MOVE ,THIEF ,HERE>
<MOVE ,THIEF ,HERE>)>
<FSET ,THIEF ,FIGHTBIT>
<FCLEAR ,THIEF ,INVISIBLE>)
(T
<FSET ,THIEF ,FIGHTBIT>)>
<THIEF-IN-TREASURE>)>>
<FCLEAR ,THIEF ,INVISIBLE>
<THIEF-IN-TREASURE>)>>
<ROUTINE THIEF-IN-TREASURE ("AUX" F N)
<SET F <FIRST? ,HERE>>
@ -2102,8 +2156,7 @@ Using passages unknown to you, he rushes to its defense." CR>
suddenly vanish." CR CR>)>
<REPEAT ()
<COND (<NOT .F> <RETURN>)
(<AND <NOT <EQUAL? .F ,CHALICE>>
<NOT <EQUAL? .F ,THIEF>>>
(<NOT <EQUAL? .F ,CHALICE ,THIEF>>
<FSET .F ,INVISIBLE>)>
<SET F <NEXT? .F>>>>
@ -2165,7 +2218,8 @@ artist's masterpieces, you have destroyed one." CR>)>>
"SUBTITLE LET THERE BE LIGHT SOURCES"
<GLOBAL LAMP-TABLE
<TABLE 100
<TABLE (PURE)
100
"The lamp appears a bit dimmer."
70
"The lamp is definitely dimmer now."
@ -2333,6 +2387,7 @@ burn." CR>)
<COND (<FSET? ,CANDLES ,ONBIT>
<TELL "The flame is extinguished.">
<FCLEAR ,CANDLES ,ONBIT>
<FSET ,CANDLES ,TOUCHBIT>
<SETG LIT <LIT? ,HERE>>
<COND (<NOT ,LIT>
<TELL " It's really dark in here....">)>
@ -2349,7 +2404,8 @@ burn." CR>)
<CRLF>)>)>>
<GLOBAL CANDLE-TABLE
<TABLE 20
<TABLE (PURE)
20
"The candles grow shorter."
10
"The candles are becoming quite short."
@ -2426,6 +2482,7 @@ is obviously deranged and holding his nose." CR>)
(<AND <EQUAL? .RARG ,M-ENTER> <NOT ,DEAD>>
<COND (<NOT <EQUAL? <LOC ,GARLIC> ,WINNER ,HERE>>
<V-LOOK>
<CRLF>
<FLY-ME>)>)>>
<ROUTINE MACHINE-ROOM-FCN (RARG)
@ -2443,7 +2500,7 @@ lid, which is ">
<CRLF>)>>
<ROUTINE MACHINE-F ()
<COND (<VERB? TAKE>
<COND (<AND <VERB? TAKE> <EQUAL? ,PRSO ,MACHINE>>
<TELL "It is far too large to carry." CR>)
(<VERB? OPEN>
<COND (<FSET? ,MACHINE ,OPENBIT>
@ -2489,10 +2546,7 @@ excitement abates." CR>
<COND (<SET O <FIRST? ,MACHINE>>
<REMOVE-CAREFULLY .O>)
(T <RETURN>)>>
<MOVE ,GUNK ,MACHINE>)
(T)>)>)
(<NOT ,PRSI>
<TELL "You can't turn it with your hands..." CR>)
<MOVE ,GUNK ,MACHINE>)>)>)
(T
<TELL "It seems that a " D ,PRSI " won't do." CR>)>)>>
@ -2553,12 +2607,13 @@ walkable (I think the giveaway was the stairs and bannister)." CR>
<ROB ,ON-RAINBOW ,WALL>
<TELL
"The rainbow seems to have become somewhat run-of-the-mill." CR>
<SETG RAINBOW-FLAG <>>)>)
<SETG RAINBOW-FLAG <>>
<RTRUE>)>)
(<EQUAL? ,HERE ,ON-RAINBOW>
<SETG RAINBOW-FLAG <>>
<JIGS-UP
"The structural integrity of the rainbow is severely compromised,
leaving you hanging in mid-air, supported only by water vapor. Bye.">)
leaving you hanging in midair, supported only by water vapor. Bye.">)
(T
<TELL
"A dazzling display of color briefly emanates from the sceptre." CR>)>)>>
@ -2635,13 +2690,13 @@ with swift currents and large, half-hidden rocks. You decide to forgo your
swim." CR>)>>
<GLOBAL RIVER-SPEEDS
<LTABLE RIVER-1 4 RIVER-2 4 RIVER-3 3 RIVER-4 2 RIVER-5 1>>
<LTABLE (PURE) RIVER-1 4 RIVER-2 4 RIVER-3 3 RIVER-4 2 RIVER-5 1>>
<GLOBAL RIVER-NEXT
<LTABLE RIVER-1 RIVER-2 RIVER-3 RIVER-4 RIVER-5>>
<LTABLE (PURE) RIVER-1 RIVER-2 RIVER-3 RIVER-4 RIVER-5>>
<GLOBAL RIVER-LAUNCH
<LTABLE DAM-BASE RIVER-1
<LTABLE (PURE) DAM-BASE RIVER-1
WHITE-CLIFFS-NORTH RIVER-3
WHITE-CLIFFS-SOUTH RIVER-4
SHORE RIVER-5
@ -2814,7 +2869,7 @@ The boat deflates to the sounds of hissing, sputtering, and cursing." CR>
<TELL <GET ,BDIGS ,BEACH-DIG> CR>)>)>>
<GLOBAL BDIGS
<TABLE "You seem to be digging a hole here."
<TABLE (PURE) "You seem to be digging a hole here."
"The hole is getting deeper, but that's about it."
"You are surrounded by a wall of sand on all sides.">>
@ -2833,7 +2888,7 @@ branches. The nearest branch above you is above your reach." CR>
<PRINT-CONTENTS ,PATH>
<TELL "." CR>)>)
(<EQUAL? .RARG ,M-BEG>
<COND (<AND <VERB? CLIMB-DOWN> <EQUAL? ,PRSO ,TREE>>
<COND (<AND <VERB? CLIMB-DOWN> <EQUAL? ,PRSO ,TREE ,ROOMS>>
<DO-WALK ,P?DOWN>)
(<AND <VERB? CLIMB-UP CLIMB-FOO>
<EQUAL? ,PRSO ,TREE>>
@ -2992,7 +3047,7 @@ down, the songbird flies away." CR>
<NOT <IN? .RLOC ,ROOMS>>>
<MOVE ,ROPE ,HERE>)>
T)>)>)
(<AND <VERB? CLIMB-DOWN> <EQUAL? ,PRSO ,ROPE> ,DOME-FLAG>
(<AND <VERB? CLIMB-DOWN> <EQUAL? ,PRSO ,ROPE ,ROOMS> ,DOME-FLAG>
<DO-WALK ,P?DOWN>)
(<AND <VERB? TIE-UP>
<EQUAL? ,ROPE ,PRSI>>
@ -3061,7 +3116,7 @@ down, the songbird flies away." CR>
<EQUAL? ,PRSO ,P?WEST>>
<TELL "You cannot enter in your condition." CR>)>)
(<VERB? BRIEF VERBOSE SUPER-BRIEF
VERSION AGAIN SAVE RESTORE QUIT RESTART>
VERSION ;AGAIN SAVE RESTORE QUIT RESTART>
<>)
(<VERB? ATTACK MUNG ALARM SWING>
<TELL "All such attacks are vain in your condition." CR>)
@ -3076,7 +3131,7 @@ down, the songbird flies away." CR>
<TELL "You need no light to guide you." CR>)
(<VERB? SCORE>
<TELL "You're dead! How can you think of your score?" CR>)
(<VERB? TAKE>
(<VERB? TAKE RUB>
<TELL "Your hand passes through its object." CR>)
(<VERB? DROP THROW INVENTORY>
<TELL "You have no possessions." CR>)
@ -3098,7 +3153,7 @@ down, the songbird flies away." CR>
<COND (<EQUAL? ,HERE ,SOUTH-TEMPLE>
<FCLEAR ,LAMP ,INVISIBLE>
<PUTP ,WINNER ,P?ACTION 0>
<SETG GWIM-DISABLE <>>
;<SETG GWIM-DISABLE <>>
<SETG ALWAYS-LIT <>>
<SETG DEAD <>>
<COND (<IN? ,TROLL ,TROLL-ROOM>
@ -3201,21 +3256,21 @@ teeth ache to touch it." CR>)>>
"tables of melee results"
<GLOBAL DEF1
<TABLE
<TABLE (PURE)
MISSED MISSED MISSED MISSED
STAGGER STAGGER
UNCONSCIOUS UNCONSCIOUS
KILLED KILLED KILLED KILLED KILLED>>
<GLOBAL DEF2A
<TABLE
<TABLE (PURE)
MISSED MISSED MISSED MISSED MISSED
STAGGER STAGGER
LIGHT-WOUND LIGHT-WOUND
UNCONSCIOUS>>
<GLOBAL DEF2B
<TABLE
<TABLE (PURE)
MISSED MISSED MISSED
STAGGER STAGGER
LIGHT-WOUND LIGHT-WOUND LIGHT-WOUND
@ -3223,21 +3278,21 @@ teeth ache to touch it." CR>)>>
KILLED KILLED KILLED>>
<GLOBAL DEF3A
<TABLE
<TABLE (PURE)
MISSED MISSED MISSED MISSED MISSED
STAGGER STAGGER
LIGHT-WOUND LIGHT-WOUND
SERIOUS-WOUND SERIOUS-WOUND>>
<GLOBAL DEF3B
<TABLE
<TABLE (PURE)
MISSED MISSED MISSED
STAGGER STAGGER
LIGHT-WOUND LIGHT-WOUND LIGHT-WOUND
SERIOUS-WOUND SERIOUS-WOUND SERIOUS-WOUND>>
<GLOBAL DEF3C
<TABLE
<TABLE (PURE)
MISSED
STAGGER STAGGER
LIGHT-WOUND LIGHT-WOUND LIGHT-WOUND LIGHT-WOUND
@ -3411,7 +3466,7 @@ property, which is normally 0"
<SETG LOAD-ALLOWED <- ,LOAD-ALLOWED 20>>)>)
(<EQUAL? .RES ,STAGGER> <FSET ,WINNER ,STAGGERED>)
(T
<AND <EQUAL? .RES ,LOSE-WEAPON> .DWEAPON>
;<AND <EQUAL? .RES ,LOSE-WEAPON> .DWEAPON>
<MOVE .DWEAPON ,HERE>
<COND (<SET NWEAPON <FIND-WEAPON ,WINNER>>
<TELL
@ -3446,8 +3501,8 @@ ineffective." CR>
<SET DWEAPON <FIND-WEAPON .VILLAIN>>
<COND (<OR <NOT .DWEAPON> <L? .DEF 0>>
<TELL "The ">
<COND (<NOT .DWEAPON> <TELL "unarmed">)
(T <TELL "unconscious">)>
<COND (<L? .DEF 0> <TELL "unconscious">)
(T <TELL "unarmed">)>
<TELL " " D .VILLAIN
" cannot defend himself: He dies." CR>
<SET RES ,KILLED>)
@ -3485,7 +3540,7 @@ ineffective." CR>
<COND (<L? .DEF 0> <SET DEF 0>)>)
(<EQUAL? .RES ,STAGGER> <FSET ,PRSO ,STAGGERED>)
(T
<AND <EQUAL? .RES ,LOSE-WEAPON> .DWEAPON>
;<AND <EQUAL? .RES ,LOSE-WEAPON> .DWEAPON>
<FCLEAR .DWEAPON ,NDESCBIT>
<FSET .DWEAPON ,WEAPONBIT>
<MOVE .DWEAPON ,HERE>
@ -3554,182 +3609,182 @@ carcass has disappeared." CR>
<CONSTANT F-DEF 1> ;"means print defender name (villain, e.g.)"
<GLOBAL HERO-MELEE
<TABLE
<LTABLE
<LTABLE "Your " F-WEP " misses the " F-DEF " by an inch.">
<LTABLE "A good slash, but it misses the " F-DEF " by a mile.">
<LTABLE "You charge, but the " F-DEF " jumps nimbly aside.">
<LTABLE "Clang! Crash! The " F-DEF " parries.">
<LTABLE "A quick stroke, but the " F-DEF " is on guard.">
<LTABLE "A good stroke, but it's too slow; the " F-DEF " dodges.">>
<LTABLE
<LTABLE "Your " F-WEP " crashes down, knocking the " F-DEF " into dreamland.">
<LTABLE "The " F-DEF " is battered into unconsciousness.">
<LTABLE "A furious exchange, and the " F-DEF " is knocked out!">
<LTABLE "The haft of your " F-WEP " knocks out the " F-DEF ".">
<LTABLE "The " F-DEF " is knocked out!">>
<LTABLE
<LTABLE "It's curtains for the " F-DEF " as your " F-WEP " removes his head.">
<LTABLE "The fatal blow strikes the " F-DEF " square in the heart: He dies.">
<LTABLE "The " F-DEF " takes a fatal blow and slumps to the floor dead.">>
<LTABLE
<LTABLE "The " F-DEF " is struck on the arm; blood begins to trickle down.">
<LTABLE "Your " F-WEP " pinks the " F-DEF " on the wrist, but it's not serious.">
<LTABLE "Your stroke lands, but it was only the flat of the blade.">
<LTABLE "The blow lands, making a shallow gash in the " F-DEF "'s arm!">>
<LTABLE
<LTABLE "The " F-DEF " receives a deep gash in his side.">
<LTABLE "A savage blow on the thigh! The " F-DEF " is stunned but can still fight!">
<LTABLE "Slash! Your blow lands! That one hit an artery, it could be serious!">
<LTABLE "Slash! Your stroke connects! This could be serious!">>
<LTABLE
<LTABLE "The " F-DEF " is staggered, and drops to his knees.">
<LTABLE "The " F-DEF " is momentarily disoriented and can't fight back.">
<LTABLE "The force of your blow knocks the " F-DEF " back, stunned.">
<LTABLE "The " F-DEF " is confused and can't fight back.">
<LTABLE "The quickness of your thrust knocks the " F-DEF " back, stunned.">>
<LTABLE
<LTABLE "The " F-DEF "'s weapon is knocked to the floor, leaving him unarmed.">
<LTABLE "The " F-DEF " is disarmed by a subtle feint past his guard.">>>>
<TABLE (PURE)
<LTABLE (PURE)
<LTABLE (PURE) "Your " F-WEP " misses the " F-DEF " by an inch.">
<LTABLE (PURE) "A good slash, but it misses the " F-DEF " by a mile.">
<LTABLE (PURE) "You charge, but the " F-DEF " jumps nimbly aside.">
<LTABLE (PURE) "Clang! Crash! The " F-DEF " parries.">
<LTABLE (PURE) "A quick stroke, but the " F-DEF " is on guard.">
<LTABLE (PURE) "A good stroke, but it's too slow; the " F-DEF " dodges.">>
<LTABLE (PURE)
<LTABLE (PURE) "Your " F-WEP " crashes down, knocking the " F-DEF " into dreamland.">
<LTABLE (PURE) "The " F-DEF " is battered into unconsciousness.">
<LTABLE (PURE) "A furious exchange, and the " F-DEF " is knocked out!">
<LTABLE (PURE) "The haft of your " F-WEP " knocks out the " F-DEF ".">
<LTABLE (PURE) "The " F-DEF " is knocked out!">>
<LTABLE (PURE)
<LTABLE (PURE) "It's curtains for the " F-DEF " as your " F-WEP " removes his head.">
<LTABLE (PURE) "The fatal blow strikes the " F-DEF " square in the heart: He dies.">
<LTABLE (PURE) "The " F-DEF " takes a fatal blow and slumps to the floor dead.">>
<LTABLE (PURE)
<LTABLE (PURE) "The " F-DEF " is struck on the arm; blood begins to trickle down.">
<LTABLE (PURE) "Your " F-WEP " pinks the " F-DEF " on the wrist, but it's not serious.">
<LTABLE (PURE) "Your stroke lands, but it was only the flat of the blade.">
<LTABLE (PURE) "The blow lands, making a shallow gash in the " F-DEF "'s arm!">>
<LTABLE (PURE)
<LTABLE (PURE) "The " F-DEF " receives a deep gash in his side.">
<LTABLE (PURE) "A savage blow on the thigh! The " F-DEF " is stunned but can still fight!">
<LTABLE (PURE) "Slash! Your blow lands! That one hit an artery, it could be serious!">
<LTABLE (PURE) "Slash! Your stroke connects! This could be serious!">>
<LTABLE (PURE)
<LTABLE (PURE) "The " F-DEF " is staggered, and drops to his knees.">
<LTABLE (PURE) "The " F-DEF " is momentarily disoriented and can't fight back.">
<LTABLE (PURE) "The force of your blow knocks the " F-DEF " back, stunned.">
<LTABLE (PURE) "The " F-DEF " is confused and can't fight back.">
<LTABLE (PURE) "The quickness of your thrust knocks the " F-DEF " back, stunned.">>
<LTABLE (PURE)
<LTABLE (PURE) "The " F-DEF "'s weapon is knocked to the floor, leaving him unarmed.">
<LTABLE (PURE) "The " F-DEF " is disarmed by a subtle feint past his guard.">>>>
\
"messages for cyclops (note that he has no weapon"
<GLOBAL CYCLOPS-MELEE
<TABLE
<LTABLE
<LTABLE "The Cyclops misses, but the backwash almost knocks you over.">
<LTABLE "The Cyclops rushes you, but runs into the wall.">>
<LTABLE
<LTABLE "The Cyclops sends you crashing to the floor, unconscious.">>
<LTABLE
<LTABLE "The Cyclops breaks your neck with a massive smash.">>
<LTABLE
<LTABLE "A quick punch, but it was only a glancing blow.">
<LTABLE "A glancing blow from the Cyclops' fist.">>
<LTABLE
<LTABLE "The monster smashes his huge fist into your chest, breaking several
<TABLE (PURE)
<LTABLE (PURE)
<LTABLE (PURE) "The Cyclops misses, but the backwash almost knocks you over.">
<LTABLE (PURE) "The Cyclops rushes you, but runs into the wall.">>
<LTABLE (PURE)
<LTABLE (PURE) "The Cyclops sends you crashing to the floor, unconscious.">>
<LTABLE (PURE)
<LTABLE (PURE) "The Cyclops breaks your neck with a massive smash.">>
<LTABLE (PURE)
<LTABLE (PURE) "A quick punch, but it was only a glancing blow.">
<LTABLE (PURE) "A glancing blow from the Cyclops' fist.">>
<LTABLE (PURE)
<LTABLE (PURE) "The monster smashes his huge fist into your chest, breaking several
ribs.">
<LTABLE "The Cyclops almost knocks the wind out of you with a quick punch.">>
<LTABLE
<LTABLE "The Cyclops lands a punch that knocks the wind out of you.">
<LTABLE "Heedless of your weapons, the Cyclops tosses you against the rock
<LTABLE (PURE) "The Cyclops almost knocks the wind out of you with a quick punch.">>
<LTABLE (PURE)
<LTABLE (PURE) "The Cyclops lands a punch that knocks the wind out of you.">
<LTABLE (PURE) "Heedless of your weapons, the Cyclops tosses you against the rock
wall of the room.">>
<LTABLE
<LTABLE "The Cyclops grabs your " F-WEP ", tastes it, and throws it to the
<LTABLE (PURE)
<LTABLE (PURE) "The Cyclops grabs your " F-WEP ", tastes it, and throws it to the
ground in disgust.">
<LTABLE "The monster grabs you on the wrist, squeezes, and you drop your
<LTABLE (PURE) "The monster grabs you on the wrist, squeezes, and you drop your
" F-WEP " in pain.">>
<LTABLE
<LTABLE "The Cyclops seems unable to decide whether to broil or stew his
<LTABLE (PURE)
<LTABLE (PURE) "The Cyclops seems unable to decide whether to broil or stew his
dinner.">>
<LTABLE
<LTABLE "The Cyclops, no sportsman, dispatches his unconscious victim.">>>>
<LTABLE (PURE)
<LTABLE (PURE) "The Cyclops, no sportsman, dispatches his unconscious victim.">>>>
\
"messages for troll"
<GLOBAL TROLL-MELEE
<TABLE
<LTABLE
<LTABLE "The troll swings his axe, but it misses.">
<LTABLE "The troll's axe barely misses your ear.">
<LTABLE "The axe sweeps past as you jump aside.">
<LTABLE "The axe crashes against the rock, throwing sparks!">>
<LTABLE
<LTABLE "The flat of the troll's axe hits you delicately on the head, knocking
<TABLE (PURE)
<LTABLE (PURE)
<LTABLE (PURE) "The troll swings his axe, but it misses.">
<LTABLE (PURE) "The troll's axe barely misses your ear.">
<LTABLE (PURE) "The axe sweeps past as you jump aside.">
<LTABLE (PURE) "The axe crashes against the rock, throwing sparks!">>
<LTABLE (PURE)
<LTABLE (PURE) "The flat of the troll's axe hits you delicately on the head, knocking
you out.">>
<LTABLE
<LTABLE "The troll neatly removes your head.">
<LTABLE "The troll's axe stroke cleaves you from the nave to the chops.">
<LTABLE "The troll's axe removes your head.">>
<LTABLE
<LTABLE "The axe gets you right in the side. Ouch!">
<LTABLE "The flat of the troll's axe skins across your forearm.">
<LTABLE "The troll's swing almost knocks you over as you barely parry
<LTABLE (PURE)
<LTABLE (PURE) "The troll neatly removes your head.">
<LTABLE (PURE) "The troll's axe stroke cleaves you from the nave to the chops.">
<LTABLE (PURE) "The troll's axe removes your head.">>
<LTABLE (PURE)
<LTABLE (PURE) "The axe gets you right in the side. Ouch!">
<LTABLE (PURE) "The flat of the troll's axe skins across your forearm.">
<LTABLE (PURE) "The troll's swing almost knocks you over as you barely parry
in time.">
<LTABLE "The troll swings his axe, and it nicks your arm as you dodge.">>
<LTABLE
<LTABLE "The troll charges, and his axe slashes you on your " F-WEP " arm.">
<LTABLE "An axe stroke makes a deep wound in your leg.">
<LTABLE "The troll's axe swings down, gashing your shoulder.">>
<LTABLE
<LTABLE "The troll hits you with a glancing blow, and you are momentarily
<LTABLE (PURE) "The troll swings his axe, and it nicks your arm as you dodge.">>
<LTABLE (PURE)
<LTABLE (PURE) "The troll charges, and his axe slashes you on your " F-WEP " arm.">
<LTABLE (PURE) "An axe stroke makes a deep wound in your leg.">
<LTABLE (PURE) "The troll's axe swings down, gashing your shoulder.">>
<LTABLE (PURE)
<LTABLE (PURE) "The troll hits you with a glancing blow, and you are momentarily
stunned.">
<LTABLE "The troll swings; the blade turns on your armor but crashes
<LTABLE (PURE) "The troll swings; the blade turns on your armor but crashes
broadside into your head.">
<LTABLE "You stagger back under a hail of axe strokes.">
<LTABLE "The troll's mighty blow drops you to your knees.">>
<LTABLE
<LTABLE "The axe hits your " F-WEP " and knocks it spinning.">
<LTABLE "The troll swings, you parry, but the force of his blow knocks your " F-WEP " away.">
<LTABLE "The axe knocks your " F-WEP " out of your hand. It falls to the floor.">>
<LTABLE
<LTABLE "The troll hesitates, fingering his axe.">
<LTABLE "The troll scratches his head ruminatively: Might you be magically
<LTABLE (PURE) "You stagger back under a hail of axe strokes.">
<LTABLE (PURE) "The troll's mighty blow drops you to your knees.">>
<LTABLE (PURE)
<LTABLE (PURE) "The axe hits your " F-WEP " and knocks it spinning.">
<LTABLE (PURE) "The troll swings, you parry, but the force of his blow knocks your " F-WEP " away.">
<LTABLE (PURE) "The axe knocks your " F-WEP " out of your hand. It falls to the floor.">>
<LTABLE (PURE)
<LTABLE (PURE) "The troll hesitates, fingering his axe.">
<LTABLE (PURE) "The troll scratches his head ruminatively: Might you be magically
protected, he wonders?">>
<LTABLE
<LTABLE "Conquering his fears, the troll puts you to death.">>>>
<LTABLE (PURE)
<LTABLE (PURE) "Conquering his fears, the troll puts you to death.">>>>
\
"messages for thief"
<GLOBAL THIEF-MELEE
<TABLE
<LTABLE
<LTABLE "The thief stabs nonchalantly with his stiletto and misses.">
<LTABLE "You dodge as the thief comes in low.">
<LTABLE "You parry a lightning thrust, and the thief salutes you with
<TABLE (PURE)
<LTABLE (PURE)
<LTABLE (PURE) "The thief stabs nonchalantly with his stiletto and misses.">
<LTABLE (PURE) "You dodge as the thief comes in low.">
<LTABLE (PURE) "You parry a lightning thrust, and the thief salutes you with
a grim nod.">
<LTABLE "The thief tries to sneak past your guard, but you twist away.">>
<LTABLE
<LTABLE "Shifting in the midst of a thrust, the thief knocks you unconscious
<LTABLE (PURE) "The thief tries to sneak past your guard, but you twist away.">>
<LTABLE (PURE)
<LTABLE (PURE) "Shifting in the midst of a thrust, the thief knocks you unconscious
with the haft of his stiletto.">
<LTABLE "The thief knocks you out.">>
<LTABLE
<LTABLE "Finishing you off, the thief inserts his blade into your heart.">
<LTABLE "The thief comes in from the side, feints, and inserts the blade
<LTABLE (PURE) "The thief knocks you out.">>
<LTABLE (PURE)
<LTABLE (PURE) "Finishing you off, the thief inserts his blade into your heart.">
<LTABLE (PURE) "The thief comes in from the side, feints, and inserts the blade
into your ribs.">
<LTABLE "The thief bows formally, raises his stiletto, and with a wry grin,
<LTABLE (PURE) "The thief bows formally, raises his stiletto, and with a wry grin,
ends the battle and your life.">>
<LTABLE
<LTABLE "A quick thrust pinks your left arm, and blood starts to
<LTABLE (PURE)
<LTABLE (PURE) "A quick thrust pinks your left arm, and blood starts to
trickle down.">
<LTABLE "The thief draws blood, raking his stiletto across your arm.">
<LTABLE "The stiletto flashes faster than you can follow, and blood wells
<LTABLE (PURE) "The thief draws blood, raking his stiletto across your arm.">
<LTABLE (PURE) "The stiletto flashes faster than you can follow, and blood wells
from your leg.">
<LTABLE "The thief slowly approaches, strikes like a snake, and leaves
<LTABLE (PURE) "The thief slowly approaches, strikes like a snake, and leaves
you wounded.">>
<LTABLE
<LTABLE "The thief strikes like a snake! The resulting wound is serious.">
<LTABLE "The thief stabs a deep cut in your upper arm.">
<LTABLE "The stiletto touches your forehead, and the blood obscures your
<LTABLE (PURE)
<LTABLE (PURE) "The thief strikes like a snake! The resulting wound is serious.">
<LTABLE (PURE) "The thief stabs a deep cut in your upper arm.">
<LTABLE (PURE) "The stiletto touches your forehead, and the blood obscures your
vision.">
<LTABLE "The thief strikes at your wrist, and suddenly your grip is slippery
<LTABLE (PURE) "The thief strikes at your wrist, and suddenly your grip is slippery
with blood.">>
<LTABLE
<LTABLE "The butt of his stiletto cracks you on the skull, and you stagger
<LTABLE (PURE)
<LTABLE (PURE) "The butt of his stiletto cracks you on the skull, and you stagger
back.">
<LTABLE "The thief rams the haft of his blade into your stomach, leaving
<LTABLE (PURE) "The thief rams the haft of his blade into your stomach, leaving
you out of breath.">
<LTABLE "The thief attacks, and you fall back desperately.">>
<LTABLE
<LTABLE "A long, theatrical slash. You catch it on your " F-WEP ", but the
<LTABLE (PURE) "The thief attacks, and you fall back desperately.">>
<LTABLE (PURE)
<LTABLE (PURE) "A long, theatrical slash. You catch it on your " F-WEP ", but the
thief twists his knife, and the " F-WEP " goes flying.">
<LTABLE "The thief neatly flips your " F-WEP " out of your hands, and it drops
<LTABLE (PURE) "The thief neatly flips your " F-WEP " out of your hands, and it drops
to the floor.">
<LTABLE "You parry a low thrust, and your " F-WEP " slips out of your hand.">>
<LTABLE
<LTABLE "The thief, a man of superior breeding, pauses for a moment to consider the propriety of finishing you off.">
<LTABLE "The thief amuses himself by searching your pockets.">
<LTABLE "The thief entertains himself by rifling your pack.">>
<LTABLE
<LTABLE "The thief, forgetting his essentially genteel upbringing, cuts your
<LTABLE (PURE) "You parry a low thrust, and your " F-WEP " slips out of your hand.">>
<LTABLE (PURE)
<LTABLE (PURE) "The thief, a man of superior breeding, pauses for a moment to consider the propriety of finishing you off.">
<LTABLE (PURE) "The thief amuses himself by searching your pockets.">
<LTABLE (PURE) "The thief entertains himself by rifling your pack.">>
<LTABLE (PURE)
<LTABLE (PURE) "The thief, forgetting his essentially genteel upbringing, cuts your
throat.">
<LTABLE "The thief, a pragmatist, dispatches you as a threat to his
<LTABLE (PURE) "The thief, a pragmatist, dispatches you as a threat to his
livelihood.">>>>
@ -3918,7 +3973,7 @@ valueless." CR>
(ELSE <RFALSE>)>)>
<SET X .N>>>
<ROUTINE ROB (WHAT THIEF "OPTIONAL" (PROB <>) "AUX" N X (ROBBED? <>))
<ROUTINE ROB (WHAT WHERE "OPTIONAL" (PROB <>) "AUX" N X (ROBBED? <>))
<SET X <FIRST? .WHAT>>
<REPEAT ()
<COND (<NOT .X> <RETURN .ROBBED?>)>
@ -3927,14 +3982,12 @@ valueless." CR>
<NOT <FSET? .X ,SACREDBIT>>
<G? <GETP .X ,P?TVALUE> 0>
<OR <NOT .PROB> <PROB .PROB>>>
<MOVE .X .THIEF>
<MOVE .X .WHERE>
<FSET .X ,TOUCHBIT>
<COND (<EQUAL? .THIEF ,THIEF> <FSET .X ,INVISIBLE>)>
<COND (<EQUAL? .WHERE ,THIEF> <FSET .X ,INVISIBLE>)>
<SET ROBBED? T>)>
<SET X .N>>>
^/L
;"special-cased routines"
<ROUTINE V-DIAGNOSE ("AUX" (MS <FIGHT-STRENGTH <>>)
@ -3962,7 +4015,7 @@ valueless." CR>
(<EQUAL? .RS 2> <TELL "be killed by a serious wound">)
(<EQUAL? .RS 3> <TELL "survive one serious wound">)
(<G? .RS 3>
<TELL "strong enough to take several wounds.">)>
<TELL "survive several wounds">)>
<TELL "." CR>
<COND (<NOT <0? ,DEATHS>>
<TELL "You have been killed ">
@ -3991,7 +4044,8 @@ valueless." CR>
,SCORE>
<ROUTINE JIGS-UP (DESC "OPTIONAL" (PLAYER? <>))
<COND (,DEAD
<SETG WINNER ,ADVENTURER>
<COND (,DEAD
<TELL "|
It takes a talented person to be killed while already dead. YOU are such
a talent. Unfortunately, it takes a talented person to deal with it.
@ -4028,7 +4082,7 @@ disturbed. The objects in the dungeon appear indistinct, bleached of
color, even unreal." CR CR>
<SETG DEAD T>
<SETG TROLL-FLAG T>
<SETG GWIM-DISABLE T>
;<SETG GWIM-DISABLE T>
<SETG ALWAYS-LIT T>
<PUTP ,WINNER ,P?ACTION DEAD-FUNCTION>
<GOTO ,ENTRANCE-TO-HADES>)
@ -4041,7 +4095,8 @@ up completely, but you can't have everything." CR CR>
<FCLEAR ,TRAP-DOOR ,TOUCHBIT>
<SETG P-CONT <>>
<RANDOMIZE-OBJECTS>
<KILL-INTERRUPTS>)>>>
<KILL-INTERRUPTS>
<RFATAL>)>>>
<ROUTINE RANDOMIZE-OBJECTS ("AUX" (R <>) F N L)
<COND (<IN? ,LAMP ,WINNER>

View File

@ -291,8 +291,8 @@ sceptre is ornamented with colored enamel, and tapers to a sharp point.")
(FLAGS TAKEBIT CONTBIT BURNBIT)
(FDESC
"On the table is an elongated brown sack, smelling of hot peppers.")
(CAPACITY 15)
(SIZE 3)
(CAPACITY 9)
(SIZE 9)
(ACTION SANDWICH-BAG-FCN)>
<OBJECT TOOL-CHEST
@ -370,7 +370,8 @@ sceptre is ornamented with colored enamel, and tapers to a sharp point.")
(SYNONYM GARLIC CLOVE)
(DESC "clove of garlic")
(FLAGS TAKEBIT FOODBIT)
(ACTION GARLIC-F)>
(ACTION GARLIC-F)
(SIZE 4)>
<OBJECT TRIDENT
(IN ATLANTIS-ROOM)
@ -428,7 +429,7 @@ sceptre is ornamented with colored enamel, and tapers to a sharp point.")
(SYNONYM DOOR)
(ADJECTIVE HUGE STONE)
(DESC "stone door")
(FLAGS DOORBIT NDESCBIT)
(FLAGS DOORBIT NDESCBIT OPENBIT)
(ACTION BARROW-DOOR-FCN)>
<OBJECT BARROW
@ -573,8 +574,7 @@ sceptre is ornamented with colored enamel, and tapers to a sharp point.")
|
ZORK is a game of adventure, danger, and low cunning. In it you
will explore some of the most amazing territory ever seen by mortals.
No computer should be without one!\"|
")
No computer should be without one!\"")
(SIZE 2)>
<OBJECT LEAK
@ -636,7 +636,7 @@ forward to was a dead-end job as a doctor. Now I have a promising
future and make really big Zorkmids.\"|
|
GUE Tech can't promise these fantastic results to everyone. But when
you earn your degree from GUE Tech, your future will be brighter.|" )>
you earn your degree from GUE Tech, your future will be brighter." )>
<OBJECT MIRROR-2
(IN MIRROR-ROOM-2)
@ -946,7 +946,7 @@ southwest, is marked \"To Stone Barrow\".")>
(FLAGS READBIT TAKEBIT BURNBIT)
(SIZE 2)
(TEXT
" !!!! FROBOZZ MAGIC BOAT COMPANY !!!!|
" !!!!FROBOZZ MAGIC BOAT COMPANY!!!!|
|
Hello, Sailor!|
|
@ -963,8 +963,7 @@ milliseconds from date of purchase or until first used, whichever comes first.|
|
Warning:|
This boat is made of thin plastic.|
Good Luck!|
" )>
Good Luck!" )>
<OBJECT THIEF
(IN ROUND-ROOM)
@ -1020,18 +1019,19 @@ feet wide at the top. The lake created behind the dam has a volume
of 1.7 billion cubic feet, an area of 12 million square feet, and a
shore line of 36 thousand feet.|
|
We will now point out some of the more interesting features
of FCD#3 as we conduct you on a guided tour of the facilities:|
1) You start your tour here in the Dam Lobby. You will notice
on your right that...." )>
;" The construction of FCD#3 took 112 days from ground breaking to
The construction of FCD#3 took 112 days from ground breaking to
the dedication. It required a work force of 384 slaves, 34 slave
drivers, 12 engineers, 2 turtle doves, and a partridge in a pear
tree. The work was managed by a command team composed of 2345
bureaucrats, 2347 secretaries (at least two of whom can type),
bureaucrats, 2347 secretaries (at least two of whom could type),
12,256 paper shufflers, 52,469 rubber stampers, 245,193 red tape
processors, and nearly one million dead trees.|"
processors, and nearly one million dead trees.|
|
We will now point out some of the more interesting features
of FCD#3 as we conduct you on a guided tour of the facilities:|
|
1) You start your tour here in the Dam Lobby. You will notice
on your right that...." )>
<OBJECT TROLL
(IN TROLL-ROOM)
@ -1105,14 +1105,12 @@ excised them.")>
(FLAGS READBIT TAKEBIT)
(FDESC "Loosely attached to a wall is a small piece of paper.")
(TEXT
"|
Congratulations!|
"Congratulations!|
|
You are the privileged owner of ZORK I: The Great Underground Empire,
a self-contained and self-maintaining universe. If used and maintained
in accordance with normal operating practices for small universes, ZORK
will provide many months of trouble-free operation.|
|")>
will provide many months of trouble-free operation.")>
<OBJECT CLIMBABLE-CLIFF
(IN LOCAL-GLOBALS)
@ -1251,14 +1249,13 @@ have, as the mainspring seems sprung.")>
(IN TO STONE-BARROW IF WON-FLAG)
(ACTION WEST-HOUSE)
(FLAGS RLANDBIT ONBIT SACREDBIT)
(GLOBAL WHITE-HOUSE BOARD)>
(GLOBAL WHITE-HOUSE BOARD FOREST)>
<ROOM STONE-BARROW
(IN ROOMS)
(LDESC
"You are standing in front of a massive barrow of stone. In the east face
is a huge stone door which is open. You cannot see into the dark of the
tomb.")
is a huge stone door which is open. You cannot see into the dark of the tomb.")
(DESC "Stone Barrow")
(NE TO WEST-OF-HOUSE)
(ACTION STONE-BARROW-FCN)
@ -1278,7 +1275,7 @@ the trees.")
(NORTH TO PATH)
(SOUTH "The windows are all boarded.")
(FLAGS RLANDBIT ONBIT SACREDBIT)
(GLOBAL BOARDED-WINDOW BOARD WHITE-HOUSE)>
(GLOBAL BOARDED-WINDOW BOARD WHITE-HOUSE FOREST)>
<ROOM SOUTH-OF-HOUSE
(IN ROOMS)
@ -1293,7 +1290,7 @@ and all the windows are boarded.")
(SOUTH TO FOREST-3)
(NORTH "The windows are all boarded.")
(FLAGS RLANDBIT ONBIT SACREDBIT)
(GLOBAL BOARDED-WINDOW BOARD WHITE-HOUSE)>
(GLOBAL BOARDED-WINDOW BOARD WHITE-HOUSE FOREST)>
<ROOM EAST-OF-HOUSE
(IN ROOMS)
@ -1307,7 +1304,7 @@ and all the windows are boarded.")
(IN TO KITCHEN IF KITCHEN-WINDOW IS OPEN)
(ACTION EAST-HOUSE)
(FLAGS RLANDBIT ONBIT SACREDBIT)
(GLOBAL WHITE-HOUSE KITCHEN-WINDOW)>
(GLOBAL WHITE-HOUSE KITCHEN-WINDOW FOREST)>
<ROOM FOREST-1
(IN ROOMS)
@ -2466,7 +2463,7 @@ shaft is a metal framework to which a heavy iron chain is attached.")
<ROOM SMELLY-ROOM ;"was SMELL"
(IN ROOMS)
(LDESC
"This is a small non-descript room. However, from the direction
"This is a small nondescript room. However, from the direction
of a small descending staircase a foul odor can be detected. To the
south is a narrow tunnel.")
(DESC "Smelly Room")
@ -2567,7 +2564,7 @@ passage. In the shaft can be seen a heavy iron chain.")
<ROOM MINE-1 ;"was MINE1"
(IN ROOMS)
(LDESC "This is a non-descript part of a coal mine.")
(LDESC "This is a nondescript part of a coal mine.")
(DESC "Coal Mine")
(NORTH TO GAS-ROOM)
(EAST TO MINE-1)
@ -2576,7 +2573,7 @@ passage. In the shaft can be seen a heavy iron chain.")
<ROOM MINE-2 ;"was MINE2"
(IN ROOMS)
(LDESC "This is a non-descript part of a coal mine.")
(LDESC "This is a nondescript part of a coal mine.")
(DESC "Coal Mine")
(NORTH TO MINE-2)
(SOUTH TO MINE-1)
@ -2585,7 +2582,7 @@ passage. In the shaft can be seen a heavy iron chain.")
<ROOM MINE-3 ;"was MINE3"
(IN ROOMS)
(LDESC "This is a non-descript part of a coal mine.")
(LDESC "This is a nondescript part of a coal mine.")
(DESC "Coal Mine")
(SOUTH TO MINE-3)
(SW TO MINE-4)
@ -2594,7 +2591,7 @@ passage. In the shaft can be seen a heavy iron chain.")
<ROOM MINE-4 ;"was MINE4"
(IN ROOMS)
(LDESC "This is a non-descript part of a coal mine.")
(LDESC "This is a nondescript part of a coal mine.")
(DESC "Coal Mine")
(NORTH TO MINE-3)
(WEST TO MINE-4)
@ -2621,17 +2618,17 @@ a small opening.")
;"RANDOM TABLES FOR WALK-AROUND"
<GLOBAL HOUSE-AROUND
<LTABLE WEST-OF-HOUSE NORTH-OF-HOUSE EAST-OF-HOUSE SOUTH-OF-HOUSE
<LTABLE (PURE) WEST-OF-HOUSE NORTH-OF-HOUSE EAST-OF-HOUSE SOUTH-OF-HOUSE
WEST-OF-HOUSE>>
<GLOBAL FOREST-AROUND
<LTABLE FOREST-1 FOREST-2 FOREST-3 PATH CLEARING FOREST-1>>
<LTABLE (PURE) FOREST-1 FOREST-2 FOREST-3 PATH CLEARING FOREST-1>>
<GLOBAL IN-HOUSE-AROUND
<LTABLE LIVING-ROOM KITCHEN ATTIC KITCHEN>>
<LTABLE (PURE) LIVING-ROOM KITCHEN ATTIC KITCHEN>>
<GLOBAL ABOVE-GROUND
<LTABLE WEST-OF-HOUSE NORTH-OF-HOUSE EAST-OF-HOUSE SOUTH-OF-HOUSE
<LTABLE (PURE) WEST-OF-HOUSE NORTH-OF-HOUSE EAST-OF-HOUSE SOUTH-OF-HOUSE
FOREST-1 FOREST-2 FOREST-3 PATH CLEARING GRATING-CLEARING
CANYON-VIEW>>

View File

@ -18,11 +18,6 @@
<CONSTANT C-RTN 2>
<ROUTINE DEMON (RTN TICK "AUX" CINT)
#DECL ((RTN) ATOM (TICK) FIX (CINT) <PRIMTYPE VECTOR>)
<PUT <SET CINT <INT .RTN T>> ,C-TICK .TICK>
.CINT>
<ROUTINE QUEUE (RTN TICK "AUX" CINT)
#DECL ((RTN) ATOM (TICK) FIX (CINT) <PRIMTYPE VECTOR>)
<PUT <SET CINT <INT .RTN>> ,C-TICK .TICK>
@ -52,8 +47,7 @@
<SET E <REST ,C-TABLE ,C-TABLELEN>>
<REPEAT ()
<COND (<==? .C .E>
<COND (<G? <SETG MOVES <+ ,MOVES 1>> 999>
<SETG MOVES 0>)>
<SETG MOVES <+ ,MOVES 1>>
<RETURN .FLG>)
(<NOT <0? <GET .C ,C-ENABLED?>>>
<SET TICK <GET .C ,C-TICK>>

View File

@ -64,52 +64,19 @@
<SETG P-CONT <>>
<SETG QUOTE-FLAG <>>
<COND (<EQUAL? ,WINNER ,PLAYER>
<TELL "You can't see any">
<TELL "You can't see any ">
<NOT-HERE-PRINT .PRSO?>
<TELL " here!" CR>)
(T
<TELL "The " D ,WINNER " seems confused. \"I don't see any">
<TELL "The " D ,WINNER " seems confused. \"I don't see any ">
<NOT-HERE-PRINT .PRSO?>
<TELL " here!\"" CR>)>
<RTRUE>>
<ROUTINE FIND-NOT-HERE (TBL PRSO? "AUX" M-F OBJ)
;"Here is where special-case code goes. <MOBY-FIND .TBL> returns
number of matches. If 1, then P-MOBY-FOUND is it. One may treat
the 0 and >1 cases alike or different. It doesn't matter. Always
return RFALSE (not handled) if you have resolved the problem."
<SET M-F <MOBY-FIND .TBL>>
;<COND (,DEBUG
<TELL "[Moby-found " N .M-F " objects" "]" CR>)>
<COND (<AND <G? .M-F 1>
<SET OBJ <GETP <1 .TBL> ,P?GLOBAL>>>
<SET M-F 1>
<SETG P-MOBY-FOUND .OBJ>)>
<COND (<==? 1 .M-F>
;<COND (,DEBUG <TELL "[Namely: " D ,P-MOBY-FOUND "]" CR>)>
<COND (.PRSO? <SETG PRSO ,P-MOBY-FOUND>)
(T <SETG PRSI ,P-MOBY-FOUND>)>
<RFALSE>)
(<NOT .PRSO?>
<TELL "You wouldn't find any">
<NOT-HERE-PRINT .PRSO?>
<TELL " there." CR>
<RTRUE>)
(T ,NOT-HERE-OBJECT)>>
<ROUTINE GLOBAL-NOT-HERE-PRINT (OBJ)
;<COND (,P-MULT <SETG P-NOT-HERE <+ ,P-NOT-HERE 1>>)>
<SETG P-CONT <>>
<SETG QUOTE-FLAG <>>
<TELL "You can't see any">
<COND (<EQUAL? .OBJ ,PRSO> <PRSO-PRINT>)
(T <PRSI-PRINT>)>
<TELL " here." CR>>
<ROUTINE NOT-HERE-PRINT (PRSO?)
<COND (,P-OFLAG
<COND (,P-XADJ <TELL " "> <PRINTB ,P-XADJN>)>
<COND (,P-XNAM <TELL " "> <PRINTB ,P-XNAM>)>)
<COND (,P-XADJ <PRINTB ,P-XADJN>)>
<COND (,P-XNAM <PRINTB ,P-XNAM>)>)
(.PRSO?
<BUFFER-PRINT <GET ,P-ITBL ,P-NC1> <GET ,P-ITBL ,P-NC1L> <>>)
(T
@ -153,7 +120,20 @@
(ACTION SAILOR-FCN)>
<ROUTINE SAILOR-FCN ()
<COND (<VERB? HELLO>
<COND (<VERB? TELL>
<SETG P-CONT <>>
<SETG QUOTE-FLAG <>>
<TELL "You can't talk to the sailor that way." CR>)
(<VERB? EXAMINE>
%<COND (<==? ,ZORK-NUMBER 3>
'<COND (<NOT <FSET? ,VIKING-SHIP ,INVISIBLE>>
<TELL
"He looks like a sailor." CR>
<RTRUE>)>)
(ELSE T)>
<TELL
"There is no sailor to be seen." CR>)
(<VERB? HELLO>
<SETG HS <+ ,HS 1>>
%<COND (<==? ,ZORK-NUMBER 3>
'<COND (<NOT <FSET? ,VIKING-SHIP ,INVISIBLE>>
@ -169,16 +149,17 @@ off toward the west, singing a lively, but somewhat uncouth, sailor song." CR>
<COND (,SHIP-GONE
<TELL "Nothing happens anymore." CR>)
(T
<TELL "Nothing happens yet." CR>)>)>)
<TELL "Nothing happens yet." CR>)>)
(T <TELL "Nothing happens here." CR>)>)
(T
'<NULL-F>)>
<COND (<0? <MOD ,HS 20>>
<TELL "You seem to be repeating yourself." CR>)
(<0? <MOD ,HS 10>>
<TELL
'<COND (<0? <MOD ,HS 20>>
<TELL
"You seem to be repeating yourself." CR>)
(<0? <MOD ,HS 10>>
<TELL
"I think that phrase is getting a bit worn out." CR>)
(T
<TELL "Nothing happens here." CR>)>)>>
(T
<TELL "Nothing happens here." CR>)>)>)>>
<OBJECT GROUND
(IN GLOBAL-OBJECTS)
@ -258,6 +239,10 @@ you!" CR>)
<JIGS-UP "If you insist.... Poof, you're dead!">)
(T
<TELL "Suicide is not the answer." CR>)>)
(<VERB? THROW>
<COND (<==? ,PRSO ,ME>
<TELL
"Why don't you just walk like normal people?" CR>)>)
(<VERB? TAKE>
<TELL "How romantic!" CR>)
(<VERB? EXAMINE>
@ -265,11 +250,19 @@ you!" CR>)
'(<EQUAL? ,HERE <LOC ,MIRROR-1> <LOC ,MIRROR-2>>
<TELL
"Your image in the mirror looks tired." CR>))
(<==? ,ZORK-NUMBER 3>
'(,INVIS
<TELL
"A good trick, as you are currently invisible." CR>))
(T
'(<NULL-F> <RTRUE>))>
(T
<TELL
"That's difficult unless your eyes are prehensile." CR>)>)>>
%<COND (<==? ,ZORK-NUMBER 3>
'<TELL
"What you can see looks pretty much as usual, sorry to say." CR>)
(ELSE
'<TELL
"That's difficult unless your eyes are prehensile." CR>)>)>)>>
<OBJECT ADVENTURER
(SYNONYM ADVENTURER)
@ -280,9 +273,9 @@ you!" CR>)
<OBJECT PATHOBJ
(IN GLOBAL-OBJECTS)
(SYNONYM PASSAGE CRAWLWAY TRAIL PATH)
(SYNONYM TRAIL PATH)
(ADJECTIVE FOREST NARROW LONG WINDING)
(DESC "way")
(DESC "passage")
(FLAGS NDESCBIT)
(ACTION PATH-OBJECT)>

View File

@ -49,9 +49,6 @@
<MAPRET <FORM PRINT .E>>)
(ELSE <ERROR UNKNOWN-TYPE .E>)>>>>>
<ROUTINE PRINTA (O)
<TELL "a " D .O>>
<DEFMAC VERB? ("ARGS" ATMS)
<MULTIFROB PRSA .ATMS>>
@ -64,8 +61,6 @@
<DEFMAC ROOM? ("ARGS" ATMS)
<MULTIFROB HERE .ATMS>>
<ZSTR-OFF>
<DEFINE MULTIFROB (X ATMS "AUX" (OO (OR)) (O .OO) (L ()) ATM)
<REPEAT ()
<COND (<EMPTY? .ATMS>
@ -114,8 +109,6 @@
(ELSE <FORM GVAL .ATM>)>>
!.O)>>>
<ZSTR-ON>
<DEFMAC RFATAL ()
'<PROG () <PUSH 2> <RSTACK>>>

132
gmain.zil
View File

@ -2,6 +2,8 @@
The ZORK Trilogy
started on 7/28/83 by MARC"
<CONSTANT SERIAL 0>
<GLOBAL PLAYER <>>
<GLOBAL P-WON <>>
@ -29,15 +31,39 @@
;"GO now lives in SPECIAL.ZIL"
<ROUTINE MAIN-LOOP ("AUX" ICNT OCNT NUM CNT OBJ TBL V PTBL OBJ1 TMP)
<REPEAT ()
<ROUTINE MAIN-LOOP ("AUX" TRASH)
<REPEAT ()
<SET TRASH <MAIN-LOOP-1>>>>
<ROUTINE MAIN-LOOP-1 ("AUX" ICNT OCNT NUM CNT OBJ TBL V PTBL OBJ1 TMP O I)
<SET CNT 0>
<SET OBJ <>>
<SET PTBL T>
<COND (<SETG P-WON <PARSER>>
<SET ICNT <GET ,P-PRSI ,P-MATCHLEN>>
<SET OCNT <GET ,P-PRSO ,P-MATCHLEN>>
<COND (<AND ,P-IT-OBJECT <ACCESSIBLE? ,P-IT-OBJECT>>
<SET TMP <>>
<REPEAT ()
<COND (<G? <SET CNT <+ .CNT 1>> .ICNT>
<RETURN>)
(T
<COND (<EQUAL? <GET ,P-PRSI .CNT> ,IT>
<PUT ,P-PRSI .CNT ,P-IT-OBJECT>
<SET TMP T>
<RETURN>)>)>>
<COND (<NOT .TMP>
<SET CNT 0>
<REPEAT ()
<COND (<G? <SET CNT <+ .CNT 1>> .OCNT>
<RETURN>)
(T
<COND (<EQUAL? <GET ,P-PRSO .CNT> ,IT>
<PUT ,P-PRSO .CNT ,P-IT-OBJECT>
<RETURN>)>)>>)>
<SET CNT 0>)>
<SET NUM
<COND (<0? <SET OCNT <GET ,P-PRSO ,P-MATCHLEN>>> .OCNT)
<COND (<0? .OCNT> .OCNT)
(<G? .OCNT 1>
<SET TBL ,P-PRSO>
<COND (<0? .ICNT> <SET OBJ <>>)
@ -50,7 +76,9 @@
.ICNT)
(T 1)>>
<COND (<AND <NOT .OBJ> <1? .ICNT>> <SET OBJ <GET ,P-PRSI 1>>)>
<COND (<==? ,PRSA ,V?WALK> <SET V <PERFORM ,PRSA ,PRSO>>)
<COND (<AND <==? ,PRSA ,V?WALK>
<NOT <ZERO? ,P-WALK-DIR>>>
<SET V <PERFORM ,PRSA ,PRSO>>)
(<0? .NUM>
<COND (<0? <BAND <GETB ,P-SYNTAX ,P-SBITS> ,P-SONUMS>>
<SET V <PERFORM ,PRSA>>
@ -86,45 +114,37 @@
(T
<COND (.PTBL <SET OBJ1 <GET ,P-PRSO .CNT>>)
(T <SET OBJ1 <GET ,P-PRSI .CNT>>)>
<SETG PRSO <COND (.PTBL .OBJ1) (T .OBJ)>>
<SETG PRSI <COND (.PTBL .OBJ) (T .OBJ1)>>
<COND (<OR <G? .NUM 1>
<EQUAL? <GET <GET ,P-ITBL ,P-NC1>
0>
,W?ALL>>
<COND (<EQUAL? .OBJ1
,NOT-HERE-OBJECT>
<SETG P-NOT-HERE
<+ ,P-NOT-HERE 1>>
<AGAIN>)
(<AND <VERB? TAKE>
,PRSI
<EQUAL? <GET <GET ,P-ITBL
,P-NC1>
0>
,W?ALL>
<NOT <IN? ,PRSO ,PRSI>>>
<AGAIN>)
(<AND <EQUAL? ,P-GETFLAGS
,P-ALL>
<VERB? TAKE>
<OR <AND <NOT <EQUAL?
<LOC .OBJ1>
,WINNER
,HERE>>
<NOT <FSET?
<LOC .OBJ1>
,SURFACEBIT>>>
<NOT <OR <FSET? .OBJ1
,TAKEBIT>
<FSET? .OBJ1
,TRYTAKEBIT>>>>>
<AGAIN>)
(T
<COND (<EQUAL? .OBJ1 ,IT>
<PRINTD ,P-IT-OBJECT>)
(T <PRINTD .OBJ1>)>
<TELL ": ">)>)>
<SET O <COND (.PTBL .OBJ1) (T .OBJ)>>
<SET I <COND (.PTBL .OBJ) (T .OBJ1)>>
;"multiple exceptions"
<COND (<OR <G? .NUM 1>
<EQUAL? <GET <GET ,P-ITBL ,P-NC1> 0> ,W?ALL>>
<SET V <LOC ,WINNER>>
<COND (<EQUAL? .O ,NOT-HERE-OBJECT>
<SETG P-NOT-HERE <+ ,P-NOT-HERE 1>>
<AGAIN>)
(<AND <VERB? TAKE>
.I
<EQUAL? <GET <GET ,P-ITBL ,P-NC1> 0> ,W?ALL>
<NOT <IN? .O .I>>>
<AGAIN>)
(<AND <EQUAL? ,P-GETFLAGS ,P-ALL>
<VERB? TAKE>
<OR <AND <NOT <EQUAL? <LOC .O> ,WINNER ,HERE .V>>
<NOT <EQUAL? <LOC .O> .I>>
<NOT <FSET? <LOC .O> ,SURFACEBIT>>>
<NOT <OR <FSET? .O ,TAKEBIT>
<FSET? .O ,TRYTAKEBIT>>>>>
<AGAIN>)
(ELSE
<COND (<EQUAL? .OBJ1 ,IT>
<PRINTD ,P-IT-OBJECT>)
(T <PRINTD .OBJ1>)>
<TELL ": ">)>)>
;"end multiple exceptions"
<SETG PRSO .O>
<SETG PRSI .I>
<SET TMP T>
<SET V <PERFORM ,PRSA ,PRSO ,PRSI>>
<COND (<==? .V ,M-FATAL> <RETURN>)>)>>)>
@ -132,7 +152,8 @@
;<COND (<==? <LOC ,WINNER> ,PRSO>
<SETG PRSO <>>)>
<SET V <APPLY <GETP <LOC ,WINNER> ,P?ACTION> ,M-END>>)>
<COND (<VERB? AGAIN WALK SAVE RESTORE SCORE VERSION ;WAIT> T)
;<COND (<VERB? ;AGAIN ;"WALK -- why was this here?"
SAVE RESTORE ;SCORE ;VERSION ;WAIT> T)
(T
<SETG L-PRSA ,PRSA>
<SETG L-PRSO ,PRSO>
@ -140,17 +161,16 @@
<COND (<==? .V ,M-FATAL> <SETG P-CONT <>>)>)
(T
<SETG P-CONT <>>)>
%<COND (<==? ,ZORK-NUMBER 3>
'<COND (<NOT ,CLEFT-QUEUED?>
<ENABLE <QUEUE I-CLEFT <+ 70 <RANDOM 70>>>>
<SETG CLEFT-QUEUED? T>)>)
(ELSE '<NULL-F>)>
<COND (,P-WON
<COND (<VERB? TELL BRIEF SUPER-BRIEF VERBOSE SAVE VERSION
QUIT RESTART SCORE SCRIPT UNSCRIPT RESTORE> T)
(T <SET V <CLOCKER>>)>)>>>
(T <SET V <CLOCKER>>)>)>>
<GLOBAL L-PRSA <>>
<GLOBAL L-PRSO <>>
<GLOBAL L-PRSI <>>
<GLOBAL P-MULT <>>
<GLOBAL P-NOT-HERE 0>
@ -172,7 +192,7 @@
<SET OO ,PRSO>
<SET OI ,PRSI>
<COND (<AND <EQUAL? ,IT .I .O>
<NOT <EQUAL? ,P-IT-LOC ,HERE>>>
<NOT <ACCESSIBLE? ,P-IT-OBJECT>>>
<TELL "I don't see what you are referring to." CR>
<RFATAL>)>
<COND (<==? .O ,IT> <SET O ,P-IT-OBJECT>)>
@ -180,8 +200,7 @@
<SETG PRSA .A>
<SETG PRSO .O>
<COND (<AND ,PRSO <NOT <EQUAL? ,PRSI ,IT>> <NOT <VERB? WALK>>>
<SETG P-IT-OBJECT ,PRSO>
<SETG P-IT-LOC ,HERE>)>
<SETG P-IT-OBJECT ,PRSO>)>
<SETG PRSI .I>
<COND (<AND <EQUAL? ,NOT-HERE-OBJECT ,PRSO ,PRSI>
<SET V <NOT-HERE-OBJECT-F>>> .V)
@ -225,7 +244,7 @@
<SET OO ,PRSO>
<SET OI ,PRSI>
<COND (<AND <EQUAL? ,IT .I .O>
<NOT <EQUAL? ,P-IT-LOC ,HERE>>>
<NOT <ACCESSIBLE? ,P-IT-OBJECT>>>
<TELL "I don't see what you are referring to." CR>
<RFATAL>)>
<COND (<==? .O ,IT> <SET O ,P-IT-OBJECT>)>
@ -233,8 +252,7 @@
<SETG PRSA .A>
<SETG PRSO .O>
<COND (<AND ,PRSO <NOT <VERB? WALK>>>
<SETG P-IT-OBJECT ,PRSO>
<SETG P-IT-LOC ,HERE>)>
<SETG P-IT-OBJECT ,PRSO>)>
<SETG PRSI .I>
<COND (<AND <EQUAL? ,NOT-HERE-OBJECT ,PRSO ,PRSI>
<SET V <D-APPLY "Not Here" ,NOT-HERE-OBJECT-F>>> .V)

File diff suppressed because it is too large Load Diff

View File

@ -6,10 +6,16 @@
"Buzzwords, Prepositions and Directions"
<BUZZ A AN THE IS AND OF THEN ALL ONE BUT EXCEPT \. \, \" YES NO Y HERE
FEEBLE FUMBLE FEAR FILCH FREEZE FALL FRY FLUORESCE
FERMENT FIERCE FLOAT FIREPROOF FENCE FUDGE FANTASIZE
FROTZ OZMOO>
<BUZZ AGAIN G OOPS>
<BUZZ A AN THE IS AND OF THEN ALL ONE BUT EXCEPT \. \, \" YES NO Y HERE>
<COND (<==? ,ZORK-NUMBER 2>
<BUZZ FEEBLE FUMBLE FEAR FILCH FREEZE FALL FRY FLUORESCE
FERMENT FIERCE FLOAT FIREPROOF FENCE FUDGE FANTASIZE
FROTZ OZMOO>)
(<==? ,ZORK-NUMBER 3>
<BUZZ FROTZ OZMOO>)>
<SYNONYM WITH USING THROUGH THRU>
<SYNONYM IN INSIDE INTO>
@ -62,7 +68,13 @@
<SYNTAX $VERIFY = V-VERIFY>
;<SYNTAX DEBUG = V-DEBUG>
<SYNTAX \#RANDOM OBJECT = V-RANDOM>
<SYNTAX \#COMMAND = V-COMMAND-FILE>
<SYNTAX \#RECORD = V-RECORD>
<SYNTAX \#UNRECORD = V-UNRECORD>
^L
@ -71,15 +83,16 @@
<SYNTAX ACTIVATE OBJECT (FIND LIGHTBIT)
(HELD CARRIED ON-GROUND IN-ROOM) = V-LAMP-ON>
<SYNTAX AGAIN = V-AGAIN>
<SYNONYM AGAIN G>
<SYNTAX ANSWER = V-ANSWER>
<SYNTAX ANSWER OBJECT = V-REPLY>
<SYNONYM ANSWER REPLY>
<SYNTAX APPLY OBJECT TO OBJECT = V-PUT PRE-PUT>
<COND (<==? ,ZORK-NUMBER 2>
<SYNTAX ATTACK OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM)
= V-ATTACK>)>
<SYNTAX ATTACK OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM)
WITH OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE) = V-ATTACK>
<SYNONYM ATTACK FIGHT HURT INJURE HIT>
@ -114,9 +127,9 @@
<SYNTAX CHOMP = V-CHOMP>
<SYNONYM CHOMP LOSE BARF>
<SYNTAX CLIMB UP = V-CLIMB-UP>
<SYNTAX CLIMB UP OBJECT (FIND RMUNGBIT) = V-CLIMB-UP>
<SYNTAX CLIMB UP OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-UP>
<SYNTAX CLIMB DOWN = V-CLIMB-DOWN>
<SYNTAX CLIMB DOWN OBJECT (FIND RMUNGBIT) = V-CLIMB-DOWN>
<SYNTAX CLIMB DOWN OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-DOWN>
<SYNTAX CLIMB OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-FOO>
<SYNTAX CLIMB IN OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-BOARD PRE-BOARD>
@ -149,6 +162,7 @@
<SYNTAX DESTROY IN OBJECT (ON-GROUND IN-ROOM HELD CARRIED) = V-OPEN>
<SYNONYM DESTROY DAMAGE BREAK BLOCK SMASH>
<SYNTAX DIG IN OBJECT (ON-GROUND IN-ROOM) = V-DIG>
<SYNTAX DIG IN OBJECT (ON-GROUND IN-ROOM)
WITH OBJECT (FIND TOOLBIT) (HELD CARRIED HAVE) = V-DIG>
<SYNTAX DIG OBJECT (ON-GROUND IN-ROOM)
@ -168,7 +182,6 @@
<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-ON PRE-PUT>
<SYNONYM DROP RELEASE>
<SYNTAX EAT OBJECT (FIND FOODBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE)
= V-EAT>
@ -217,11 +230,9 @@
TO OBJECT (FIND ACTORBIT) (ON-GROUND) = V-GIVE PRE-GIVE>
<SYNTAX GIVE OBJECT (FIND ACTORBIT) (ON-GROUND)
OBJECT (MANY HELD HAVE) = V-SGIVE PRE-SGIVE>
<SYNTAX HAND OBJECT (MANY HELD HAVE)
TO OBJECT (FIND ACTORBIT) (ON-GROUND) = V-GIVE PRE-GIVE>
<SYNTAX HAND OBJECT (FIND ACTORBIT) (ON-GROUND)
OBJECT (MANY HELD HAVE) = V-SGIVE PRE-SGIVE>
<SYNONYM GIVE DONATE OFFER FEED>
<COND (<N==? ,ZORK-NUMBER 3>
<SYNONYM GIVE HAND>)>
<SYNTAX HATCH OBJECT = V-HATCH>
@ -235,9 +246,6 @@
<SYNTAX INFLAT OBJECT WITH
OBJECT (FIND TOOLBIT) (ON-GROUND IN-ROOM HELD CARRIED) = V-INFLATE>
<SYNTAX IS OBJECT IN OBJECT = V-IS-IN>
<SYNTAX IS OBJECT ON OBJECT = V-IS-IN>
<SYNTAX JUMP = V-LEAP>
<SYNTAX JUMP OVER OBJECT = V-LEAP>
<SYNTAX JUMP ACROSS OBJECT = V-LEAP>
@ -249,6 +257,10 @@
<SYNTAX KICK OBJECT = V-KICK>
<SYNONYM KICK TAUNT>
<COND (<==? ,ZORK-NUMBER 2>
<SYNTAX KILL OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM)
= V-ATTACK>)>
<SYNTAX KILL OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM)
WITH OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE) = V-ATTACK>
<SYNONYM KILL MURDER SLAY DISPATCH>
@ -309,6 +321,8 @@
<SYNONYM MELT LIQUIFY>
<SYNTAX MOVE OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
<SYNTAX MOVE OBJECT (ON-GROUND IN-ROOM) OBJECT = V-PUSH-TO>
<SYNTAX MOVE OBJECT (ON-GROUND IN-ROOM) TO OBJECT = V-PUSH-TO>
<SYNTAX MOVE OBJECT (HELD MANY HAVE) IN OBJECT = V-PUT PRE-PUT>
<SYNTAX MOVE OBJECT WITH OBJECT (FIND TOOLBIT) = V-TURN PRE-TURN>
<SYNTAX ROLL UP OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
@ -418,7 +432,6 @@
<SYNTAX SKIP = V-SKIP>
<SYNONYM SKIP HOP>
;<SYNTAX SLIDE OBJECT = V-PUSH>
<SYNTAX SLIDE OBJECT UNDER OBJECT = V-PUT-UNDER>
<SYNTAX SLIDE OBJECT (IN-ROOM ON-GROUND) OBJECT = V-PUSH-TO>
<SYNTAX SLIDE OBJECT (IN-ROOM ON-GROUND) TO OBJECT = V-PUSH-TO>
@ -445,6 +458,7 @@
<SYNTAX SWIM = V-SWIM>
<SYNTAX SWIM IN OBJECT = V-SWIM>
<SYNTAX SWIM ACROSS OBJECT = V-SWIM>
<SYNONYM SWIM BATHE WADE>
<SYNTAX SWING OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE) = V-SWING>
@ -454,7 +468,7 @@
<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>
<SYNTAX TAKE OUT OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-DISEMBARK>
<SYNTAX TAKE OUT OBJECT (FIND RMUNGBIT) (ON-GROUND IN-ROOM) = V-DISEMBARK>
<SYNTAX TAKE ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
<SYNTAX TAKE UP OBJECT (FIND RMUNGBIT) = V-STAND>
<SYNTAX TAKE OBJECT (FIND TAKEBIT) (CARRIED IN-ROOM MANY)
@ -466,6 +480,7 @@
<SYNONYM TAKE GET HOLD CARRY REMOVE GRAB CATCH>
<SYNTAX TELL OBJECT (FIND ACTORBIT) (IN-ROOM) = V-TELL>
<SYNTAX TELL OBJECT (FIND ACTORBIT) (IN-ROOM) ABOUT OBJECT = V-TELL>
<SYNONYM TELL ASK>
<SYNTAX THROW OBJECT (HELD CARRIED HAVE)
@ -488,8 +503,7 @@
<SYNONYM TREASURE TEMPLE>
<SYNTAX TURN OBJECT (FIND TURNBIT) (HELD CARRIED ON-GROUND IN-ROOM)
WITH OBJECT (FIND TOOLBIT) (ON-GROUND IN-ROOM HELD CARRIED HAVE)
= V-TURN PRE-TURN>
WITH OBJECT (FIND RMUNGBIT) = V-TURN PRE-TURN>
<SYNTAX TURN ON OBJECT (FIND LIGHTBIT)
(HELD CARRIED ON-GROUND IN-ROOM) = V-LAMP-ON>
<SYNTAX TURN ON OBJECT WITH OBJECT (HAVE) = V-LAMP-ON>
@ -497,7 +511,6 @@
(HELD CARRIED ON-GROUND IN-ROOM TAKE HAVE) = V-LAMP-OFF>
<SYNTAX TURN OBJECT (FIND TURNBIT) TO OBJECT = V-TURN PRE-TURN>
<SYNTAX TURN OBJECT (FIND TURNBIT) FOR OBJECT = V-TURN PRE-TURN>
;<SYNTAX TURN OBJECT (FIND TURNBIT) = V-TURN PRE-TURN>
<SYNONYM TURN SET FLIP SHUT>
<SYNTAX UNLOCK OBJECT (ON-GROUND IN-ROOM) WITH OBJECT
@ -515,6 +528,7 @@
<SYNTAX WAKE UP OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) = V-ALARM>
<SYNONYM WAKE AWAKE SURPRISE STARTLE>
<SYNTAX WALK = V-WALK-AROUND>
<SYNTAX WALK OBJECT = V-WALK>
<SYNTAX WALK AWAY OBJECT = V-WALK>
<SYNTAX WALK IN OBJECT = V-THROUGH>
@ -529,6 +543,7 @@
<SYNTAX WAVE OBJECT (HELD CARRIED TAKE HAVE) = V-WAVE>
<SYNTAX WAVE OBJECT (HELD CARRIED TAKE HAVE) AT OBJECT = V-WAVE>
<SYNTAX WAVE AT OBJECT = V-WAVE>
<SYNONYM WAVE BRANDISH>
<SYNTAX WEAR OBJECT = V-WEAR>

View File

@ -1,4 +1,4 @@
"Generic VERBS file for
"Generic VERBS file for
The ZORK Trilogy
started on 7/25/83 by SEM"
@ -22,7 +22,7 @@
<ROUTINE V-SUPER-BRIEF ()
<SETG SUPER-BRIEF T>
<TELL "Super-brief descriptions." CR>>
<TELL "Superbrief descriptions." CR>>
;"V-DIAGNOSE is in ACTIONS.ZIL"
@ -30,13 +30,33 @@
<COND (<FIRST? ,WINNER> <PRINT-CONT ,WINNER>)
(T <TELL "You are empty-handed." CR>)>>
<ROUTINE V-QUIT ("OPTIONAL" (ASK? T) "AUX" SCOR)
<ROUTINE FINISH ("AUX" WRD)
<V-SCORE>
<COND (<OR <AND .ASK?
<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>
<SET WRD <GET ,P-LEXV 1>>
<COND (<EQUAL? .WRD ,W?RESTART>
<RESTART>
<TELL "Failed." CR>)
(<EQUAL? .WRD ,W?RESTORE>
<COND (<RESTORE>
<TELL "Ok." CR>)
(T
<TELL "Failed." CR>)>)
(<EQUAL? .WRD ,W?QUIT ,W?Q>
<QUIT>)>>>
<ROUTINE V-QUIT ("AUX" SCOR)
<V-SCORE>
<TELL
"Do you wish to leave the game? (Y is affirmative): ">
<YES?>>
<NOT .ASK?>>
<COND (<YES?>
<QUIT>)
(ELSE <TELL "Ok." CR>)>>
@ -78,19 +98,19 @@
<ROUTINE V-VERSION ("AUX" (CNT 17))
%<COND (<==? ,ZORK-NUMBER 1>
'<TELL "ZORK I: The Great Underground Empire|
Copyright (c) 1981, 1982, 1983 Infocom, Inc. ">)
Infocom interactive fiction - a fantasy story|
Copyright (c) 1981, 1982, 1983, 1984, 1985, 1986">)
(<==? ,ZORK-NUMBER 2>
'<TELL "ZORK II: The Wizard of Frobozz|
***RENOVATED VERSION***|
Copyright (c) 1981, 1982, 1983 Infocom, Inc. ">)
(T
Infocom interactive fiction - a fantasy story|
Copyright (c) 1981, 1982, 1983, 1986">)
(<==? ,ZORK-NUMBER 3>
'<TELL "ZORK III: The Dungeon Master|
Copyright (c) 1982, 1983 Infocom, Inc. ">)>
<TELL "All rights reserved." CR>
<COND (<NOT <==? <BAND <GETB 0 1> 8> 0>>
<TELL "Licensed to Tandy Corporation." CR>)>
Infocom interactive fiction - a fantasy story|
Copyright 1982, 1983, 1984, 1986">)>
<TELL " Infocom, Inc. All rights reserved." CR>
<TELL "ZORK is a registered trademark of Infocom, Inc.|
Revision ">
Release ">
<PRINTN <BAND <GET 0 1> *3777*>>
<TELL " / Serial number ">
<REPEAT ()
@ -107,6 +127,25 @@ Revision ">
(T
<TELL CR "** Disk Failure **" CR>)>>
<ROUTINE V-COMMAND-FILE ()
<DIRIN 1>
<RTRUE>>
<ROUTINE V-RANDOM ()
<COND (<NOT <EQUAL? ,PRSO ,INTNUM>>
<TELL "Illegal call to #RND." CR>)
(T
<RANDOM <- 0 ,P-NUMBER>>
<RTRUE>)>>
<ROUTINE V-RECORD ()
<DIROUT 4>
<RTRUE>>
<ROUTINE V-UNRECORD ()
<DIROUT -4>
<RTRUE>>
^L
"Real Verb Functions"
@ -114,25 +153,6 @@ Revision ">
<ROUTINE V-ADVENT ()
<TELL "A hollow voice says \"Fool.\"" CR>>
<ROUTINE V-AGAIN ("AUX" (OBJ <>))
<COND (<EQUAL? ,L-PRSA ,V?WALK>
<PERFORM ,L-PRSA ,L-PRSO>)
(T
<COND (,L-PRSO
<COND (<OR <NOT <LOC ,L-PRSO>>
<FSET? ,L-PRSO ,INVISIBLE>>
<SET OBJ ,L-PRSO>)>)>
<COND (,L-PRSI
<COND (<OR <NOT <LOC ,L-PRSI>>
<FSET? ,L-PRSI ,INVISIBLE>>
<SET OBJ ,L-PRSI>)>)>
<COND (<AND .OBJ
<NOT <EQUAL? .OBJ ,PSEUDO-OBJECT ,ROOMS>>>
<TELL "You can't see the " D .OBJ " anymore." CR>
<RFATAL>)
(T
<PERFORM ,L-PRSA ,L-PRSO ,L-PRSI>)>)>>
<ROUTINE V-ALARM ()
<COND (<FSET? ,PRSO ,ACTORBIT>
<COND %<COND (<==? ,ZORK-NUMBER 1>
@ -181,7 +201,7 @@ Revision ">
<ROUTINE PRE-BOARD ("AUX" AV)
<SET AV <LOC ,WINNER>>
<COND %<COND (<==? ,ZORK-NUMBER 3>
'(<EQUAL? ,PRSO ,WATER-CHANNEL>
'(<EQUAL? ,PRSO ,WATER-CHANNEL ,TM-SEAT ,LAKE>
<RFALSE>))
(T
'(<NULL-F> <RTRUE>))>
@ -193,6 +213,9 @@ Revision ">
<TELL "You are already in the " D .AV "!" CR>)
(T
<RFALSE>)>)
(<EQUAL? ,PRSO ,WATER ,GLOBAL-WATER>
<PERFORM ,V?SWIM ,PRSO>
<RTRUE>)
(T
<TELL
"You have a theory on how to board a " D ,PRSO ", perhaps?" CR>)>
@ -214,8 +237,13 @@ Revision ">
<TELL
"Bug? Not in a flawless program like this! (Cough, cough)." CR>>
<ROUTINE TELL-NO-PRSI ()
<TELL "You didn't say with what!" CR>>
<ROUTINE PRE-BURN ()
<COND (<FLAMING? ,PRSI>
<COND (<NOT ,PRSI>
<TELL-NO-PRSI>)
(<FLAMING? ,PRSI>
<RFALSE>)
(T
<TELL "With a " D ,PRSI "??!?" CR>)>>
@ -251,17 +279,26 @@ Revision ">
<ROUTINE V-CLIMB-DOWN () <V-CLIMB-UP ,P?DOWN ,PRSO>>
<ROUTINE V-CLIMB-FOO ()
<V-CLIMB-UP ,P?UP ,PRSO>>
%<COND (<==? ,ZORK-NUMBER 3>
'<V-CLIMB-UP <COND (<EQUAL? ,PRSO ,ROPE ,GLOBAL-ROPE>
,P?DOWN)
(T ,P?UP)>
T>)
(ELSE
'<V-CLIMB-UP ,P?UP ,PRSO>)>>
<ROUTINE V-CLIMB-ON ()
<COND (<FSET? ,PRSO ,VEHBIT>
<PERFORM ,V?BOARD ,PRSO>
%<COND (<==? ,ZORK-NUMBER 3>
'<V-CLIMB-UP ,P?UP T>)
(ELSE
'<PERFORM ,V?BOARD ,PRSO>)>
<RTRUE>)
(T
<TELL "You can't climb onto the " D ,PRSO "." CR>)>>
<ROUTINE V-CLIMB-UP ("OPTIONAL" (DIR ,P?UP) (OBJ <>) "AUX" X TX)
<COND (<AND <NOT .OBJ> ,PRSO>
<COND (<AND .OBJ <NOT <EQUAL? ,PRSO ,ROOMS>>>
<SET OBJ ,PRSO>)>
<COND (<SET TX <GETPT ,HERE .DIR>>
<COND (.OBJ
@ -280,12 +317,19 @@ Revision ">
<RTRUE>)>)>
<DO-WALK .DIR>
<RTRUE>)
(<NOT .OBJ>
<TELL "You can't go that way." CR>)
(<AND .OBJ
<ZMEMQ ,W?WALL
<SET X <GETPT ,PRSO ,P?SYNONYM>> <PTSIZE .X>>>
<TELL "Climbing the walls is to no avail." CR>)
(%<COND (<==? ,ZORK-NUMBER 1>
'<AND <NOT <EQUAL? ,HERE ,PATH>>
<EQUAL? .OBJ <> ,TREE>
<GLOBAL-IN? ,TREE ,HERE>>)
(ELSE '<NULL-F>)>
<TELL "There are no climbable trees here." CR>
<RTRUE>)
(<EQUAL? .OBJ <> ,ROOMS>
<TELL "You can't go that way." CR>)
(T
<TELL "You can't do that!" CR>)>>
@ -361,15 +405,22 @@ Revision ">
<ROUTINE V-DIG ()
<COND (<NOT ,PRSI>
<SETG PRSI ,HANDS>)>
<COND (<EQUAL? ,PRSI ,SHOVEL>
<TELL "There's no reason to be digging here." CR>)
(<FSET? ,PRSI ,TOOLBIT>
%<COND (<==? ,ZORK-NUMBER 1>
'<COND (<EQUAL? ,PRSI ,SHOVEL>
<TELL "There's no reason to be digging here." CR>
<RTRUE>)>)
(ELSE T)>
<COND (<FSET? ,PRSI ,TOOLBIT>
<TELL "Digging with the " D ,PRSI " is slow and tedious." CR>)
(T
<TELL "Digging with a " D ,PRSI " is silly." CR>)>>
<ROUTINE V-DISEMBARK ()
<COND (<NOT <EQUAL? <LOC ,WINNER> ,PRSO>>
<COND (<AND <EQUAL? ,PRSO ,ROOMS>
<FSET? <LOC ,WINNER> ,VEHBIT>>
<PERFORM ,V?DISEMBARK <LOC ,WINNER>>
<RTRUE>)
(<NOT <EQUAL? <LOC ,WINNER> ,PRSO>>
<TELL "You're not in that!" CR>
<RFATAL>)
(<FSET? ,HERE ,RLANDBIT>
@ -444,13 +495,15 @@ Revision ">
<SET DRINK? T>
<SET NOBJ <LOC ,PRSO>>
<COND (<OR <IN? ,PRSO ,GLOBAL-OBJECTS>
<IN? ,PRSO ,LOCAL-GLOBALS>
<GLOBAL-IN? ,GLOBAL-WATER ,HERE>
<EQUAL? ,PRSO ,PSEUDO-OBJECT>>
<HIT-SPOT>)
(<NOT .NOBJ>
(<OR <NOT .NOBJ>
<NOT <ACCESSIBLE? .NOBJ>>>
<TELL
"You don't have any to drink." CR>)
(<NOT <IN? .NOBJ ,WINNER>>
"There isn't any water here." CR>)
(<AND <ACCESSIBLE? .NOBJ>
<NOT <IN? .NOBJ ,WINNER>>>
<TELL
"You have to be holding the " D .NOBJ " first." CR>)
(<NOT <FSET? .NOBJ ,OPENBIT>>
@ -463,10 +516,12 @@ Revision ">
"I don't think that the " D ,PRSO " would agree with you." CR>)>>
<ROUTINE HIT-SPOT ()
<COND (<AND <EQUAL? ,PRSO ,WATER>
<NOT <GLOBAL-IN? ,GLOBAL-WATER ,HERE>>>
<REMOVE-CAREFULLY ,PRSO>)>
<TELL
"Thank you very much. I was rather thirsty (from all this talking,
probably)." CR>
<REMOVE-CAREFULLY ,PRSO>>
probably)." CR>>
<ROUTINE V-ECHO ("AUX" LST MAX (ECH 0) CNT)
#DECL ((LST) <PRIMTYPE VECTOR> (MAX CNT ECH) FIX)
@ -536,7 +591,7 @@ probably)." CR>
<IN? ,COLLAR ,CERBERUS>>
<SETG SPELL-VICTIM ,CERBERUS>)>
<TELL
"The " D ,PRSO " floats serenely in mid-air." CR>)
"The " D ,PRSO " floats serenely in midair." CR>)
(<AND <EQUAL? ,SPELL-USED ,W?FRY>
<FSET? ,PRSO ,TAKEBIT>>
<SETG SPELL-HANDLED? T>
@ -554,8 +609,7 @@ probably)." CR>
<ROUTINE REMOVE-CAREFULLY (OBJ "AUX" OLIT)
<COND (<EQUAL? .OBJ ,P-IT-OBJECT>
<SETG P-IT-OBJECT <>>
<SETG P-IT-LOC <>>)>
<SETG P-IT-OBJECT <>>)>
<SET OLIT ,LIT>
<REMOVE .OBJ>
<SETG LIT <LIT? ,HERE>>
@ -576,20 +630,34 @@ probably)." CR>
<TELL "There's nothing special about the " D ,PRSO "." CR>)>>
<ROUTINE V-EXIT ()
<DO-WALK ,P?OUT>>
<COND (<AND <EQUAL? ,PRSO <> ,ROOMS>
<FSET? <LOC ,WINNER> ,VEHBIT>>
<PERFORM ,V?DISEMBARK <LOC ,WINNER>>
<RTRUE>)
(<AND ,PRSO <IN? ,WINNER ,PRSO>>
<PERFORM ,V?DISEMBARK ,PRSO>
<RTRUE>)
(ELSE
<DO-WALK ,P?OUT>)>>
<ROUTINE V-EXORCISE ()
<TELL "What a bizarre concept!" CR>>
<ROUTINE PRE-FILL ("AUX" TX)
<COND (<AND <NOT ,PRSI> <SET TX <GETPT ,HERE ,P?GLOBAL>>>
<COND (<ZMEMQB ,GLOBAL-WATER .TX <- <PTSIZE .TX> 1>>
<SETG PRSI ,GLOBAL-WATER>
<RFALSE>)
<COND (<NOT ,PRSI>
<SET TX <GETPT ,HERE ,P?GLOBAL>>
<COND (<AND .TX <ZMEMQB ,GLOBAL-WATER .TX <- <PTSIZE .TX> 1>>>
<PERFORM ,V?FILL ,PRSO ,GLOBAL-WATER>
<RTRUE>)
(<IN? ,WATER <LOC ,WINNER>>
<PERFORM ,V?FILL ,PRSO ,WATER>
<RTRUE>)
(T
<TELL "There is nothing to fill it with." CR>
<RTRUE>)>)>
<COND (<NOT <EQUAL? ,PRSI ,GLOBAL-WATER>>
<COND (<EQUAL? ,PRSI ,WATER>
<RFALSE>)
(<NOT <EQUAL? ,PRSI ,GLOBAL-WATER>>
<PERFORM ,V?PUT ,PRSI ,PRSO>
<RTRUE>)>>
@ -689,17 +757,6 @@ D ,PRSO "." CR>)>)
<ROUTINE V-INFLATE ()
<TELL "How can you inflate that?" CR>>
<ROUTINE V-IS-IN ()
<COND (<IN? ,PRSO ,PRSI>
<TELL "Yes, it is ">
<COND (<FSET? ,PRSI ,SURFACEBIT>
<TELL "on">)
(T
<TELL "in">)>
<TELL " the " D ,PRSI "." CR>)
(T
<TELL "No, it isn't." CR>)>>
<ROUTINE V-KICK () <HACK-HACK "Kicking the ">>
<ROUTINE V-KISS ()
@ -737,6 +794,9 @@ D ,PRSO "." CR>)>)
<SETG LIT <LIT? ,HERE>>
<CRLF>
<V-LOOK>)>)>)
(<FSET? ,PRSO ,BURNBIT>
<TELL
"If you wish to burn the " D ,PRSO ", you should say so." CR>)
(T
<TELL "You can't turn that on." CR>)>
<RTRUE>>
@ -817,6 +877,11 @@ killing yourself." CR CR>
<COND (<AND <FIRST? ,PRSO>
<PRINT-CONT ,PRSO>>
<RTRUE>)
%<COND (<==? ,ZORK-NUMBER 3>
'(<FSET? ,PRSO ,SURFACEBIT>
<TELL
"There is nothing on the " D ,PRSO "." CR>))
(ELSE '(<NULL-F> <RTRUE>))>
(T
<TELL "The " D ,PRSO " is empty." CR>)>)
(T
@ -937,13 +1002,21 @@ by knocking down the wall on the east of the room." CR>
(T
<TELL "You're not in anything!" CR>)>))
(T '(<NULL-F> T))>
(<FSET? <LOC ,WINNER> ,VEHBIT>
<PERFORM ,V?THROW ,PRSO>
<RTRUE>)
(T
<TELL "Huh?" CR>)>>
<ROUTINE V-PICK () <TELL "You can't pick that." CR>>
<ROUTINE V-PLAY ()
<TELL "That's silly!" CR>>
<COND (<FSET? ,PRSO ,ACTORBIT>
<TELL
"You become so engrossed in the role of the " D ,PRSO " that
you kill yourself, just as he might have done!" CR>
<JIGS-UP "">)
(ELSE <TELL "That's silly!" CR>)>>
<ROUTINE V-PLUG ()
<TELL "This has no effect." CR>>
@ -953,6 +1026,10 @@ by knocking down the wall on the east of the room." CR>
<REMOVE-CAREFULLY ,PRSO>
<COND (<FLAMING? ,PRSI>
<TELL "The " D ,PRSI " is extinguished." CR>
%<COND (<==? ,ZORK-NUMBER 2>
'<COND (<EQUAL? ,PRSI ,BINF-FLAG>
<SETG BINF-FLAG <>>)>)
(ELSE '<NULL-F>)>
<FCLEAR ,PRSI ,ONBIT>
<FCLEAR ,PRSI ,FLAMEBIT>)
(T
@ -1099,8 +1176,7 @@ by knocking down the wall on the east of the room." CR>
<SETG P-CONT <>>
<COND (<EQUAL? ,HERE ,MSTAIRS>
<CRLF>
<GOTO ,FRONT-DOOR>
<RTRUE>)
<GOTO ,FRONT-DOOR>)
(T
<TELL "Nothing happens." CR>)>
<RTRUE>)>)
@ -1108,14 +1184,14 @@ by knocking down the wall on the east of the room." CR>
'<COND (<NOT ,P-CONT>
<TELL "Say what?" CR>
<RTRUE>)>)>
<SETG QUOTE-FLAG <>>
<COND (<SET V <FIND-IN ,HERE ,ACTORBIT>>
<TELL "You must address the " D .V " directly." CR>
<SETG P-CONT <>>)
(<NOT <EQUAL? <GET ,P-LEXV ,P-CONT> ,W?HELLO>>
<SETG P-CONT <>>
<SETG P-CONT <>>
<TELL
"Talking to yourself is a sign of impending mental collapse." CR>)>
<SETG QUOTE-FLAG <>>
<RTRUE>>
<ROUTINE V-SEARCH ()
@ -1143,8 +1219,11 @@ by knocking down the wall on the east of the room." CR>
<COND (<FSET? ,PRSO ,OPENBIT>
<COND (<FIRST? ,PRSO>
<SHAKE-LOOP>
<TELL "The contents of the " D, PRSO " spills ">
<COND (<NOT <FSET? ,HERE ,RLANDBIT>>
<TELL "The contents of the " D, PRSO " spill ">
<COND (%<COND (<==? ,ZORK-NUMBER 3>
'<FSET? ,HERE ,NONLANDBIT>)
(ELSE
'<NOT <FSET? ,HERE ,RLANDBIT>>)>
<TELL "out and disappears">)
(T
<TELL "to the ground">)>
@ -1247,7 +1326,7 @@ D ,PRSO " with a weapon." CR>)
<==? ,ZORK-NUMBER 2>>
'(<GLOBAL-IN? ,GLOBAL-WATER ,HERE>
<TELL "Swimming isn't usually allowed in the ">
<COND (,PRSO
<COND (<NOT <EQUAL? ,PRSO ,WATER ,GLOBAL-WATER>>
<TELL D ,PRSO ".">)
(T
<TELL "dungeon.">)>
@ -1285,8 +1364,14 @@ D ,PRSO " with a weapon." CR>)
(,PRSI
<COND (<EQUAL? ,PRSI ,GROUND>
<SETG PRSI <>>
<RFALSE>)
(<NOT <EQUAL? ,PRSI <LOC ,PRSO>>>
<RFALSE>)>
%<COND (<==? ,ZORK-NUMBER 2>
'<COND (<EQUAL? ,PRSO ,DOOR-KEEPER>
<SETG PRSI <>>
<RFALSE>)>)
(ELSE
'<NULL-F>)>
<COND (<NOT <EQUAL? ,PRSI <LOC ,PRSO>>>
<TELL "The " D ,PRSO " isn't in the " D ,PRSI "." CR>)
(T
<SETG PRSI <>>
@ -1308,7 +1393,7 @@ D ,PRSO " with a weapon." CR>)
<SETG HERE <LOC ,WINNER>>)
(T
<TELL "The " D ,PRSO
" pauses for a moment, perhaps thinking that you should re-read
" pauses for a moment, perhaps thinking that you should reread
the manual." CR>)>)
(T
<TELL "You can't talk to the " D ,PRSO "!" CR>
@ -1318,52 +1403,40 @@ the manual." CR>)>)
<ROUTINE V-THROUGH ("OPTIONAL" (OBJ <>) "AUX" M)
#DECL ((OBJ) <OR OBJECT FALSE> (M) <PRIMTYPE VECTOR>)
<COND (<FSET? ,PRSO ,DOORBIT>
<DO-WALK <OTHER-SIDE ,PRSO>>
<COND (<AND <FSET? ,PRSO ,DOORBIT>
<SET M <OTHER-SIDE ,PRSO>>>
<DO-WALK .M>
<RTRUE>)
(<AND <NOT .OBJ> <FSET? ,PRSO ,VEHBIT>>
<PERFORM ,V?BOARD ,PRSO>
<RTRUE>)
(<AND <NOT .OBJ> <NOT <FSET? ,PRSO ,TAKEBIT>>>
<COND %<COND (<==? ,ZORK-NUMBER 2>
'(<AND ,SCOL-ROOM
<OR .OBJ <EQUAL? ,PRSO ,CURTAIN>>>
<SCOL-GO .OBJ>
<RTRUE>))
(T
'(<NULL-F> <RTRUE>))>
%<COND (<==? ,ZORK-NUMBER 2>
'(<AND <EQUAL? ,HERE ,DEPOSITORY>
<EQUAL? ,PRSO ,SNWL>
,SCOL-ROOM>
<SCOL-GO .OBJ>
<RTRUE>))
(T
'(<NULL-F> <RTRUE>))>
%<COND (<==? ,ZORK-NUMBER 2>
'(<AND <EQUAL? ,HERE ,SCOL-ACTIVE>
<EQUAL? ,PRSO
<GET <SET M <GET-WALL ,HERE>> 1>>>
<SETG SCOL-ROOM <GET .M 2>>
<SETG PRSO <GETP ,PRSO ,P?SIZE>>
<COND (.OBJ <SCOL-OBJ .OBJ 0 ,DEPOSITORY>)
(T
<SCOL-THROUGH 0 ,DEPOSITORY>)>
<RTRUE>))
(T
'(<NULL-F> <RTRUE>))>
%<COND (<==? ,ZORK-NUMBER 2>
'(<EQUAL? ,PRSO ,CURTAIN>
<TELL
(<OR .OBJ <NOT <FSET? ,PRSO ,TAKEBIT>>>
%<COND (<==? ,ZORK-NUMBER 2>
'<COND (<AND ,SCOL-ROOM
<OR .OBJ <EQUAL? ,PRSO ,CURTAIN>>>
<SCOL-GO .OBJ>
<RTRUE>)
(<AND <EQUAL? ,HERE ,DEPOSITORY>
<EQUAL? ,PRSO ,SNWL>
,SCOL-ROOM>
<SCOL-GO .OBJ>
<RTRUE>)
(<AND <EQUAL? ,HERE ,SCOL-ACTIVE>
<EQUAL? ,PRSO
<GET <SET M <GET-WALL ,HERE>> 1>>>
<SETG SCOL-ROOM <GET .M 2>>
<SETG PRSO <GETP ,PRSO ,P?SIZE>>
<COND (.OBJ <SCOL-OBJ .OBJ 0 ,DEPOSITORY>)
(T
<SCOL-THROUGH 0 ,DEPOSITORY>)>
<RTRUE>)
(<EQUAL? ,PRSO ,CURTAIN>
<TELL
"You can't go more than part way through the curtain." CR>
<RTRUE>))
(T
'(<NULL-F> <RTRUE>))>
(T
<TELL
"You hit your head against the " D ,PRSO " as you attempt this feat." CR>)>)
(.OBJ
<TELL "You can't do that!" CR>)
<RTRUE>)>)
(ELSE '<NULL-F>)>
<TELL
"You hit your head against the " D ,PRSO " as you attempt this feat." CR>)
(<IN? ,PRSO ,WINNER>
<TELL "That would involve quite a contortion!" CR>)
(T
@ -1374,15 +1447,17 @@ the manual." CR>)>)
<COND (<EQUAL? ,PRSI ,ME>
<TELL
"A terrific throw! The " D ,PRSO>
<SETG WINNER ,PLAYER>
<JIGS-UP " hits you squarely in the head. Normally,
this wouldn't do much damage, but by incredible mischance, you fall over
backwards trying to duck, and break your neck, justice being swift and
merciful in the Great Underground Empire.">)
(<FSET? ,PRSI ,ACTORBIT>
(<AND ,PRSI <FSET? ,PRSI ,ACTORBIT>>
<TELL
"The " D ,PRSI " ducks as the " D ,PRSO " flies by and crashes to the ground."
CR>)
(T <TELL "Thrown." CR>)>)>>
(T <TELL "Thrown." CR>)>)
(ELSE <TELL "Huh?" CR>)>>
<ROUTINE V-THROW-OFF ()
<TELL "You can't throw anything off of that!" CR>>
@ -1411,7 +1486,20 @@ CR>)
<TELL "Nothing happens." CR>)>>
<ROUTINE PRE-TURN ()
<COND (<NOT <FSET? ,PRSO ,TURNBIT>>
%<COND (<==? ,ZORK-NUMBER 3>
'<COND (<AND <EQUAL? ,PRSI <> ,ROOMS>
<EQUAL? ,PRSO ,DIAL ,TM-DIAL ,T-BAR>>
<TELL
"You should turn the " D ,PRSO " to something." CR>
<RTRUE>)>)
(ELSE T)>
<COND (%<COND (<==? ,ZORK-NUMBER 1>
'<AND <EQUAL? ,PRSI <> ,ROOMS>
<NOT <EQUAL? ,PRSO ,BOOK>>>)
(ELSE
'<EQUAL? ,PRSI <> ,ROOMS>)>
<TELL "Your bare hands don't appear to be enough." CR>)
(<NOT <FSET? ,PRSO ,TURNBIT>>
<TELL "You can't turn that!" CR>)>>
<ROUTINE V-TURN ()
@ -1471,6 +1559,7 @@ CR>)
<RFATAL>)>)>)
(<AND <NOT ,LIT>
<PROB 80>
<EQUAL? ,WINNER ,ADVENTURER>
<NOT <FSET? ,HERE ,NONLANDBIT>>>
<COND (,SPRAYED?
<TELL
@ -1495,8 +1584,9 @@ direction." CR>
<TELL "Use compass directions for movement." CR>>
<ROUTINE V-WALK-TO ()
<COND (<OR <IN? ,PRSO ,HERE>
<GLOBAL-IN? ,PRSO ,HERE>>
<COND (<AND ,PRSO
<OR <IN? ,PRSO ,HERE>
<GLOBAL-IN? ,PRSO ,HERE>>>
<TELL "It's here!" CR>)
(T
<TELL "You should supply a direction!" CR>)>>
@ -1556,7 +1646,7 @@ direction." CR>
detect a dim light from the east." CR>)>)
(T
'<NULL-F>)>
<RETURN <>>)>
<RFALSE>)>
<COND (<NOT <FSET? ,HERE ,TOUCHBIT>>
<FSET ,HERE ,TOUCHBIT>
<SET V? T>)>
@ -1571,7 +1661,10 @@ detect a dim light from the east." CR>)>)
<COND (<FSET? <SET AV <LOC ,WINNER>> ,VEHBIT>
<TELL ", in the " D .AV>)>
<CRLF>)>
<COND (<OR .LOOK? <NOT ,SUPER-BRIEF>>
<COND (%<COND (<==? ,ZORK-NUMBER 2>
'<OR .LOOK? <NOT ,SUPER-BRIEF> <EQUAL? ,HERE ,ZORK3>>)
(ELSE
'<OR .LOOK? <NOT ,SUPER-BRIEF>>)>
<SET AV <LOC ,WINNER>>
;<COND (<FSET? .AV ,VEHBIT>
<TELL "(You are in the " D .AV ".)" CR>)>
@ -1617,7 +1710,8 @@ long description (fdesc or ldesc), otherwise will print short."
<TELL "A " D .OBJ>
<COND (<FSET? .OBJ ,ONBIT>
<TELL " (providing light)">)
(<FSET? .OBJ ,WEARBIT>
(<AND <FSET? .OBJ ,WEARBIT>
<IN? .OBJ ,WINNER>>
<TELL " (being worn)">)>)>
%<COND (<==? ,ZORK-NUMBER 2>
'<COND (<AND <EQUAL? .OBJ ,SPELL-VICTIM>
@ -1665,8 +1759,19 @@ long description (fdesc or ldesc), otherwise will print short."
<SET INV? T>)
(ELSE
<REPEAT ()
<COND (<NOT .Y>
<RETURN>)
<COND %<COND (<==? ,ZORK-NUMBER 2>
'(<NOT .Y>
<COND (<AND <0? .LEVEL>
<==? ,SPELL? ,S-FANTASIZE>
<PROB 20>>
<TELL "There is a "
<PICK-ONE ,FANTASIES>
" here." CR>
<SET 1ST? <>>)>
<RETURN>))
(ELSE
'(<NOT .Y>
<RETURN>))>
(<EQUAL? .Y .AV> <SET PV? T>)
(<EQUAL? .Y ,WINNER>)
(<AND <NOT <FSET? .Y ,INVISIBLE>>
@ -1705,7 +1810,8 @@ long description (fdesc or ldesc), otherwise will print short."
<DESCRIBE-OBJECT .Y .V? .LEVEL>)
(<AND <FIRST? .Y> <SEE-INSIDE? .Y>>
<SET LEVEL <+ .LEVEL 1>> ;"not in Zork III"
<PRINT-CONT .Y .V? .LEVEL>)>)>
<PRINT-CONT .Y .V? .LEVEL>
<SET LEVEL <- .LEVEL 1>> ;"not in Zork III")>)>
<SET Y <NEXT? .Y>>>
<COND (<AND .1ST? .SHIT> <RFALSE>) (T <RTRUE>)>>
@ -1763,10 +1869,6 @@ for the final secret.\"" CR>)>)
<SCORE-UPD .TEMP>
<PUTP .OBJ ,P?VALUE 0>)>>
<ROUTINE FINISH ()
<V-SCORE>
<QUIT>>
<ROUTINE YES? ()
<PRINTI ">">
<READ ,P-INBUF ,P-LEXV>
@ -1844,6 +1946,7 @@ for the final secret.\"" CR>)>)
<RFALSE>)
(T
<MOVE ,PRSO ,WINNER>
<FCLEAR ,PRSO ,NDESCBIT>
<FSET ,PRSO ,TOUCHBIT>
%<COND (<==? ,ZORK-NUMBER 2>
'<COND (<EQUAL? ,SPELL? ,S-FILCH>
@ -1910,7 +2013,8 @@ for the final secret.\"" CR>)>)
<CONSTANT DEXITSTR 1>
<GLOBAL INDENTS
<TABLE ""
<TABLE (PURE)
""
" "
" "
" "
@ -1940,8 +2044,9 @@ for the final secret.\"" CR>)>)
<ROUTINE GOTO (RM "OPTIONAL" (V? T)
"AUX" (LB <FSET? .RM ,RLANDBIT>) (WLOC <LOC ,WINNER>)
(AV <>) OLIT)
(AV <>) OLIT OHERE)
<SET OLIT ,LIT>
<SET OHERE ,HERE>
<COND (<FSET? .WLOC ,VEHBIT>
<SET AV <GETP .WLOC ,P?VTYPE>>)>
<COND (<AND <NOT .LB>
@ -1967,8 +2072,20 @@ for the final secret.\"" CR>)>)
<NOT <FSET? ,HERE ,RLANDBIT>>
<NOT ,DEAD>
<FSET? .WLOC ,VEHBIT>>
<TELL
"The " D .WLOC " comes to a rest on the shore." CR CR>)>
%<COND (<==? ,ZORK-NUMBER 1>
'<TELL
"The " D .WLOC " comes to a rest on the shore." CR CR>)
(<==? ,ZORK-NUMBER 2>
'<COND (<EQUAL? .WLOC ,BALLOON>
<TELL
"The balloon lands." CR>)
(<FSET? .WLOC ,VEHBIT>
<TELL
"The " D .WLOC " comes to a stop." CR CR>)>)
(<==? ,ZORK-NUMBER 3>
'<COND (<FSET? .WLOC ,VEHBIT>
<TELL
"The " D .WLOC " comes to a stop." CR CR>)>)>)>
<COND (.AV
<MOVE .WLOC .RM>)
(T
@ -2004,18 +2121,21 @@ stumbled into an authentic grue lair!">))
<APPLY <GETP ,HERE ,P?ACTION> ,M-ENTER>
<SCORE-OBJ .RM>
<COND (<NOT <EQUAL? ,HERE .RM>> <RTRUE>)
(<NOT <EQUAL? ,ADVENTURER ,WINNER>>
(<AND <NOT <EQUAL? ,ADVENTURER ,WINNER>>
<IN? ,ADVENTURER .OHERE>>
<TELL "The " D ,WINNER " leaves the room." CR>)
(.V? <V-FIRST-LOOK>)>
%<COND (<==? ,ZORK-NUMBER 1>
'(<AND <EQUAL? ,HERE .OHERE>
;"no double description"
<EQUAL? ,HERE ,ENTRANCE-TO-HADES>>
<RTRUE>))
(ELSE
'(<NULL-F> <RTRUE>))>
(<AND .V?
<EQUAL? ,WINNER ,ADVENTURER>>
<V-FIRST-LOOK>)>
<RTRUE>)>>
;"0 -> no next, 1 -> success, 2 -> failed move"
<ROUTINE GO-NEXT (TBL "AUX" VAL)
<COND (<SET VAL <LKP ,HERE .TBL>>
<COND (<NOT <GOTO .VAL>> 2)
(T 1)>)>>
<ROUTINE LKP (ITM TBL "AUX" (CNT 0) (LEN <GET .TBL 0>))
<REPEAT ()
<COND (<G? <SET CNT <+ .CNT 1>> .LEN>
@ -2029,11 +2149,6 @@ stumbled into an authentic grue lair!">))
<SETG P-WALK-DIR .DIR>
<PERFORM ,V?WALK .DIR>>
<ROUTINE WORD-TYPE (OBJ WORD "AUX" SYNS)
<ZMEMQ .WORD
<SET SYNS <GETPT .OBJ ,P?SYNONYM>>
<- </ <PTSIZE .SYNS> 2> 1>>>
<ROUTINE GLOBAL-IN? (OBJ1 OBJ2 "AUX" TX)
<COND (<SET TX <GETPT .OBJ2 ,P?GLOBAL>>
<ZMEMQB .OBJ1 .TX <- <PTSIZE .TX> 1>>)>>
@ -2049,11 +2164,6 @@ stumbled into an authentic grue lair!">))
(<NOT <SET W <NEXT? .W>>>
<RETURN <>>)>>>
<ROUTINE IN-HERE? (OBJ)
<OR <IN? .OBJ ,HERE>
<GLOBAL-IN? .OBJ ,HERE>>>
<ROUTINE HELD? (CAN)
<REPEAT ()
<SET CAN <LOC .CAN>>
@ -2071,15 +2181,19 @@ stumbled into an authentic grue lair!">))
<RETURN .P>)>)>>>
<ROUTINE MUNG-ROOM (RM STR)
%<COND (<==? ,ZORK-NUMBER 2>
'<COND (<EQUAL? .RM ,INSIDE-BARROW>
<RFALSE>)>)
(ELSE T)>
<FSET .RM ,RMUNGBIT>
<PUTP .RM ,P?LDESC .STR>>
<ROUTINE THIS-IS-IT (OBJ)
<SETG P-IT-OBJECT .OBJ>
<SETG P-IT-LOC ,HERE>>
<SETG P-IT-OBJECT .OBJ>>
<GLOBAL SWIMYUKS
<LTABLE 0 "You can't swim in the dungeon.">>
<COND (<N==? ,ZORK-NUMBER 3>
<GLOBAL SWIMYUKS
<LTABLE 0 "You can't swim in the dungeon.">>)>
<GLOBAL HELLOS
<LTABLE 0 "Hello."

2111
parser.cmp Normal file

File diff suppressed because it is too large Load Diff

2
zork1.chart Normal file
View File

@ -0,0 +1,2 @@
-date- -rel- -size- -pre- -obj- -glo- -voc-
4/29 119 86838 19284 250 155 684

35
zork1.errors Normal file
View File

@ -0,0 +1,35 @@
Assembling ZORK1.ZAP.25 on Friday, April 29, 1988 12:12:19
Release: 119
64 Inserting ZORK1FREQ.XZAP.3 (624 bytes)
688 Inserting ZORK1DAT.ZAP.22 (18596 bytes)
19284 Inserting ZORK1PUR.ZAP.9 (1214 bytes)
20498 Inserting GMACROS.ZAP.25 (119 bytes)
20617 Inserting 1DUNGEON.ZAP.24 (232 bytes)
20849 Inserting GGLOBALS.ZAP.23 (1160 bytes)
22009 Inserting GCLOCK.ZAP.23 (175 bytes)
22184 Inserting GMAIN.ZAP.23 (891 bytes)
23075 Inserting GPARSER.ZAP.21 (6585 bytes)
29660 Inserting GVERBS.ZAP.22 (10530 bytes)
40190 Inserting 1ACTIONS.ZAP.21 (29982 bytes)
70172 Inserting ZORK1STR.ZAP.21 (16666 bytes)
Symbols unused:
UNTIE-FROM
BREATHE
CYCLOPS-MELEE
TROLL-MELEE
P-DIRECTION
DEF2A
DEF3C
THIEF-MELEE
250 objects.
155 globals.
684 word vocabulary.
86838 bytes (85K).
19284 bytes of preload.
11282 bytes of impure.
Outputting symbol tables

632
zork1.record Normal file
View File

@ -0,0 +1,632 @@
Combined ZIL Compiler Ver 2.0 (MIM)
-----------------------------------
Incremental compilation disabled, because top-level ZIL file changed.
Input file: SS:<ZORK1>ZORK1.ZIL.29
[ZIP instructions]
Loading SS:<ZORK1>GMACROS.ZIL.8 and compiling it.
Compiling routine: ZPROB
Compiling routine: RANDOM-ELEMENT
Compiling routine: PICK-ONE
Abstracting SS:<ZORK1>GMACROS.
Loading SS:<ZORK1>GSYNTAX.ZIL.153 and compiling it.
Loading SS:<ZORK1>1DUNGEON.ZIL.122 and compiling it.
Compiling routine: TREASURE-INSIDE
Compiling routine: GRATING-EXIT
Compiling routine: CANYON-VIEW-F
Compiling routine: GO
Abstracting SS:<ZORK1>1DUNGEON.
Loading SS:<ZORK1>GGLOBALS.ZIL.64 and compiling it.
Compiling routine: NOT-HERE-OBJECT-F
Compiling routine: NOT-HERE-PRINT
Compiling routine: NULL-F
Compiling routine: STAIRS-F
Compiling routine: SAILOR-FCN
Compiling routine: GROUND-FUNCTION
Compiling routine: GRUE-FUNCTION
Compiling routine: CRETIN-FCN
Compiling routine: PATH-OBJECT
Compiling routine: ZORKMID-FUNCTION
Abstracting SS:<ZORK1>GGLOBALS.
Loading SS:<ZORK1>GCLOCK.ZIL.6 and compiling it.
Compiling routine: QUEUE
Compiling routine: INT
Compiling routine: CLOCKER
Abstracting SS:<ZORK1>GCLOCK.
Loading SS:<ZORK1>GMAIN.ZIL.42 and compiling it.
Compiling routine: MAIN-LOOP
Compiling routine: MAIN-LOOP-1
Compiling routine: PERFORM
Abstracting SS:<ZORK1>GMAIN.
Loading SS:<ZORK1>GPARSER.ZIL.45 and compiling it.
Compiling routine: PARSER
Compiling routine: STUFF
Compiling routine: INBUF-STUFF
Compiling routine: INBUF-ADD
Compiling routine: WT?
Compiling routine: CLAUSE
Compiling routine: NUMBER?
Compiling routine: ORPHAN-MERGE
Compiling routine: ACLAUSE-WIN
Compiling routine: NCLAUSE-WIN
Compiling routine: WORD-PRINT
Compiling routine: UNKNOWN-WORD
Compiling routine: CANT-USE
Compiling routine: SYNTAX-CHECK
Compiling routine: CANT-ORPHAN
Compiling routine: ORPHAN
Compiling routine: THING-PRINT
Compiling routine: BUFFER-PRINT
Compiling routine: PREP-PRINT
Compiling routine: CLAUSE-COPY
Compiling routine: CLAUSE-ADD
Compiling routine: PREP-FIND
Compiling routine: SYNTAX-FOUND
Compiling routine: GWIM
Compiling routine: SNARF-OBJECTS
Compiling routine: BUT-MERGE
Compiling routine: SNARFEM
Compiling routine: GET-OBJECT
Compiling routine: WHICH-PRINT
Compiling routine: GLOBAL-CHECK
Compiling routine: DO-SL
Compiling routine: SEARCH-LIST
Compiling routine: OBJ-FOUND
Compiling routine: TAKE-CHECK
Compiling routine: ITAKE-CHECK
Compiling routine: MANY-CHECK
Compiling routine: ZMEMQ
Compiling routine: ZMEMQB
Compiling routine: LIT?
Compiling routine: THIS-IT?
Compiling routine: ACCESSIBLE?
Compiling routine: META-LOC
Abstracting SS:<ZORK1>GPARSER.
Loading SS:<ZORK1>GVERBS.ZIL.429 and compiling it.
Compiling routine: V-VERBOSE
Compiling routine: V-BRIEF
Compiling routine: V-SUPER-BRIEF
Compiling routine: V-INVENTORY
Compiling routine: FINISH
Compiling routine: V-QUIT
Compiling routine: V-RESTART
Compiling routine: V-RESTORE
Compiling routine: V-SAVE
Compiling routine: V-SCRIPT
Compiling routine: V-UNSCRIPT
Compiling routine: V-VERSION
Compiling routine: V-VERIFY
Compiling routine: V-COMMAND-FILE
Compiling routine: V-RANDOM
Compiling routine: V-RECORD
Compiling routine: V-UNRECORD
Compiling routine: V-ADVENT
Compiling routine: V-ALARM
Compiling routine: V-ANSWER
Compiling routine: V-ATTACK
Compiling routine: V-BACK
Compiling routine: V-BLAST
Compiling routine: PRE-BOARD
Compiling routine: V-BOARD
Compiling routine: V-BREATHE
Compiling routine: V-BRUSH
Compiling routine: V-BUG
Compiling routine: TELL-NO-PRSI
Compiling routine: PRE-BURN
Compiling routine: V-BURN
Compiling routine: V-CHOMP
Compiling routine: V-CLIMB-DOWN
Compiling routine: V-CLIMB-FOO
Compiling routine: V-CLIMB-ON
Compiling routine: V-CLIMB-UP
Compiling routine: V-CLOSE
Compiling routine: V-COMMAND
Compiling routine: V-COUNT
Compiling routine: V-CROSS
Compiling routine: V-CURSES
Compiling routine: V-CUT
Compiling routine: V-DEFLATE
Compiling routine: V-DIG
Compiling routine: V-DISEMBARK
Compiling routine: V-DISENCHANT
Compiling routine: V-DRINK
Compiling routine: V-DRINK-FROM
Compiling routine: PRE-DROP
Compiling routine: V-DROP
Compiling routine: V-EAT
Compiling routine: HIT-SPOT
Compiling routine: V-ECHO
Compiling routine: V-ENCHANT
Compiling routine: REMOVE-CAREFULLY
Compiling routine: V-ENTER
Compiling routine: V-EXAMINE
Compiling routine: V-EXIT
Compiling routine: V-EXORCISE
Compiling routine: PRE-FILL
Compiling routine: V-FILL
Compiling routine: V-FIND
Compiling routine: V-FOLLOW
Compiling routine: V-FROBOZZ
Compiling routine: PRE-GIVE
Compiling routine: V-GIVE
Compiling routine: V-HATCH
Compiling routine: V-HELLO
Compiling routine: V-INCANT
Compiling routine: V-INFLATE
Compiling routine: V-KICK
Compiling routine: V-KISS
Compiling routine: V-KNOCK
Compiling routine: V-LAMP-OFF
Compiling routine: V-LAMP-ON
Compiling routine: V-LAUNCH
Compiling routine: V-LEAN-ON
Compiling routine: V-LEAP
Compiling routine: V-LEAVE
Compiling routine: V-LISTEN
Compiling routine: V-LOCK
Compiling routine: V-LOOK
Compiling routine: V-LOOK-BEHIND
Compiling routine: V-LOOK-INSIDE
Compiling routine: V-LOOK-ON
Compiling routine: V-LOOK-UNDER
Compiling routine: V-LOWER
Compiling routine: V-MAKE
Compiling routine: V-MELT
Compiling routine: PRE-MOVE
Compiling routine: V-MOVE
Compiling routine: V-MUMBLE
Compiling routine: PRE-MUNG
Compiling routine: V-MUNG
Compiling routine: V-ODYSSEUS
Compiling routine: V-OIL
Compiling routine: V-OPEN
Compiling routine: V-OVERBOARD
Compiling routine: V-PICK
Compiling routine: V-PLAY
Compiling routine: V-PLUG
Compiling routine: V-POUR-ON
Compiling routine: V-PRAY
Compiling routine: V-PUMP
Compiling routine: V-PUSH
Compiling routine: V-PUSH-TO
Compiling routine: PRE-PUT
Compiling routine: V-PUT
Compiling routine: V-PUT-BEHIND
Compiling routine: V-PUT-ON
Compiling routine: V-PUT-UNDER
Compiling routine: V-RAISE
Compiling routine: V-RAPE
Compiling routine: PRE-READ
Compiling routine: V-READ
Compiling routine: V-READ-PAGE
Compiling routine: V-REPENT
Compiling routine: V-REPLY
Compiling routine: V-RING
Compiling routine: V-RUB
Compiling routine: V-SAY
Compiling routine: V-SEARCH
Compiling routine: V-SEND
Compiling routine: PRE-SGIVE
Compiling routine: V-SGIVE
Compiling routine: V-SHAKE
Compiling routine: SHAKE-LOOP
Compiling routine: V-SKIP
Compiling routine: V-SMELL
Compiling routine: V-SPIN
Compiling routine: V-SPRAY
Compiling routine: V-SQUEEZE
Compiling routine: V-SSPRAY
Compiling routine: V-STAB
Compiling routine: V-STAND
Compiling routine: V-STAY
Compiling routine: V-STRIKE
Compiling routine: V-SWIM
Compiling routine: V-SWING
Compiling routine: PRE-TAKE
Compiling routine: V-TAKE
Compiling routine: V-TELL
Compiling routine: V-THROUGH
Compiling routine: V-THROW
Compiling routine: V-THROW-OFF
Compiling routine: V-TIE
Compiling routine: V-TIE-UP
Compiling routine: V-TREASURE
Compiling routine: PRE-TURN
Compiling routine: V-TURN
Compiling routine: V-UNLOCK
Compiling routine: V-UNTIE
Compiling routine: V-WAIT
Compiling routine: V-WALK
Compiling routine: V-WALK-AROUND
Compiling routine: V-WALK-TO
Compiling routine: V-WAVE
Compiling routine: V-WEAR
Compiling routine: V-WIN
Compiling routine: V-WIND
Compiling routine: V-WISH
Compiling routine: V-YELL
Compiling routine: V-ZORK
Compiling routine: V-FIRST-LOOK
Compiling routine: DESCRIBE-ROOM
Compiling routine: DESCRIBE-OBJECTS
Compiling routine: DESCRIBE-OBJECT
Compiling routine: PRINT-CONTENTS
Compiling routine: PRINT-CONT
Compiling routine: FIRSTER
Compiling routine: SEE-INSIDE?
Compiling routine: SCORE-UPD
Compiling routine: SCORE-OBJ
Compiling routine: YES?
Compiling routine: ITAKE
Compiling routine: IDROP
Compiling routine: CCOUNT
Compiling routine: WEIGHT
Compiling routine: HACK-HACK
Compiling routine: NO-GO-TELL
Compiling routine: GOTO
Compiling routine: LKP
Compiling routine: DO-WALK
Compiling routine: GLOBAL-IN?
Compiling routine: FIND-IN
Compiling routine: HELD?
Compiling routine: OTHER-SIDE
Compiling routine: MUNG-ROOM
Compiling routine: THIS-IS-IT
Abstracting SS:<ZORK1>GVERBS.
Loading SS:<ZORK1>1ACTIONS.ZIL.257 and compiling it.
Compiling routine: WEST-HOUSE
Compiling routine: EAST-HOUSE
Compiling routine: OPEN-CLOSE
Compiling routine: BOARD-F
Compiling routine: TEETH-F
Compiling routine: GRANITE-WALL-F
Compiling routine: SONGBIRD-F
Compiling routine: WHITE-HOUSE-F
Compiling routine: GO-NEXT
Compiling routine: FOREST-F
Compiling routine: MOUNTAIN-RANGE-F
Compiling routine: WATER-F
Compiling routine: KITCHEN-WINDOW-F
Compiling routine: GHOSTS-F
Compiling routine: BASKET-F
Compiling routine: BAT-F
Compiling routine: FLY-ME
Compiling routine: FWEEP
Compiling routine: BELL-F
Compiling routine: HOT-BELL-F
Compiling routine: BOARDED-WINDOW-FCN
Compiling routine: NAILS-PSEUDO
Compiling routine: CRACK-FCN
Compiling routine: KITCHEN-FCN
Compiling routine: STONE-BARROW-FCN
Compiling routine: BARROW-DOOR-FCN
Compiling routine: BARROW-FCN
Compiling routine: TROPHY-CASE-FCN
Compiling routine: LIVING-ROOM-FCN
Compiling routine: TOUCH-ALL
Compiling routine: OTVAL-FROB
Compiling routine: TRAP-DOOR-FCN
Compiling routine: CELLAR-FCN
Compiling routine: CHIMNEY-F
Compiling routine: UP-CHIMNEY-FUNCTION
Compiling routine: TRAP-DOOR-EXIT
Compiling routine: RUG-FCN
Compiling routine: AXE-F
Compiling routine: STILETTO-FUNCTION
Compiling routine: WEAPON-FUNCTION
Compiling routine: TROLL-FCN
Compiling routine: LEAVES-APPEAR
Compiling routine: LEAF-PILE
Compiling routine: CLEARING-FCN
Compiling routine: MAZE-11-FCN
Compiling routine: GRATE-FUNCTION
Compiling routine: MAZE-DIODES
Compiling routine: RUSTY-KNIFE-FCN
Compiling routine: KNIFE-F
Compiling routine: SKELETON
Compiling routine: TORCH-OBJECT
Compiling routine: MIRROR-ROOM
Compiling routine: MIRROR-MIRROR
Compiling routine: TORCH-ROOM-FCN
Compiling routine: DOME-ROOM-FCN
Compiling routine: LLD-ROOM
Compiling routine: I-XB
Compiling routine: I-XC
Compiling routine: I-XBH
Compiling routine: DAM-ROOM-FCN
Compiling routine: BOLT-F
Compiling routine: BUBBLE-F
Compiling routine: INTEGRAL-PART
Compiling routine: I-RFILL
Compiling routine: I-REMPTY
Compiling routine: BUTTON-F
Compiling routine: TOOL-CHEST-FCN
Compiling routine: I-MAINT-ROOM
Compiling routine: LEAK-FUNCTION
Compiling routine: FIX-MAINT-LEAK
Compiling routine: PUTTY-FCN
Compiling routine: TUBE-FUNCTION
Compiling routine: DAM-FUNCTION
Compiling routine: WITH-TELL
Compiling routine: RESERVOIR-SOUTH-FCN
Compiling routine: RESERVOIR-FCN
Compiling routine: RESERVOIR-NORTH-FCN
Compiling routine: BOTTLE-FUNCTION
Compiling routine: CYCLOPS-FCN
Compiling routine: I-CYCLOPS
Compiling routine: CYCLOPS-ROOM-FCN
Compiling routine: LOUD-ROOM-FCN
Compiling routine: DEEP-CANYON-F
Compiling routine: THIEF-VS-ADVENTURER
Compiling routine: STOLE-LIGHT?
Compiling routine: HACK-TREASURES
Compiling routine: DEPOSIT-BOOTY
Compiling routine: ROB-MAZE
Compiling routine: ROBBER-FUNCTION
Compiling routine: LARGE-BAG-F
Compiling routine: MOVE-ALL
Compiling routine: CHALICE-FCN
Compiling routine: TREASURE-ROOM-FCN
Compiling routine: THIEF-IN-TREASURE
Compiling routine: FRONT-DOOR-FCN
Compiling routine: BODY-FUNCTION
Compiling routine: BLACK-BOOK
Compiling routine: PAINTING-FCN
Compiling routine: LANTERN
Compiling routine: MAILBOX-F
Compiling routine: MATCH-FUNCTION
Compiling routine: I-MATCH
Compiling routine: I-LANTERN
Compiling routine: I-CANDLES
Compiling routine: LIGHT-INT
Compiling routine: MIN
Compiling routine: CANDLES-FCN
Compiling routine: CAVE2-ROOM
Compiling routine: SWORD-FCN
Compiling routine: BOOM-ROOM
Compiling routine: BAT-D
Compiling routine: BATS-ROOM
Compiling routine: MACHINE-ROOM-FCN
Compiling routine: MACHINE-F
Compiling routine: MSWITCH-FUNCTION
Compiling routine: GUNK-FUNCTION
Compiling routine: NO-OBJS
Compiling routine: SOUTH-TEMPLE-FCN
Compiling routine: WHITE-CLIFFS-FUNCTION
Compiling routine: SCEPTRE-FUNCTION
Compiling routine: FALLS-ROOM
Compiling routine: RAINBOW-FCN
Compiling routine: DBOAT-FUNCTION
Compiling routine: FIX-BOAT
Compiling routine: RIVER-FUNCTION
Compiling routine: I-RIVER
Compiling routine: RBOAT-FUNCTION
Compiling routine: BREATHE
Compiling routine: IBOAT-FUNCTION
Compiling routine: RIVR4-ROOM
Compiling routine: SAND-FUNCTION
Compiling routine: TREE-ROOM
Compiling routine: EGG-OBJECT
Compiling routine: BAD-EGG
Compiling routine: CANARY-OBJECT
Compiling routine: FOREST-ROOM?
Compiling routine: I-FOREST-ROOM
Compiling routine: FOREST-ROOM
Compiling routine: WCLIF-OBJECT
Compiling routine: CLIFF-OBJECT
Compiling routine: ROPE-FUNCTION
Compiling routine: UNTIE-FROM
Compiling routine: SLIDE-FUNCTION
Compiling routine: SLIDER
Compiling routine: SANDWICH-BAG-FCN
Compiling routine: DEAD-FUNCTION
Compiling routine: LAKE-PSEUDO
Compiling routine: STREAM-PSEUDO
Compiling routine: CHASM-PSEUDO
Compiling routine: DOME-PSEUDO
Compiling routine: GATE-PSEUDO
Compiling routine: DOOR-PSEUDO
Compiling routine: PAINT-PSEUDO
Compiling routine: GAS-PSEUDO
Compiling routine: DO-FIGHT
Compiling routine: REMARK
Compiling routine: FIGHT-STRENGTH
Compiling routine: VILLAIN-STRENGTH
Compiling routine: FIND-WEAPON
Compiling routine: VILLAIN-BLOW
Compiling routine: HERO-BLOW
Compiling routine: WINNER-RESULT
Compiling routine: VILLAIN-RESULT
Compiling routine: WINNING?
Compiling routine: I-CURE
Compiling routine: I-FIGHT
Compiling routine: AWAKEN
Compiling routine: I-SWORD
Compiling routine: INFESTED?
Compiling routine: I-THIEF
Compiling routine: DROP-JUNK
Compiling routine: RECOVER-STILETTO
Compiling routine: STEAL-JUNK
Compiling routine: ROB
Compiling routine: V-DIAGNOSE
Compiling routine: V-SCORE
Compiling routine: JIGS-UP
** Note: Atomic argument to routine assumed constant - DEAD-FUNCTION
Compiling routine: RANDOMIZE-OBJECTS
Compiling routine: KILL-INTERRUPTS
Compiling routine: BAG-OF-COINS-F
Compiling routine: TRUNK-F
Compiling routine: STUPID-CONTAINER
Compiling routine: DUMB-CONTAINER
Compiling routine: GARLIC-F
Compiling routine: CHAIN-PSEUDO
Compiling routine: TROLL-ROOM-F
Abstracting SS:<ZORK1>1ACTIONS.
** Note: OBJECT has no properties: GLOBAL-OBJECTS
Vocabulary: 684
Prepositions: 18
ABOUT AROUND AWAY DOWN FROM OFF OUT TO UP
ACROSS AT BEHIND FOR IN ON OVER UNDER WITH
Real globals: 148
ABOVE-GROUND HS P-OFLAG
AGAIN-DIR IN-HOUSE-AROUND P-ONEOBJ
AGAIN-LEXV INDENTS P-OTBL
ALWAYS-LIT JUMPLOSS P-OVTBL
BASE-SCORE KITCHEN-WINDOW-FLAG P-PRSI
BAT-DROPS LAMP-TABLE P-PRSO
BDIGS LIGHT-SHAFT P-SLOCBITS
BEACH-DIG LIT P-SYNTAX
BUOY-FLAG LLD-FLAG P-TABLE
C-DEMONS LOAD-ALLOWED P-VTBL
C-INTS LOAD-MAX P-WALK-DIR
C-TABLE LOUD-FLAG P-WON
CAGE-TOP LOUD-RUNS P-XADJ
CANDLE-TABLE LOW-TIDE P-XADJN
CLOCK-WAIT LUCKY P-XNAM
COFFIN-CURE MAGIC-FLAG PLAYER
CYCLOMAD MATCH-COUNT PRSA
CYCLOPS-FLAG MIRROR-MUNG PRSI
CYCLOPS-MELEE OOPS-INBUF PRSO
CYCLOWRATH OOPS-TABLE QUOTE-FLAG
DEAD P-AADJ RAINBOW-FLAG
DEATHS P-ACLAUSE RESERVE-LEXV
DEF1 P-ACT RESERVE-PTR
DEF1-RES P-ADJ RIVER-LAUNCH
DEF2-RES P-ADJN RIVER-NEXT
DEF2A P-ADVERB RIVER-SPEEDS
DEF2B P-ANAM ROBBER-C-DESC
DEF3-RES P-AND ROBBER-U-DESC
DEF3A P-BUTS RUG-MOVED
DEF3B P-CCTBL SCORE-MAX
DEF3C P-CONT SING-SONG
DEFLATE P-DIR SPRAYED?
DESC-OBJECT P-DIRECTION SUPER-BRIEF
DOME-FLAG P-END-ON-PREP SWIMYUKS
DROWNINGS P-GETFLAGS THIEF-ENGROSSED
DUMMY P-GWIMBIT THIEF-HERE
EGG-SOLVE P-INBUF THIEF-MELEE
EMPTY-HANDED P-IT-OBJECT TROLL-FLAG
FALSE-FLAG P-ITBL TROLL-MELEE
FOREST-AROUND P-LEN VERBOSE
FUMBLE-NUMBER P-LEXV VILLAINS
FUMBLE-PROB P-MATCHLEN WATER-LEVEL
GATE-FLAG P-MERGE WHEEEEE
GATES-OPEN P-MERGED WINNER
GRATE-REVEALED P-MULT WON-FLAG
GRUNLOCK P-NAM XB
HELLOS P-NCN XC
HERO-MELEE P-NOT-HERE YUKS
HO-HUM P-NUMBER
HOUSE-AROUND P-OCLAUSE
Objects: 250
ADVENTURER GLOBAL-OBJECTS POT-OF-GOLD
ADVERTISEMENT GLOBAL-WATER PRAYER
ALTAR GRANITE-WALL PSEUDO-OBJECT
ARAGAIN-FALLS GRATE PUMP
ATLANTIS-ROOM GRATING-CLEARING PUNCTURED-BOAT
ATTIC GRATING-ROOM PUTTY
ATTIC-TABLE GROUND RAILING
AXE GRUE RAINBOW
BAG-OF-COINS GUIDE RAISED-BASKET
BAR GUNK RED-BUTTON
BARROW HANDS RESERVOIR
BARROW-DOOR HOT-BELL RESERVOIR-NORTH
BAT IN-STREAM RESERVOIR-SOUTH
BAT-ROOM INFLATABLE-BOAT RIVER
BAUBLE INFLATED-BOAT RIVER-1
BELL INTNUM RIVER-2
BLESSINGS IT RIVER-3
BLUE-BUTTON JADE RIVER-4
BOARD KEYS RIVER-5
BOARDED-WINDOW KITCHEN ROOMS
BOAT-LABEL KITCHEN-TABLE ROPE
BODIES KITCHEN-WINDOW ROUND-ROOM
BOLT KNIFE RUG
BONES LADDER RUSTY-KNIFE
BOOK LADDER-BOTTOM SAILOR
BOTTLE LADDER-TOP SAND
BRACELET LAMP SANDWICH-BAG
BROKEN-CANARY LAND-OF-LIVING-DEAD SANDY-BEACH
BROKEN-EGG LARGE-BAG SANDY-CAVE
BROKEN-LAMP LEAK SCARAB
BROWN-BUTTON LEAVES SCEPTRE
BUBBLE LIVING-ROOM SCREWDRIVER
BUOY LOCAL-GLOBALS SHAFT-ROOM
BURNED-OUT-LANTERN LOUD-ROOM SHORE
CANARY LOWER-SHAFT SHOVEL
CANDLES LOWERED-BASKET SKULL
CANYON-BOTTOM LUNCH SLIDE
CANYON-VIEW LUNGS SLIDE-ROOM
CELLAR MACHINE SMALL-CAVE
CHALICE MACHINE-ROOM SMELLY-ROOM
CHASM-ROOM MACHINE-SWITCH SONGBIRD
CHIMNEY MAILBOX SOUTH-OF-HOUSE
CLEARING MAINTENANCE-ROOM SOUTH-TEMPLE
CLIFF-MIDDLE MAP SQUEEKY-ROOM
CLIMBABLE-CLIFF MATCH STAIRS
COAL MAZE-1 STILETTO
COFFIN MAZE-10 STONE-BARROW
COLD-PASSAGE MAZE-11 STRANGE-PASSAGE
CONTROL-PANEL MAZE-12 STREAM-VIEW
CRACK MAZE-13 STUDIO
CYCLOPS MAZE-14 SWORD
CYCLOPS-ROOM MAZE-15 TEETH
DAM MAZE-2 THIEF
DAM-BASE MAZE-3 TIMBER-ROOM
DAM-LOBBY MAZE-4 TIMBERS
DAM-ROOM MAZE-5 TINY-CAVE
DAMP-CAVE MAZE-6 TOOL-CHEST
DEAD-END-1 MAZE-7 TORCH
DEAD-END-2 MAZE-8 TORCH-ROOM
DEAD-END-3 MAZE-9 TRAP-DOOR
DEAD-END-4 ME TREASURE-ROOM
DEAD-END-5 MINE-1 TREE
DEEP-CANYON MINE-2 TRIDENT
DIAMOND MINE-3 TROLL
DOME-ROOM MINE-4 TROLL-ROOM
EAST-OF-CHASM MINE-ENTRANCE TROPHY-CASE
EAST-OF-HOUSE MIRROR-1 TRUNK
EGG MIRROR-2 TUBE
EGYPT-ROOM MIRROR-ROOM-1 TWISTING-PASSAGE
EMERALD MIRROR-ROOM-2 UP-A-TREE
END-OF-RAINBOW MOUNTAIN-RANGE WALL
ENGRAVINGS MOUNTAINS WATER
ENGRAVINGS-CAVE NARROW-PASSAGE WEST-OF-HOUSE
ENTRANCE-TO-HADES NEST WHITE-CLIFF
EW-PASSAGE NORTH-OF-HOUSE WHITE-CLIFFS-NORTH
FOREST NORTH-TEMPLE WHITE-CLIFFS-SOUTH
FOREST-1 NOT-HERE-OBJECT WHITE-HOUSE
FOREST-2 NS-PASSAGE WINDING-PASSAGE
FOREST-3 ON-RAINBOW WOODEN-DOOR
FRONT-DOOR OWNERS-MANUAL WRENCH
GALLERY PAINTING YELLOW-BUTTON
GARLIC PATH ZORKMID
GAS-ROOM PATHOBJ
GHOSTS PEDESTAL
Properties: 30
P?ACTION P?DESCFCN P?IN P?NW P?SOUTH P?TVALUE
P?ADJECTIVE P?DOWN P?LAND P?OUT P?STRENGTH P?UP
P?ADVFCN P?EAST P?LDESC P?PSEUDO P?SW P?VALUE
P?CAPACITY P?FDESC P?NE P?SE P?SYNONYM P?VTYPE
P?CONTFCN P?GLOBAL P?NORTH P?SIZE P?TEXT P?WEST
Flags: 32
ACTORBIT FIGHTBIT NDESCBIT RMUNGBIT TOOLBIT WEAPONBIT
BURNBIT FLAMEBIT NONLANDBIT SACREDBIT TOUCHBIT WEARBIT
CLIMBBIT FOODBIT ONBIT SEARCHBIT TRANSBIT
CONTBIT INVISIBLE OPENBIT STAGGERED TRYTAKEBIT
DOORBIT LIGHTBIT READBIT SURFACEBIT TURNBIT
DRINKBIT MAZEBIT RLANDBIT TAKEBIT VEHBIT

1
zork1.serial Normal file
View File

@ -0,0 +1 @@
1

View File

@ -2,55 +2,32 @@
Zork I: The Great Underground Empire
(c) Copyright 1983 Infocom, Inc. All Rights Reserved."
<VERSION ZIP>
<SETG ZORK-NUMBER 1>
<GC 0 T 5>
<BLOAT 70000 0 0 2700 0 0 0 0 0 256>
<SET REDEFINE T>
<GLOBAL BIGFIX 10000>
<OR <GASSIGNED? ZILCH>
<SETG WBREAKS <STRING !\" !,WBREAKS>>>
<DEFINE IFILE (STR "OPTIONAL" (FLOAD? <>) "AUX" (TIM <TIME>))
<INSERT-FILE .STR .FLOAD?>>
<PRINC "Renovated ZORK I: The Great Underground Empire
">
<OR <GASSIGNED? INSERT-CRUFTY>
<DEFINE INSERT-CRUFTY (STR) <INSERT-FILE .STR T>>>
<FREQUENT-WORDS?>
<COND (<GASSIGNED? PREDGEN>
<ID 0>)>
<IFILE "GMACROS" T>
<IFILE "GSYNTAX" T>
<IFILE "1DUNGEON" T>
<IFILE "GGLOBALS" T>
<INSERT-FILE "GMACROS" T>
<INSERT-FILE "GSYNTAX" T>
<INSERT-FILE "1DUNGEON" T>
<INSERT-FILE "GGLOBALS" T>
<PROPDEF SIZE 5>
<PROPDEF CAPACITY 0>
<PROPDEF VALUE 0>
<PROPDEF TVALUE 0>
<IFILE "GCLOCK" T>
<IFILE "GMAIN" T>
<IFILE "GPARSER" T>
<IFILE "GVERBS" T>
<IFILE "1ACTIONS" T>
<GC 0 T>
<DEFINE CNT (STR OBL)
<PRINC .STR>
<PRIN1 <MAPF ,+ ,LENGTH .OBL>>
<CRLF>>
<COND (<NOT <GASSIGNED? PREDGEN>>
<GC-MON T>)>
<INSERT-FILE "GCLOCK" T>
<INSERT-FILE "GMAIN" T>
<INSERT-FILE "GPARSER" T>
<INSERT-FILE "GVERBS" T>
<INSERT-FILE "1ACTIONS" T>

BIN
zork1.zip

Binary file not shown.

200
zork1freq.xzap Normal file
View File

@ -0,0 +1,200 @@
.FSTR FSTR?1,"the " ;1572 786
.FSTR FSTR?2,"The " ;1245 415
.FSTR FSTR?3,"You " ;735 245
.FSTR FSTR?4,", " ;529 529
.FSTR FSTR?5,"your " ;474 158
.FSTR FSTR?6,"is " ;466 466
.FSTR FSTR?7,"and " ;456 228
.FSTR FSTR?8,"you " ;412 206
.FSTR FSTR?9,"There " ;395 79
.FSTR FSTR?10,"can't " ;360 72
.FSTR FSTR?11,"of " ;325 325
.FSTR FSTR?12,"to " ;323 323
.FSTR FSTR?13,". " ;299 299
.FSTR FSTR?14,"with " ;294 98
.FSTR FSTR?15,"are " ;272 136
.FSTR FSTR?16,"that " ;258 86
.FSTR FSTR?17,"have " ;231 77
.FSTR FSTR?18,"which " ;224 56
.FSTR FSTR?19,"This " ;216 54
.FSTR FSTR?20,"from " ;204 68
.FSTR FSTR?21,"large " ;204 51
.FSTR FSTR?22,"through " ;180 30
.FSTR FSTR?23,"appears " ;180 30
.FSTR FSTR?24,"in " ;175 175
.FSTR FSTR?25,"here" ;162 81
.FSTR FSTR?26,"water " ;136 34
.FSTR FSTR?27,"room " ;135 45
.FSTR FSTR?28,"Cyclops " ;133 19
.FSTR FSTR?29,"leading " ;132 22
.FSTR FSTR?30,"narrow " ;130 26
.FSTR FSTR?31,"cannot " ;130 26
.FSTR FSTR?32,"small " ;128 32
.FSTR FSTR?33,"into " ;126 42
.FSTR FSTR?34,"cyclops " ;114 19
.FSTR FSTR?35,"his " ;112 56
.FSTR FSTR?36,"thief " ;112 28
.FSTR FSTR?37,"It " ;110 55
.FSTR FSTR?38,"south " ;108 27
.FSTR FSTR?39,"seems " ;108 27
.FSTR FSTR?40,"already " ;108 18
.FSTR FSTR?41,"don't " ;105 21
.FSTR FSTR?42,"be " ;102 102
.FSTR FSTR?43,"but " ;100 50
.FSTR FSTR?44,"would " ;96 24
.FSTR FSTR?45,"Your " ;96 24
.FSTR FSTR?46,"there " ;92 23
.FSTR FSTR?47,"can " ;90 45
.FSTR FSTR?48,"this " ;90 30
.FSTR FSTR?49,"It's " ;90 18
.FSTR FSTR?50,"staircase " ;88 11
.FSTR FSTR?51,"on " ;86 86
.FSTR FSTR?52,"for " ;84 42
.FSTR FSTR?53,"west " ;84 28
.FSTR FSTR?54,"east " ;84 28
.FSTR FSTR?55,"north " ;84 21
.FSTR FSTR?56,"not " ;82 41
.FSTR FSTR?57,"troll " ;80 20
.FSTR FSTR?58,"nothing " ;78 13
.FSTR FSTR?59,"looking " ;78 13
.FSTR FSTR?60,"I " ;72 72
.FSTR FSTR?61,"path " ;72 24
.FSTR FSTR?62,"closed" ;72 18
.FSTR FSTR?63,"candles " ;72 12
.FSTR FSTR?64,"Frigid " ;72 12
.FSTR FSTR?65,"won't " ;70 14
.FSTR FSTR?66,"probably " ;70 10
.FSTR FSTR?67,"here " ;69 23
.FSTR FSTR?68,"Room" ;69 23
.FSTR FSTR?69,"about " ;68 17
.FSTR FSTR?70,"A " ;66 66
.FSTR FSTR?71,"too " ;66 33
.FSTR FSTR?72,"that" ;66 33
.FSTR FSTR?73,"room" ;66 33
.FSTR FSTR?74,"door " ;66 22
.FSTR FSTR?75,"grating " ;66 11
.FSTR FSTR?76,"ground " ;65 13
.FSTR FSTR?77,"out " ;64 32
.FSTR FSTR?78,"other " ;64 16
.FSTR FSTR?79,"wall " ;63 21
.FSTR FSTR?80,"passages " ;63 9
.FSTR FSTR?81,"impossible " ;63 7
.FSTR FSTR?82,"has " ;62 31
.FSTR FSTR?83,"over " ;60 20
.FSTR FSTR?84,"level " ;60 15
.FSTR FSTR?85,"knocks " ;60 12
.FSTR FSTR?86,"before " ;60 12
.FSTR FSTR?87,"passage " ;60 10
.FSTR FSTR?88,"Fortunately" ;60 6
.FSTR FSTR?89,"Unfortunately" ;60 5
.FSTR FSTR?90,"it " ;59 59
.FSTR FSTR?91,"an " ;56 56
.FSTR FSTR?92,"think " ;56 14
.FSTR FSTR?93,"river " ;56 14
.FSTR FSTR?94,"troll's " ;56 8
.FSTR FSTR?95,"doesn't " ;56 8
.FSTR FSTR?96,"You're " ;56 8
;word frequency table of 96 most common words
WORDS:: .TABLE
FSTR?1
FSTR?2
FSTR?3
FSTR?4
FSTR?5
FSTR?6
FSTR?7
FSTR?8
FSTR?9
FSTR?10
FSTR?11
FSTR?12
FSTR?13
FSTR?14
FSTR?15
FSTR?16
FSTR?17
FSTR?18
FSTR?19
FSTR?20
FSTR?21
FSTR?22
FSTR?23
FSTR?24
FSTR?25
FSTR?26
FSTR?27
FSTR?28
FSTR?29
FSTR?30
FSTR?31
FSTR?32
FSTR?33
FSTR?34
FSTR?35
FSTR?36
FSTR?37
FSTR?38
FSTR?39
FSTR?40
FSTR?41
FSTR?42
FSTR?43
FSTR?44
FSTR?45
FSTR?46
FSTR?47
FSTR?48
FSTR?49
FSTR?50
FSTR?51
FSTR?52
FSTR?53
FSTR?54
FSTR?55
FSTR?56
FSTR?57
FSTR?58
FSTR?59
FSTR?60
FSTR?61
FSTR?62
FSTR?63
FSTR?64
FSTR?65
FSTR?66
FSTR?67
FSTR?68
FSTR?69
FSTR?70
FSTR?71
FSTR?72
FSTR?73
FSTR?74
FSTR?75
FSTR?76
FSTR?77
FSTR?78
FSTR?79
FSTR?80
FSTR?81
FSTR?82
FSTR?83
FSTR?84
FSTR?85
FSTR?86
FSTR?87
FSTR?88
FSTR?89
FSTR?90
FSTR?91
FSTR?92
FSTR?93
FSTR?94
FSTR?95
FSTR?96
.ENDT
.ENDI