mirror of
https://github.com/historicalsource/sorcerer
synced 2024-06-16 15:11:00 +03:00
Final Revision
This commit is contained in:
parent
daad2bd710
commit
9be53d703b
212
archive/code.rno
Normal file
212
archive/code.rno
Normal file
|
@ -0,0 +1,212 @@
|
|||
.c;INFOTATER TEXT
|
||||
.s 4
|
||||
This is the copy for the "infotater" -- the rotating data wheel which
|
||||
will be included in the game package. It is also an object which appears
|
||||
in the game. It is important to the play of the game, and is meant as an
|
||||
anti-piracy device.
|
||||
.s
|
||||
.c;SEM, 1/5/84
|
||||
|
||||
.pg
|
||||
.lm 18
|
||||
.rm 62
|
||||
.c;BLOODWORM
|
||||
.s
|
||||
Found in shallow underground pools; often mistaken for mossy boulders.
|
||||
Pointy, retractable fangs can extend up to 32". Most bloodworms are
|
||||
repelled by the smell of boiled chives. Bloodworms are usually white -
|
||||
gray - black - red - black.
|
||||
.s 3
|
||||
.s
|
||||
.c;BROGMOID
|
||||
.s
|
||||
In rare cases, these squat creatures can achieve intelligence level of a
|
||||
3-year-old human. Often seen in wild foraging in huge packs for edible
|
||||
rocks. Live much longer in captivity; can even be trained to perform
|
||||
simple tasks. Usually red - purple - red - black - purple.
|
||||
.s 3
|
||||
.c;DORN
|
||||
.s
|
||||
Can paralyze with a single glare from its powerful eyes (range: roughly
|
||||
3' for young beasts to 20' for adults). Dorns commonly inhabit crags and
|
||||
shadows near cliff bases. According to the last words of dying
|
||||
explorers, dorn beasts are gray - purple - black - gray - white.
|
||||
.s 3
|
||||
.c;DRYAD
|
||||
.s
|
||||
Also called "tree sprite". Beautiful, shy. Many spend lifetime under one
|
||||
tree. If coaxed, may reveal location of forest treasures. Will fight
|
||||
only in self defense and only in large numbers, pelting foes with tons
|
||||
of rose petals. When awake, dryads are black - gray - white - red - red.
|
||||
|
||||
.PG
|
||||
.c;GRUE
|
||||
.s
|
||||
A sinister, lurking presence in the dark places of the earth. Favorite
|
||||
snack is unwary Enchanters. Fears light: No grue has ever been seen by
|
||||
the light of day. Toxicologists believe that grues are probably black -
|
||||
black - red - black - purple.
|
||||
.s 3
|
||||
.c;HELLHOUND
|
||||
.s
|
||||
Fast, fierce, and capable of devouring a human 12 times its size in 3.5
|
||||
seconds. Normally inhabits burnt-out or enchanted woods and rarely
|
||||
ventures beyond its own turf, even in pursuit of prey. Hellhounds are
|
||||
purple - white - gray - red - gray.
|
||||
.s 3
|
||||
.c;KOBOLD
|
||||
.s
|
||||
Lives in small tribes in caverns and very dark forests. Similar to
|
||||
paskald, except middle toe is shorter than toes that flank it; also, far
|
||||
more belligerent. If attacked, will fight back; if not attacked, will
|
||||
fight back anyway. Coloration: red - purple - black - purple - red.
|
||||
.s 3
|
||||
.c;NABIZ
|
||||
.s
|
||||
A nabiz is mostly mouth, and that mouth is mostly teeth. Instinctively
|
||||
attack's enemy's weak point. Contrary to folk lore, cannot fly, but
|
||||
leaps vast distances. Is repulsed by the color blue; hence that color's
|
||||
popularity in adventurers' garb. Nabiz are purple - black - black -
|
||||
black - red.
|
||||
|
||||
.pg
|
||||
.c;ORC
|
||||
Erstwhile warring race who became civilized through their fondness for
|
||||
computer adventure games. Although a small fraction (Hi-Res Orcs) enjoy
|
||||
graphics adventures, the vast majority (Orcs of Zork) prefer text games.
|
||||
By the light of a CRT screen, orcs are red - gray - purple - gray - red.
|
||||
.s 3
|
||||
.c;ROTGRUB
|
||||
.s
|
||||
Less than 1" long; smells like very cheap old cheese; impervious to all
|
||||
forms of magic. Hides in food until ingested, then burrows straight to
|
||||
victim's brain and feeds for years before death mercifully arrives.
|
||||
Common household rotgrubs are gray - red - gray - purple - red.
|
||||
.s 3
|
||||
.c;SURMIN
|
||||
.s
|
||||
Characterized by malodorous breath, lice-ridden fur, and general
|
||||
repulsiveness. If allowed to approach close enough, can bore its victims
|
||||
to death by reciting Greater Borphee County Penal Codes. A newly-shaved
|
||||
surmin is black - black - purple - red - black.
|
||||
.s 3
|
||||
.c;YIPPLE
|
||||
.s
|
||||
Master of disguise, able to change form. In the wild, may bite if
|
||||
disturbed. Violently allergic to many kinds of animal wastes. Tame
|
||||
yipples make wonderful pets, but should be kept out of cookie jar when
|
||||
guests visit. On a white background, yipples look gray - purple - white
|
||||
- purple - black.
|
||||
|
||||
.pg
|
||||
.LM 18
|
||||
.RM 62
|
||||
.c;BLOODWORM
|
||||
.s
|
||||
Bloodworms live in shallow underground pools of water, often appearing
|
||||
as mossy boulders to an unwary observer. Their pointy, retractable fangs
|
||||
can extend up to 32 inches when attacking a victim. Most bloodworms are
|
||||
repelled by the taste and smell of boiled chives; always carry some if
|
||||
you plan on venturing near known bloodworm spawning grounds. Bloodworms
|
||||
are usually white and gray and black and red and gray.
|
||||
.s 2
|
||||
.c;BROGMOID
|
||||
.s
|
||||
Brogmoids are squat creatures who can, in rare cases, achieve the
|
||||
intelligence of a three-year-old human. If raised from birth in a
|
||||
domestic setting, a brogmoid will be quite tame and can even be taught
|
||||
to perform simple tasks. In the wild, brogmoids can be seen in huge
|
||||
packs sorting through rock piles looking for edible rocks. Brogmoids,
|
||||
which live considerably longer in captivity, are red and purple and red
|
||||
and black and purple.
|
||||
.s 2
|
||||
.c;DORN
|
||||
.s
|
||||
Dorn beasts are very deadly and should be avoided at all costs. They
|
||||
generally live in crags and shadows near cliff bases. A dorn beast can
|
||||
paralyze its victim with a single glare from its powerful eyes. A dorn
|
||||
beast stare has a range of about three feet in a young dorn beastling up
|
||||
to about twenty feet in a full grown dorn. According to the last words
|
||||
of dying explorers, dorn beasts are gray and purple and black and gray
|
||||
and white.
|
||||
.s 2
|
||||
.c;DRYAD
|
||||
.s
|
||||
Dryads, also known as tree sprites, are beautiful and shy. They can
|
||||
frequently live their entire lives without stepping out of the shade of
|
||||
the tree they were born under. Dryads, if coaxed, can reveal the
|
||||
location of forest treasures. They are only dangerous in large numbers,
|
||||
and then only if threatened. In these circumstances, they have been
|
||||
known to crush their attackers under tons and tons of rose petals.
|
||||
Dryads, when awake, are black and gray and white and red and red.
|
||||
|
||||
.pg
|
||||
.C;GRUE
|
||||
.s
|
||||
The grue is a sinister, lurking presence in the dark places of the
|
||||
earth. Its favorite diet is Enchanters, but its insatiable appetite is
|
||||
tempered by its fear of light. No grue has ever been seen by the light
|
||||
of day, and few have survived to tell the tale. Grues are probably black
|
||||
and black and red and black and purple.
|
||||
.s 2
|
||||
.c;HELLHOUND
|
||||
.s
|
||||
The best thing to do when you spot a hellhound is to run as fast as
|
||||
possible in the other direction. Hellhounds are fast, ferocious,
|
||||
merciless, and capable of devouring a human 12 times its size in
|
||||
three-and-one-half seconds. They normally live in burned-out or
|
||||
enchanted woods, and rarely venture beyond their turf, even in pursuit
|
||||
of prey. Hellhounds are purple and white and gray and red and gray.
|
||||
.s 2
|
||||
.c;KOBOLD
|
||||
.s
|
||||
Kobolds, who live in small tribes in caverns or very dark forests, are
|
||||
extremely capable fighters. If attacked, they will fight back. If not
|
||||
attacked, they will fight back anyway. Kobolds look very similar to the
|
||||
less aggressive paskalds, but can be immediately identified by the fact
|
||||
that their middle toes are slightly shorter than the toes which flank
|
||||
it. Kobolds are red and purple and black and purple and red.
|
||||
.s 2
|
||||
.c;NABIZ
|
||||
.s
|
||||
Nabiz are mostly mouth, and that mouth is mostly teeth. Nabiz always
|
||||
instinctively know exactly what their enemy's weakest point is, and
|
||||
attack there. Contrary to popular folk lore, they cannot fly, but they
|
||||
can leap tremendous distances. Nabiz are repulsed by the color blue,
|
||||
which explains the popularity of this color among adventurer's garb.
|
||||
Common nabiz are purple and black and black and black and red.
|
||||
|
||||
.pg
|
||||
.c;ORC
|
||||
.s
|
||||
Once a fearsome race of warriors, the orcs were tamed by their fondness
|
||||
for computerized adventure games. Although a small segment, known as the
|
||||
Hi-Res Orcs, enjoy graphic adventurers, the vast majority prefer text
|
||||
games. These are known as the Orcs of Zork. In the reflected light of a
|
||||
CRT screen, orcs appear to be red and gray and purple and gray and red.
|
||||
.s 2
|
||||
.c;ROTGRUB
|
||||
.s
|
||||
The rotgrub is less than an inch long, and lies waiting in food. Once
|
||||
ingested, the rotgrub heads straight for the brain and begins feeding.
|
||||
Rotgrub death is excrutiatingly painful and can last years. Worse yet,
|
||||
these pests are totally impervious to all forms of magic, and smell like
|
||||
very old cheeses. A common house rotgrub is gray and red and gray and
|
||||
purple and red.
|
||||
.s 2
|
||||
.c;SURMIN
|
||||
.s
|
||||
From their malodorous breath to their lice-ridden fur, surmins are
|
||||
utterly repulsive creatures. If they can get close enough, they can bore
|
||||
their victim to death by reciting New Jersey State Penal Codes. A newly
|
||||
shaven surmin is black and black and purple and red and purple.
|
||||
.s 2
|
||||
.c;YIPPLE
|
||||
.s
|
||||
The yipple is a master of disguise. As the chameleon is to color, so is
|
||||
the yipple to shape and form. Some yipples, if disturbed in the wild,
|
||||
may bite. Domesticated, they make wonderful pets, but should never be
|
||||
allowed to rest in the cookie jar if guests are expected. Yipples are
|
||||
violently allergic to many kinds of animal wastes. A yipple, if placed
|
||||
on a plain white tablecloth, becomes gray and purple and white and
|
||||
purple and black.
|
BIN
archive/sorcerer.beta
Normal file
BIN
archive/sorcerer.beta
Normal file
Binary file not shown.
BIN
archive/sorcerer.gamma
Normal file
BIN
archive/sorcerer.gamma
Normal file
Binary file not shown.
985
belboz.zap
Normal file
985
belboz.zap
Normal file
|
@ -0,0 +1,985 @@
|
|||
|
||||
|
||||
.FUNCT I-WAKE-UP
|
||||
CALL JIGS-UP,STR?190
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT TREE-F
|
||||
EQUAL? PRSA,V?CLIMB-UP,V?CLIMB-FOO \?ELS5
|
||||
CALL DO-WALK,P?UP
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?CLIMB-DOWN \?ELS7
|
||||
CALL DO-WALK,P?DOWN
|
||||
RSTACK
|
||||
?ELS7: EQUAL? PRSA,V?LOOK-UNDER \?ELS9
|
||||
CALL PERFORM,V?EXAMINE,GROUND
|
||||
RTRUE
|
||||
?ELS9: EQUAL? PRSA,V?MEEF \FALSE
|
||||
SET 'PERFORMING-SPELL,TRUE-VALUE
|
||||
CALL PERFORM,V?MEEF,FOREST
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT HELLHOUND-F
|
||||
EQUAL? PRSA,V?RESEARCH \FALSE
|
||||
CALL PERFORM,V?RESEARCH,LOBBY
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT I-HELLHOUND
|
||||
EQUAL? HERE,TWISTED-FOREST \?ELS5
|
||||
ZERO? HELLHOUND-WARNING /?ELS10
|
||||
CALL JIGS-UP,STR?192
|
||||
RSTACK
|
||||
?ELS10: SET 'HELLHOUND-WARNING,TRUE-VALUE
|
||||
CRLF
|
||||
PRINTR "A hellhound is racing straight toward you, its open jaws displaying rows of razor-sharp teeth."
|
||||
?ELS5: EQUAL? HERE,TREE-BRANCH \?ELS17
|
||||
PRINTR "The hellhound leaps madly about the base of the tree, gnashing its jaws."
|
||||
?ELS17: MOVE HELLHOUND,DIAL
|
||||
CALL INT,I-HELLHOUND
|
||||
PUT STACK,0,0
|
||||
PRINTR "The hellhound stops at the edge of the forest and bellows. After a moment, it turns and slinks into the trees."
|
||||
|
||||
|
||||
.FUNCT TREE-BRANCH-F,RARG
|
||||
EQUAL? RARG,M-LOOK \?ELS5
|
||||
PRINTI "You are "
|
||||
ZERO? FLYING /?ELS10
|
||||
PRINTI "flying near"
|
||||
JUMP ?CND8
|
||||
?ELS10: PRINTI "on"
|
||||
?CND8: PRINTR " a large gnarled branch of an old and twisted tree."
|
||||
?ELS5: EQUAL? RARG,M-ENTER \FALSE
|
||||
CALL QUEUE,I-BOA,-1
|
||||
PUT STACK,0,1
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT TREE-UP-F
|
||||
PRINTI "You can't "
|
||||
ZERO? FLYING /?ELS5
|
||||
PRINTI "fly"
|
||||
JUMP ?CND3
|
||||
?ELS5: PRINTI "climb"
|
||||
?CND3: PRINTI " any higher."
|
||||
CRLF
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT BOA-F
|
||||
EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
PRINTR "Your average giant carnivorous snake -- except that this one has three heads and an appetite to match."
|
||||
|
||||
|
||||
.FUNCT I-BOA
|
||||
EQUAL? HERE,TREE-BRANCH \?ELS5
|
||||
ZERO? FLYING \FALSE
|
||||
ZERO? BOA-WARNING /?ELS13
|
||||
CALL JIGS-UP,STR?193
|
||||
RSTACK
|
||||
?ELS13: SET 'BOA-WARNING,TRUE-VALUE
|
||||
CRLF
|
||||
PRINTR "A giant boa constrictor is slithering along the branch toward you!"
|
||||
?ELS5: SET 'BOA-WARNING,FALSE-VALUE
|
||||
CALL INT,I-BOA
|
||||
PUT STACK,0,0
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT FENCE-PSEUDO
|
||||
EQUAL? PRSA,V?LEAP,V?CLIMB-FOO,V?CLIMB-OVER \FALSE
|
||||
PRINTR "It's too tall."
|
||||
|
||||
|
||||
.FUNCT SIGNPOST-F
|
||||
EQUAL? PRSA,V?READ \FALSE
|
||||
CALL FIXED-FONT-ON
|
||||
PRINTI "
|
||||
"" *** !!! >>> WARNING <<< !!! ***
|
||||
This path is protected by a
|
||||
Magic Mine Field
|
||||
installed by the
|
||||
Frobozz Magic Mine Field Company"
|
||||
CRLF
|
||||
CALL FIXED-FONT-OFF
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT MINE-FIELD-EXIT-F
|
||||
EQUAL? PRSO,P?SOUTH \?ELS5
|
||||
RANDOM 100
|
||||
LESS? 50,STACK /?ELS5
|
||||
RETURN FOREST-EDGE
|
||||
?ELS5: ZERO? FLYING /?CND10
|
||||
PRINTI "Unfortunately, one of the properties of magic mine fields is their ability to blow you up even if you're floating above them. "
|
||||
?CND10: CALL JIGS-UP,STR?198
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT SNAKE-PIT-PSEUDO
|
||||
EQUAL? PRSA,V?THROUGH \FALSE
|
||||
CALL LOOK-AROUND-YOU
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT CRACK-PSEUDO
|
||||
EQUAL? PRSA,V?THROUGH \FALSE
|
||||
CALL DO-WALK,P?DOWN
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT SNAKE-PIT-F,RARG
|
||||
EQUAL? RARG,M-ENTER \FALSE
|
||||
RANDOM 3
|
||||
ADD 1,STACK
|
||||
CALL QUEUE,I-SNAKE-PIT,STACK
|
||||
PUT STACK,0,1
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT I-SNAKE-PIT
|
||||
EQUAL? HERE,SNAKE-PIT \?ELS5
|
||||
CALL JIGS-UP,STR?200
|
||||
RSTACK
|
||||
?ELS5: CALL INT,I-SNAKE-PIT
|
||||
PUT STACK,0,0
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT MOSS-F
|
||||
EQUAL? PRSA,V?MEEF \?ELS5
|
||||
PRINTR "A few patches of the moss and lichens become brown and dry."
|
||||
?ELS5: EQUAL? PRSA,V?EAT \FALSE
|
||||
CALL JIGS-UP,STR?202
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT MEADOW-F,RARG
|
||||
EQUAL? RARG,M-ENTER \?ELS5
|
||||
CALL QUEUE,I-LOCUSTS,-1
|
||||
PUT STACK,0,1
|
||||
RFALSE
|
||||
?ELS5: EQUAL? RARG,M-LOOK \FALSE
|
||||
PRINTI "You are in the center of a "
|
||||
IN? MEADOW-OBJECT,HERE \?ELS12
|
||||
PRINTI "rolling meadow of tall grass"
|
||||
JUMP ?CND10
|
||||
?ELS12: PRINTI "barren field"
|
||||
?CND10: PRINTR ". To the east is the turret of a ruined castle, and from the northeast comes the sound of rushing water."
|
||||
|
||||
|
||||
.FUNCT MEADOW-OBJECT-F
|
||||
EQUAL? HERE,MEADOW /?ELS5
|
||||
EQUAL? PRSA,V?MEEF,V?RUB \?ELS5
|
||||
PRINTR "The meadow is too far away."
|
||||
?ELS5: EQUAL? PRSA,V?MEEF \FALSE
|
||||
MOVE MEADOW-OBJECT,DIAL
|
||||
PRINTR "The grass vanishes as far as the eye can see."
|
||||
|
||||
|
||||
.FUNCT PLAGUE-OF-LOCUSTS-F
|
||||
EQUAL? PRSA,V?LOOK-UNDER \FALSE
|
||||
CALL PERFORM,V?EXAMINE,MEADOW-OBJECT
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT I-LOCUSTS
|
||||
EQUAL? HERE,MEADOW /?ELS5
|
||||
CALL INT,I-LOCUSTS
|
||||
PUT STACK,0,0
|
||||
SET 'LOCUST-WARNING,0
|
||||
RFALSE
|
||||
?ELS5: ZERO? LOCUST-WARNING \?ELS7
|
||||
INC 'LOCUST-WARNING
|
||||
CRLF
|
||||
PRINTR "A swarm of bloodsucking locusts appears on the horizon."
|
||||
?ELS7: EQUAL? LOCUST-WARNING,1 \?ELS11
|
||||
INC 'LOCUST-WARNING
|
||||
CRLF
|
||||
PRINTR "The locusts are much closer now, blotting out the sun like a black storm cloud."
|
||||
?ELS11: SET 'LOCUST-WARNING,0
|
||||
CALL JIGS-UP,STR?203
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT RIVER-BANK-F,RARG
|
||||
EQUAL? RARG,M-LOOK \?ELS5
|
||||
PRINTI "You are on a muddy bank "
|
||||
ZERO? RIVER-EVAPORATED /?ELS10
|
||||
PRINTI "above a dried-up river bed"
|
||||
JUMP ?CND8
|
||||
?ELS10: PRINTI "of a fast-moving river, full of sharp rocks and foaming rapids, flowing to the southwest. The ground is soft and eroded, and continually threatens to dump you into the turbulent waters"
|
||||
?CND8: PRINTR ". A field lies to the southwest, and a trail leads southeast along the bank."
|
||||
?ELS5: EQUAL? RARG,M-END \FALSE
|
||||
LESS? BANK-COUNTER,3 \?ELS26
|
||||
INC 'BANK-COUNTER
|
||||
RFALSE
|
||||
?ELS26: ZERO? RIVER-EVAPORATED \FALSE
|
||||
ZERO? FLYING \FALSE
|
||||
RANDOM 100
|
||||
LESS? 75,STACK /FALSE
|
||||
CALL JIGS-UP,STR?205
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT ROCK-PSEUDO
|
||||
EQUAL? PRSA,V?CROSS \FALSE
|
||||
CALL PICK-ONE,YUKS
|
||||
PRINT STACK
|
||||
CRLF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT RIVER-ENTER-F
|
||||
ZERO? RIVER-EVAPORATED /?ELS5
|
||||
RETURN RIVER-BED
|
||||
?ELS5: ZERO? FLYING /?ELS8
|
||||
CALL JIGS-UP,STR?206
|
||||
RFALSE
|
||||
?ELS8: PRINTI "You'd never survive the rapids."
|
||||
CRLF
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RIVER-F
|
||||
EQUAL? HERE,GUN-EMPLACEMENT,TURRET \?ELS5
|
||||
PRINTR "The river lies far below."
|
||||
?ELS5: ZERO? RIVER-EVAPORATED /?ELS9
|
||||
PRINTR "River? What river?"
|
||||
?ELS9: EQUAL? PRSA,V?DRINK-FROM,V?DRINK \?ELS14
|
||||
CALL PERFORM,V?DRINK,WATER
|
||||
RTRUE
|
||||
?ELS14: EQUAL? PRSA,V?PULVER \?ELS16
|
||||
EQUAL? HERE,RIVER-BANK \?ELS21
|
||||
SET 'RIVER-EVAPORATED,TRUE-VALUE
|
||||
CALL QUEUE,I-TRICKLE,3
|
||||
PUT STACK,0,1
|
||||
PRINTR "The river dries up, leaving only a few puddles between the rocks! It's now safe to climb down into the river bed."
|
||||
?ELS21: PRINTR "The water level drops several feet, but quickly surges back."
|
||||
?ELS16: EQUAL? PRSA,V?EXAMINE \?ELS29
|
||||
PRINTR "The river flows quickly by below you."
|
||||
?ELS29: EQUAL? PRSA,V?PUT \?ELS33
|
||||
EQUAL? RIVER,PRSI \?ELS33
|
||||
MOVE PRSO,DIAL
|
||||
CALL SPLASH
|
||||
RSTACK
|
||||
?ELS33: EQUAL? PRSA,V?THROUGH \FALSE
|
||||
CALL DO-WALK,P?NORTH
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT I-TRICKLE
|
||||
CALL QUEUE,I-FLOOD,2
|
||||
PUT STACK,0,1
|
||||
EQUAL? HERE,RIVER-BANK,RIVER-BED /?THN6
|
||||
EQUAL? HERE,STAGNANT-POOL,TOP-OF-FALLS \FALSE
|
||||
?THN6: CRLF
|
||||
PRINTR "A trickle of water begins flowing down the center of the river bed."
|
||||
|
||||
|
||||
.FUNCT I-FLOOD
|
||||
SET 'RIVER-EVAPORATED,FALSE-VALUE
|
||||
CALL FLOOD-LOOP,RIVER-BED
|
||||
CALL FLOOD-LOOP,STAGNANT-POOL
|
||||
CALL FLOOD-LOOP,TOP-OF-FALLS
|
||||
CRLF
|
||||
EQUAL? HERE,STAGNANT-POOL,RIVER-BED,TOP-OF-FALLS \?ELS5
|
||||
CALL JIGS-UP,STR?207
|
||||
RSTACK
|
||||
?ELS5: EQUAL? HERE,RIVER-BANK \?ELS7
|
||||
PRINTR "A wall of water rushes down the river bed as the river returns with a vengeance."
|
||||
?ELS7: EQUAL? HERE,HIDDEN-CAVE \FALSE
|
||||
PRINTR "There is a roar of water from outside the cave. The lower part of the cave, near the mouth, fills with a pool of swirling water!"
|
||||
|
||||
|
||||
.FUNCT FLOOD-LOOP,LOC,X,N
|
||||
FIRST? LOC >X /?KLU14
|
||||
?KLU14: ZERO? X /TRUE
|
||||
?PRG4: NEXT? X >N /?KLU15
|
||||
?KLU15: EQUAL? X,PROTAGONIST /?CND6
|
||||
MOVE X,DIAL
|
||||
?CND6: ZERO? N /TRUE
|
||||
SET 'X,N
|
||||
JUMP ?PRG4
|
||||
|
||||
|
||||
.FUNCT UNDERGROWTH-F
|
||||
EQUAL? PRSA,V?MEEF \FALSE
|
||||
PRINTR "The nearest part of the undergrowth withers away ... revealing more undergrowth."
|
||||
|
||||
|
||||
.FUNCT BANKS-F
|
||||
EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-DOWN,V?CLIMB-UP \FALSE
|
||||
CALL V-WALK-AROUND
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT RIVER-BED-OBJECT-F
|
||||
EQUAL? PRSA,V?THROUGH \?ELS5
|
||||
EQUAL? HERE,RIVER-BANK \?ELS10
|
||||
CALL DO-WALK,P?DOWN
|
||||
RSTACK
|
||||
?ELS10: CALL LOOK-AROUND-YOU
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?EXIT,V?DROP \FALSE
|
||||
EQUAL? HERE,RIVER-BANK \?ELS19
|
||||
CALL LOOK-AROUND-YOU
|
||||
RSTACK
|
||||
?ELS19: CALL DO-WALK,P?UP
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT RIVER-BED-F,RARG
|
||||
EQUAL? RARG,M-ENTER \FALSE
|
||||
PUT VEZZAS,1,0
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT PUDDLE-PSEUDO
|
||||
EQUAL? PRSA,V?THROUGH \?ELS5
|
||||
PRINTR "The puddles are very shallow."
|
||||
?ELS5: EQUAL? PRSA,V?PULVER \FALSE
|
||||
SET 'PERFORMING-SPELL,TRUE-VALUE
|
||||
CALL PERFORM,V?PULVER,WATER
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT FISH-PSEUDO
|
||||
EQUAL? PRSA,V?TAKE \FALSE
|
||||
PRINTR "They squirm from your grasp."
|
||||
|
||||
|
||||
.FUNCT TENTACLE-DEATH
|
||||
ZERO? FLYING /?ELS3
|
||||
PRINTI "You fly over the surface of the pool."
|
||||
JUMP ?CND1
|
||||
?ELS3: PRINTI "You wade into the stagnant pool."
|
||||
?CND1: CALL JIGS-UP,STR?210
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RIVER-EXIT-F
|
||||
PRINTI "The banks are too "
|
||||
ZERO? FLYING /?ELS5
|
||||
PRINTI "high to fly over."
|
||||
CRLF
|
||||
RFALSE
|
||||
?ELS5: PRINTI "steep to climb."
|
||||
CRLF
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT WATERFALL-EXIT-F
|
||||
ZERO? FLYING /?ELS3
|
||||
PRINTI "That would be foolhardy, as flying spells are of limited duration."
|
||||
CRLF
|
||||
RFALSE
|
||||
?ELS3: PRINTI "That would involve quite a plunge."
|
||||
CRLF
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT TOP-OF-CLIFF-PSEUDO
|
||||
EQUAL? PRSA,V?CLIMB-DOWN \?ELS5
|
||||
PRINTR "Impossible."
|
||||
?ELS5: EQUAL? PRSA,V?LEAP \FALSE
|
||||
CALL JIGS-UP,STR?212
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT HAZE-PSEUDO
|
||||
EQUAL? PRSA,V?RUB \FALSE
|
||||
PRINTR "From here?"
|
||||
|
||||
|
||||
.FUNCT WATERFALL-F
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
PRINTR "It's no Aragain Falls, but it's pretty impressive."
|
||||
?ELS5: EQUAL? PRSA,V?LEAP \?ELS9
|
||||
EQUAL? HERE,TOP-OF-FALLS \?ELS9
|
||||
SET 'PRSO,FALSE-VALUE
|
||||
CALL PERFORM,V?LEAP
|
||||
RTRUE
|
||||
?ELS9: EQUAL? HERE,MOUTH-OF-RIVER,TURRET \FALSE
|
||||
EQUAL? PRSA,V?SMELL,V?RUB,V?LEAP /?THN16
|
||||
EQUAL? PRSA,V?LISTEN \FALSE
|
||||
?THN16: PRINTR "From here?"
|
||||
|
||||
|
||||
.FUNCT HIDDEN-CAVE-F,RARG
|
||||
EQUAL? RARG,M-ENTER \?ELS5
|
||||
FSET? HIDDEN-CAVE,TOUCHBIT /?ELS5
|
||||
ADD SCORE,20 >SCORE
|
||||
RETURN SCORE
|
||||
?ELS5: EQUAL? RARG,M-LOOK \FALSE
|
||||
PRINTI "This is a hollow area under the northeast bank of the river. The floor rises away from the mouth of the cave, which is at its southwest end. "
|
||||
ZERO? RIVER-EVAPORATED \?CND12
|
||||
PRINTI "The mouth is filled with a pool of swirling water. "
|
||||
?CND12: PRINTR "A dark hole leads downward at the far end of the cave."
|
||||
|
||||
|
||||
.FUNCT BAT-GUANO-F
|
||||
EQUAL? PRSA,V?TAKE \FALSE
|
||||
FSET? FWEEP-SCROLL,TOUCHBIT /FALSE
|
||||
FSET FWEEP-SCROLL,TOUCHBIT
|
||||
FSET BAT-GUANO,TOUCHBIT
|
||||
FCLEAR BAT-GUANO,TRYTAKEBIT
|
||||
FCLEAR BAT-GUANO,NDESCBIT
|
||||
MOVE BAT-GUANO,PROTAGONIST
|
||||
PRINTR "As you take the guano, the soiled scroll falls to the ground."
|
||||
|
||||
|
||||
.FUNCT BLORT-VIAL-F
|
||||
EQUAL? PRSA,V?READ \FALSE
|
||||
CALL FIXED-FONT-ON
|
||||
PRINTI "
|
||||
""BLORT POTION
|
||||
(ability to see in dark places)"""
|
||||
CRLF
|
||||
CALL FIXED-FONT-OFF
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT BLORT-POTION-F
|
||||
EQUAL? PRSA,V?DRINK,V?EAT \?ELS5
|
||||
CALL HELD?,BLORT-VIAL
|
||||
ZERO? STACK \?ELS5
|
||||
CALL POTION-POUR,BLORT-VIAL
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?RESEARCH \?ELS9
|
||||
CALL READ-ABOUT-POTIONS,1
|
||||
RSTACK
|
||||
?ELS9: EQUAL? PRSA,V?DRINK,V?EAT \?ELS11
|
||||
MOVE BLORT-POTION,DIAL
|
||||
ZERO? UNDER-INFLUENCE /?CND12
|
||||
CALL TWO-POTIONS
|
||||
RTRUE
|
||||
?CND12: CALL QUEUE,I-UNBLORT,24
|
||||
PUT STACK,0,1
|
||||
SET 'BLORTED,TRUE-VALUE
|
||||
SET 'UNDER-INFLUENCE,BLORT-POTION
|
||||
PRINTR "The amber potion tasted like chives, and made your eyes tingle."
|
||||
?ELS11: EQUAL? PRSA,V?DROP \?ELS19
|
||||
CALL PERFORM,V?POUR,PRSO,PRSI
|
||||
RTRUE
|
||||
?ELS19: EQUAL? PRSA,V?POUR \FALSE
|
||||
EQUAL? PRSO,BLORT-POTION \FALSE
|
||||
CALL POTION-POUR,BLORT-VIAL
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT I-UNBLORT
|
||||
SET 'BLORTED,FALSE-VALUE
|
||||
EQUAL? UNDER-INFLUENCE,BLORT-POTION \?CND1
|
||||
SET 'UNDER-INFLUENCE,FALSE-VALUE
|
||||
?CND1: CRLF
|
||||
PRINTI "Your eyes tingle for a moment."
|
||||
ZERO? LIT \?CND6
|
||||
PRINTI " You can no longer see anything around you!"
|
||||
?CND6: CRLF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT I-UNFWEEP
|
||||
SET 'FWEEPED,FALSE-VALUE
|
||||
SET 'FLYING,FALSE-VALUE
|
||||
CRLF
|
||||
PRINTI "After a moment of futilely flapping your arms, you realize that the fweep spell has worn off. "
|
||||
EQUAL? HERE,GLASS-MAZE \?ELS5
|
||||
CALL NO-FLOOR?
|
||||
ZERO? STACK /?ELS5
|
||||
CALL JIGS-UP,STR?216
|
||||
JUMP ?CND3
|
||||
?ELS5: EQUAL? HERE,TREE-BRANCH \?ELS9
|
||||
CALL SETTLE-ONTO-BRANCH
|
||||
JUMP ?CND3
|
||||
?ELS9: EQUAL? HERE,LAGOON \?ELS11
|
||||
CALL SPLASH-INTO-WATER
|
||||
JUMP ?CND3
|
||||
?ELS11: PRINTI "You fall several feet to the ground."
|
||||
CRLF
|
||||
?CND3: GRTR? AWAKE,8 \FALSE
|
||||
CALL I-TIRED
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT DRAWBRIDGE-F,RARG
|
||||
EQUAL? RARG,M-END \?ELS5
|
||||
ZERO? FLYING \?ELS5
|
||||
ZERO? DRAWBRIDGE-MOVE /?ELS12
|
||||
RANDOM 100
|
||||
LESS? 40,STACK /?ELS18
|
||||
PRINTI "With a scream of splintering wood, part of the drawbridge collapses and spills you into the moat. "
|
||||
CALL DO-WALK,P?DOWN
|
||||
RSTACK
|
||||
?ELS18: PRINTR "The bridge continues to creak."
|
||||
?ELS12: SET 'DRAWBRIDGE-MOVE,TRUE-VALUE
|
||||
RFALSE
|
||||
?ELS5: EQUAL? RARG,M-LOOK \FALSE
|
||||
PRINTI "You are "
|
||||
ZERO? FLYING /?ELS33
|
||||
PRINTI "floating over"
|
||||
JUMP ?CND31
|
||||
?ELS33: PRINTI "standing on"
|
||||
?CND31: PRINTI " the drawbridge of a ruined castle which lies to your east. The wood of the bridge looks severely rotted"
|
||||
ZERO? FLYING /?ELS45
|
||||
PRINTI ". The moat is"
|
||||
JUMP ?CND43
|
||||
?ELS45: PRINTI " and creaks ominously beneath you. The moat, although an easy dive from here, looks dangerous,"
|
||||
?CND43: PRINTR " full of sinister shapes beneath the surface of the water. To the west is a wide field."
|
||||
|
||||
|
||||
.FUNCT DRAWBRIDGE-EXIT-F
|
||||
CALL JIGS-UP,STR?217
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT MOAT-F
|
||||
EQUAL? PRSA,V?PULVER \?ELS5
|
||||
PRINTR "The moat dries up, leaving vicious-looking creatures flopping around in puddles. Immediately, the castle's automatic moat-filler turns on, and refills the moat."
|
||||
?ELS5: EQUAL? PRSA,V?DRINK-FROM,V?DRINK \?ELS9
|
||||
CALL PERFORM,V?DRINK,WATER
|
||||
RTRUE
|
||||
?ELS9: EQUAL? PRSA,V?EXAMINE \?ELS11
|
||||
PRINTR "The water is murky, and lily pads cover most of the surface. Dark shapes swim about below the surface."
|
||||
?ELS11: EQUAL? PRSA,V?THROUGH,V?LEAP \FALSE
|
||||
CALL DO-WALK,P?DOWN
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT BRIDGE-F
|
||||
EQUAL? PRSA,V?LOOK-UNDER \?ELS5
|
||||
CALL PERFORM,V?EXAMINE,MOAT
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?LISTEN \FALSE
|
||||
PRINTR "Creak, creak."
|
||||
|
||||
|
||||
.FUNCT TURRET-PSEUDO
|
||||
EQUAL? PRSA,V?THROUGH \?ELS5
|
||||
EQUAL? HERE,RUINS \?ELS10
|
||||
CALL DO-WALK,P?UP
|
||||
RSTACK
|
||||
?ELS10: EQUAL? HERE,MEADOW \?ELS12
|
||||
CALL CANT-ENTER,IT
|
||||
RSTACK
|
||||
?ELS12: CALL LOOK-AROUND-YOU
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?EXIT,V?DROP \?ELS16
|
||||
EQUAL? HERE,TURRET \?ELS21
|
||||
CALL DO-WALK,P?DOWN
|
||||
RSTACK
|
||||
?ELS21: CALL LOOK-AROUND-YOU
|
||||
RSTACK
|
||||
?ELS16: EQUAL? PRSA,V?LEAP \FALSE
|
||||
EQUAL? HERE,TURRET \FALSE
|
||||
SET 'PRSO,FALSE-VALUE
|
||||
CALL PERFORM,V?LEAP
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT TORTURE-DEVICES-F
|
||||
EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
PRINTR "All the usual torture devices are here, all quite mean and deadly looking."
|
||||
|
||||
|
||||
.FUNCT FLAXO-VIAL-F
|
||||
EQUAL? PRSA,V?READ \FALSE
|
||||
CALL FIXED-FONT-ON
|
||||
PRINTI "
|
||||
""FLAXO POTION
|
||||
(exquisite torture)"""
|
||||
CRLF
|
||||
CALL FIXED-FONT-OFF
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT FLAXO-POTION-F
|
||||
EQUAL? PRSA,V?DRINK,V?EAT \?ELS5
|
||||
CALL HELD?,FLAXO-VIAL
|
||||
ZERO? STACK \?ELS5
|
||||
CALL POTION-POUR,FLAXO-VIAL
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?RESEARCH \?ELS9
|
||||
CALL READ-ABOUT-POTIONS,2
|
||||
RSTACK
|
||||
?ELS9: EQUAL? PRSA,V?DRINK,V?EAT \?ELS11
|
||||
MOVE FLAXO-POTION,DIAL
|
||||
PRINTI "The potion tastes like a combination of anchovies, prune juice, and garlic powder. As you finish swallowing the potion, a well-muscled troll saunters in"
|
||||
EQUAL? HERE,TORTURE-CHAMBER \?CND14
|
||||
PRINTI " and straps you to a torture device"
|
||||
?CND14: PRINTR ". He whacks your head with a wooden two-by-four, grunting ""You are playing Sorcerer. It was written by S. Eric Meretzky. You will have fun and enjoy yourself."" He repeats this action 999 more times, then vanishes without a trace."
|
||||
?ELS11: EQUAL? PRSA,V?DROP \?ELS22
|
||||
CALL PERFORM,V?POUR,PRSO,PRSI
|
||||
RTRUE
|
||||
?ELS22: EQUAL? PRSA,V?POUR \FALSE
|
||||
EQUAL? PRSO,FLAXO-POTION \FALSE
|
||||
CALL POTION-POUR,FLAXO-VIAL
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT PIT-OF-BONES-EXIT-F
|
||||
ZERO? FLYING /?ELS3
|
||||
PRINTI "You can't fly high enough to reach the hole."
|
||||
CRLF
|
||||
RFALSE
|
||||
?ELS3: PRINTI "The hole is too high to reach."
|
||||
CRLF
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT BONES-PSEUDO
|
||||
EQUAL? PRSA,V?DIG,V?SEARCH,V?TAKE \?ELS5
|
||||
PRINTR "They're at the bottom of the pit."
|
||||
?ELS5: EQUAL? PRSA,V?MALYON \FALSE
|
||||
CALL JIGS-UP,STR?225
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT PIT-PSEUDO
|
||||
EQUAL? PRSA,V?THROUGH,V?LEAP \?ELS5
|
||||
CALL DO-WALK,P?DOWN
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
|
||||
PRINTR "Bones. Lots of bones."
|
||||
|
||||
|
||||
.FUNCT TOLL-GATE-CROSSING-F
|
||||
FSET? GATE,OPENBIT \?ELS5
|
||||
RETURN OUTSIDE-STORE
|
||||
?ELS5: ZERO? FLYING /?ELS7
|
||||
CALL PERFORM,V?CLIMB-OVER,GATE
|
||||
RFALSE
|
||||
?ELS7: PRINTI "A sturdy toll gate blocks the highway."
|
||||
CRLF
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT GATE-F
|
||||
EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS5
|
||||
CALL OPEN-CLOSE
|
||||
ZERO? STACK \TRUE
|
||||
PRINTR "Only the gnome can do that."
|
||||
?ELS5: EQUAL? PRSA,V?REZROV \?ELS16
|
||||
FSET? GATE,OPENBIT /FALSE
|
||||
ZERO? GNOME-SLEEPING /?ELS23
|
||||
SET 'GNOME-SLEEPING,FALSE-VALUE
|
||||
CALL QUEUE,I-GNOME,2
|
||||
PUT STACK,0,1
|
||||
PRINTR "The gate flies open, waking the gnome, who leaps up and slams it closed again. ""Hey! This is a toll gate! Nobody gets through here without paying the one zorkmid toll. Not nobody, not no how."""
|
||||
?ELS23: SET 'GNOME-SLEEPING,TRUE-VALUE
|
||||
CALL JIGS-UP,STR?228
|
||||
RSTACK
|
||||
?ELS16: EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-OVER \FALSE
|
||||
PRINTR "The gate extends to the roof of the tunnel, and there are pointed nasties all over it."
|
||||
|
||||
|
||||
.FUNCT BOOTH-F
|
||||
EQUAL? PRSA,V?THROUGH \?ELS5
|
||||
FSET? GATE,OPENBIT \?ELS10
|
||||
CALL JIGS-UP,STR?229
|
||||
RSTACK
|
||||
?ELS10: PRINTR "The booth is on the other side of the toll gate."
|
||||
?ELS5: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
|
||||
FSET? GATE,OPENBIT \?ELS21
|
||||
PRINTR "It's dark inside the toll booth."
|
||||
?ELS21: CALL PERFORM,V?THROUGH,BOOTH
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT GNOME-DESCFCN,RARG
|
||||
ZERO? GNOME-SLEEPING /?ELS5
|
||||
PRINTR "A fat old gnome with a long white beard is sleeping soundly just outside the toll booth. His loud snores echo around the caverns."
|
||||
?ELS5: PRINTR "A chubby gnome stands behind the toll gate, grinning broadly."
|
||||
|
||||
|
||||
.FUNCT GNOME-F
|
||||
EQUAL? GNOME,WINNER \?ELS5
|
||||
ZERO? GNOME-SLEEPING /?ELS10
|
||||
CALL POOR-LISTENERS
|
||||
CALL STOP
|
||||
RSTACK
|
||||
?ELS10: EQUAL? PRSA,V?OPEN \?ELS13
|
||||
EQUAL? PRSO,GATE \?ELS13
|
||||
PRINTR """You'll have to pay the toll first,"" explains the gnome cheerfully, ""and the toll is one zorkmid."""
|
||||
?ELS13: PRINTI """Conversing with customers is disallowed by union rules."""
|
||||
CRLF
|
||||
CALL STOP
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?KICK,V?SHAKE \?ELS23
|
||||
ZERO? GNOME-SLEEPING /?ELS23
|
||||
CALL PERFORM,V?ALARM,GNOME
|
||||
RTRUE
|
||||
?ELS23: EQUAL? PRSA,V?LISTEN \?ELS27
|
||||
ZERO? GNOME-SLEEPING /?ELS27
|
||||
PRINTR "The gnome snores loudly."
|
||||
?ELS27: EQUAL? PRSA,V?ALARM \?ELS33
|
||||
ZERO? GNOME-SLEEPING \?ELS38
|
||||
PRINTR "He's awake!"
|
||||
?ELS38: FSET? GATE,OPENBIT \?ELS42
|
||||
PRINTR "The gnome opens one eye and looks at you. ""You again! Just go through. Let me sleep."" He begins snoring again."
|
||||
?ELS42: ZERO? GNOME-ANNOYED /?ELS46
|
||||
CALL JIGS-UP,STR?230
|
||||
RSTACK
|
||||
?ELS46: SET 'GNOME-SLEEPING,FALSE-VALUE
|
||||
CALL QUEUE,I-GNOME,2
|
||||
PUT STACK,0,1
|
||||
PRINTR "The gnome stirs a bit and opens one eye, which wanders around until it notices you. He jumps to his feet. ""One zorkmid, please,"" he yells with a smile."
|
||||
?ELS33: EQUAL? PRSA,V?ASK-FOR,V?ASK-ABOUT,V?GIVE \?ELS53
|
||||
ZERO? GNOME-SLEEPING /?ELS53
|
||||
PRINTR "The gnome is asleep, remember?"
|
||||
?ELS53: FSET? GATE,OPENBIT \?ELS59
|
||||
EQUAL? PRSA,V?REACH-IN,V?LOOK-INSIDE,V?SEARCH /?THN62
|
||||
EQUAL? PRSA,V?PICK \?ELS59
|
||||
?THN62: ZERO? COIN-STOLEN \?ELS59
|
||||
ZERO? FWEEPED \?ELS59
|
||||
SET 'COIN-STOLEN,TRUE-VALUE
|
||||
MOVE ZORKMID,PROTAGONIST
|
||||
PRINTR "You carefully search the sleeping gnome, and take the zorkmid coin you find in his pocket!"
|
||||
?ELS59: EQUAL? PRSA,V?GIVE \?ELS67
|
||||
EQUAL? PRSO,ZORKMID \?ELS67
|
||||
FSET? ZORKMID,ONBIT \?CND70
|
||||
CALL GNOME-REFUSES
|
||||
RTRUE
|
||||
?CND70: FSET GATE,OPENBIT
|
||||
SET 'GNOME-SLEEPING,TRUE-VALUE
|
||||
MOVE ZORKMID,DIAL
|
||||
CALL INT,I-GNOME
|
||||
PUT STACK,0,0
|
||||
ADD SCORE,20 >SCORE
|
||||
PRINTR "The gnome pockets the coin and opens the gate. Before you can take a step the gnome falls asleep again."
|
||||
?ELS67: EQUAL? PRSA,V?YOMIN \FALSE
|
||||
ZERO? GNOME-SLEEPING /?ELS81
|
||||
PRINTR "The thoughts of the sleeping gnome are focused on certain activities involving female gnomes. Embarrassed, you withdraw."
|
||||
?ELS81: PRINTR "The thoughts of the gnome seem evenly divided between getting money from you and getting back to sleep."
|
||||
|
||||
|
||||
.FUNCT GNOME-REFUSES
|
||||
PRINTR "The gnome refuses, saying ""That coin is giving off light, and is therefore not legal tender."""
|
||||
|
||||
|
||||
.FUNCT I-GNOME
|
||||
CALL QUEUE,I-GNOME,-1
|
||||
PUT STACK,0,1
|
||||
EQUAL? HERE,TOLL-GATE \?ELS5
|
||||
INC 'PATIENCE-COUNTER
|
||||
EQUAL? PATIENCE-COUNTER,5 \?ELS10
|
||||
SET 'GNOME-SLEEPING,TRUE-VALUE
|
||||
CALL INT,I-GNOME
|
||||
PUT STACK,0,0
|
||||
SET 'GNOME-ANNOYED,TRUE-VALUE
|
||||
CRLF
|
||||
PRINTR """Thanks for nothing, chum,"" growls the gnome as he resumes his nap."
|
||||
?ELS10: CRLF
|
||||
PRINTR """Well?"" asks the gnome, tapping impatiently. ""You've interrupted my nap. Are you going to pay the toll, or not?"""
|
||||
?ELS5: SET 'GNOME-SLEEPING,TRUE-VALUE
|
||||
SET 'PATIENCE-COUNTER,3
|
||||
CALL INT,I-GNOME
|
||||
PUT STACK,0,0
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT SIGN-PSEUDO
|
||||
EQUAL? PRSA,V?READ \FALSE
|
||||
CALL FIXED-FONT-ON
|
||||
PRINTI "
|
||||
""ZEKE'S APPLIANCE STORE
|
||||
|
||||
Official outlet for all
|
||||
Frobozz Magic Appliances"""
|
||||
CRLF
|
||||
CALL FIXED-FONT-OFF
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT STORE-PSEUDO
|
||||
EQUAL? PRSA,V?THROUGH \?ELS5
|
||||
EQUAL? HERE,STORE \?ELS10
|
||||
CALL LOOK-AROUND-YOU
|
||||
RSTACK
|
||||
?ELS10: CALL DO-WALK,P?SOUTH
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?DROP,V?EXIT \?ELS14
|
||||
EQUAL? HERE,STORE \?ELS19
|
||||
CALL DO-WALK,P?NORTH
|
||||
RSTACK
|
||||
?ELS19: CALL LOOK-AROUND-YOU
|
||||
RSTACK
|
||||
?ELS14: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
|
||||
EQUAL? HERE,STORE \?ELS28
|
||||
CALL LOOK-AROUND-YOU
|
||||
RSTACK
|
||||
?ELS28: CALL MAKE-OUT
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT WAXER-F
|
||||
EQUAL? PRSA,V?LAMP-ON \?ELS5
|
||||
CALL HELD?,WAXER
|
||||
ZERO? STACK /?ELS10
|
||||
PRINTR "Better put it down, first."
|
||||
?ELS10: ZERO? FWEEPED /?ELS14
|
||||
CALL BATTY
|
||||
RSTACK
|
||||
?ELS14: EQUAL? HERE,LAGOON,LAGOON-FLOOR \?ELS17
|
||||
CALL JIGS-UP,STR?233
|
||||
RSTACK
|
||||
?ELS17: EQUAL? HERE,MINE-FIELD \?ELS19
|
||||
SET 'FLYING,FALSE-VALUE
|
||||
MOVE WAXER,DIAL
|
||||
CALL DO-WALK,P?NORTH
|
||||
RSTACK
|
||||
?ELS19: PRINTI "The waxer whirrs about the "
|
||||
LOC PROTAGONIST
|
||||
FSET? STACK,VEHBIT \?ELS26
|
||||
PRINTI "vehicle"
|
||||
JUMP ?CND24
|
||||
?ELS26: PRINTI "room"
|
||||
?CND24: PRINTR " for a minute, polishing the floor."
|
||||
?ELS5: EQUAL? PRSA,V?LAMP-OFF \FALSE
|
||||
PRINTR "It is."
|
||||
|
||||
|
||||
.FUNCT CRATER-F,RARG
|
||||
EQUAL? RARG,M-LOOK \FALSE
|
||||
PRINTI "You are "
|
||||
ZERO? FLYING /?ELS10
|
||||
PRINTI "floating near"
|
||||
JUMP ?CND8
|
||||
?ELS10: PRINTI "standing in"
|
||||
?CND8: PRINTR " the center of an enormous crater, strewn with debris. Several points around the perimeter look climbable."
|
||||
|
||||
|
||||
.FUNCT CRATER-OUT-F
|
||||
CALL V-WALK-AROUND
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT CRATER-EXIT-F
|
||||
ZERO? FLYING /?ELS5
|
||||
PRINTI "As you try to fly over the rim here, a heavy gust of wind blows you back."
|
||||
CRLF
|
||||
RFALSE
|
||||
?ELS5: PRINTI "You attempt to climb the rim here, but the rubble is loose and you slide back down."
|
||||
CRLF
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT CRATER-PSEUDO
|
||||
EQUAL? PRSA,V?THROUGH \?ELS5
|
||||
EQUAL? HERE,CRATER \?ELS10
|
||||
PRINTR "Where do you think you are?"
|
||||
?ELS10: EQUAL? HERE,EDGE-OF-CRATER \?ELS14
|
||||
CALL DO-WALK,P?SW
|
||||
RSTACK
|
||||
?ELS14: EQUAL? HERE,EDGE-OF-CHASM \?ELS16
|
||||
CALL DO-WALK,P?EAST
|
||||
RSTACK
|
||||
?ELS16: EQUAL? HERE,SLIMY-ROOM \?ELS18
|
||||
CALL DO-WALK,P?SOUTH
|
||||
RSTACK
|
||||
?ELS18: CALL DO-WALK,P?NORTH
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?CLIMB-FOO \?ELS22
|
||||
CALL V-WALK-AROUND
|
||||
RSTACK
|
||||
?ELS22: EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?LEAVE \FALSE
|
||||
EQUAL? HERE,CRATER \?ELS29
|
||||
CALL DO-WALK,P?UP
|
||||
RSTACK
|
||||
?ELS29: CALL LOOK-AROUND-YOU
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT CHASM-EXIT-F
|
||||
ZERO? FLYING /?ELS5
|
||||
PRINTI "You fly easily across the chasm..."
|
||||
CRLF
|
||||
CRLF
|
||||
EQUAL? HERE,BARE-PASSAGE \?ELS13
|
||||
RETURN EDGE-OF-CHASM
|
||||
?ELS13: RETURN BARE-PASSAGE
|
||||
?ELS5: PRINTI "If you really want to jump across the chasm, just say so."
|
||||
CRLF
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT CHASM-PSEUDO
|
||||
EQUAL? PRSA,V?LEAP \FALSE
|
||||
RANDOM 100
|
||||
LESS? 75,STACK /?ELS10
|
||||
CALL JIGS-UP,STR?238
|
||||
RSTACK
|
||||
?ELS10: EQUAL? HERE,EDGE-OF-CHASM \?ELS17
|
||||
CALL GOTO,BARE-PASSAGE
|
||||
RSTACK
|
||||
?ELS17: CALL GOTO,EDGE-OF-CHASM
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT TREE-ROOM-F,RARG
|
||||
EQUAL? RARG,M-ENTER \FALSE
|
||||
PUT VEZZAS,3,0
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT ZORKMID-TREE-F
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
PRINTR "It is laden with zorkmids, glinting in the light."
|
||||
?ELS5: EQUAL? PRSA,V?REZROV \?ELS9
|
||||
CALL V-SWANZO
|
||||
RSTACK
|
||||
?ELS9: EQUAL? PRSA,V?CLIMB-UP,V?CLIMB-FOO \FALSE
|
||||
PRINTR "The branches don't look sturdy enough."
|
||||
|
||||
|
||||
.FUNCT ZORKMID-F
|
||||
EQUAL? PRSA,V?PICK \?ELS5
|
||||
FSET? PRSO,TRYTAKEBIT \?ELS5
|
||||
EQUAL? ZORKMID,PRSO \?ELS5
|
||||
CALL PERFORM,V?TAKE,PRSO,PRSI
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?TAKE \?ELS9
|
||||
FSET? PRSO,TRYTAKEBIT \?ELS9
|
||||
FCLEAR PRSO,TRYTAKEBIT
|
||||
FCLEAR PRSO,NDESCBIT
|
||||
MOVE ZORKMID-TREE,DIAL
|
||||
MOVE ZORKMID,PROTAGONIST
|
||||
ADD SCORE,15 >SCORE
|
||||
PRINTR "As you pluck the first zorkmid, the tree shimmers and vanishes! (I guess it was just an illusion.) You are left holding a solitary zorkmid coin."
|
||||
?ELS9: EQUAL? PRSA,V?EXAMINE,V?COUNT \?ELS15
|
||||
IN? ZORKMID-TREE,HERE \?ELS15
|
||||
PRINTR "There are countless coins, hanging from every branch of the tree."
|
||||
?ELS15: EQUAL? PRSA,V?EXAMINE \?ELS21
|
||||
PRINTR "The coin pictures a man with an incredibly flat head, wearing a gaudy crown."
|
||||
?ELS21: EQUAL? PRSA,V?BITE \?ELS25
|
||||
PRINTR "Yep, it's real."
|
||||
?ELS25: EQUAL? PRSA,V?RESEARCH \FALSE
|
||||
PRINTI "An article in the monetary section explains that the zorkmid was the unit of currency of the Great Underground Empire, and is still used in most parts of the kingdom today. A picture of a zorkmid coin is included. "
|
||||
CALL PERFORM,V?EXAMINE,ZORKMID
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT HALL-OF-CARVINGS-F,RARG
|
||||
EQUAL? RARG,M-LOOK \FALSE
|
||||
PRINTI "You have entered a large room whose walls are covered with intricate carvings. "
|
||||
ZERO? DRAGON-MOVED /?ELS10
|
||||
PRINTI "A passage has been recently opened to the south, and is only partially blocked by a huge stone dragon, poised in the midst of an attack."
|
||||
JUMP ?CND8
|
||||
?ELS10: PRINTI "The largest and most striking carving, on the southern wall, is of a huge sleeping dragon!"
|
||||
?CND8: PRINTR " A winding tunnel leads north."
|
||||
|
||||
|
||||
.FUNCT DRAGON-F
|
||||
EQUAL? PRSA,V?MALYON \FALSE
|
||||
ZERO? MALYON-YONKED /?ELS10
|
||||
ZERO? DRAGON-MOVED /?ELS16
|
||||
CALL JIGS-UP,STR?243
|
||||
RSTACK
|
||||
?ELS16: SET 'DRAGON-MOVED,TRUE-VALUE
|
||||
PRINTR "The dragon is suddenly imbued with life and begins to move. It shakes itself loose from the wall, which crumbles down upon the dragon, revealing a southward passage! The dragon howls with pain and anger. Spotting you, the dragon rears back its head, smoke billowing from its nostrils. Then, just as it seems that you will be barbecued, the dragon reverts to stone!"
|
||||
?ELS10: PRINTR "The dragon seems to shiver for a moment, but that is all."
|
||||
|
||||
.ENDI
|
|
@ -1253,7 +1253,7 @@ with a smile." CR>)>)
|
|||
,GNOME-SLEEPING>
|
||||
<TELL "The gnome is asleep, remember?" CR>)
|
||||
(<AND <FSET? ,GATE ,OPENBIT>
|
||||
<VERB? SEARCH LOOK-INSIDE PICK>
|
||||
<VERB? SEARCH LOOK-INSIDE REACH-IN PICK>
|
||||
<NOT ,COIN-STOLEN>
|
||||
<NOT ,FWEEPED>>
|
||||
<SETG COIN-STOLEN T>
|
||||
|
|
928
coal.zap
Normal file
928
coal.zap
Normal file
|
@ -0,0 +1,928 @@
|
|||
|
||||
|
||||
.FUNCT COAL-F
|
||||
EQUAL? PRSA,V?TAKE \FALSE
|
||||
PRINTR "Such menial tasks are best left to troglodytes."
|
||||
|
||||
|
||||
.FUNCT SOOTY-ROOM-F,RARG
|
||||
EQUAL? RARG,M-ENTER \FALSE
|
||||
FSET? SOOTY-ROOM,TOUCHBIT /FALSE
|
||||
ADD SCORE,20 >SCORE
|
||||
RETURN SCORE
|
||||
|
||||
|
||||
.FUNCT SOOTY-ROOM-EXIT-F
|
||||
FSET? COAL-BIN-ROOM,TOUCHBIT \?ELS5
|
||||
PRINTI "That passage is now completely blocked by a cave-in."
|
||||
CRLF
|
||||
RFALSE
|
||||
?ELS5: RETURN COAL-BIN-ROOM
|
||||
|
||||
|
||||
.FUNCT TIMBER-PSEUDO
|
||||
EQUAL? PRSA,V?MOVE \FALSE
|
||||
CALL JIGS-UP,STR?299
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT COAL-BIN-ROOM-F,RARG
|
||||
EQUAL? RARG,M-ENTER \?ELS5
|
||||
FSET? HERE,TOUCHBIT /?ELS10
|
||||
RANDOM 873 >COMBO
|
||||
PUT VEZZAS,5,0
|
||||
PRINTI "There is a rumbling noise behind you as the ceiling of the tunnel collapses, blocking your retreat! The air smells strongly of coal gas. "
|
||||
ZERO? VILSTUED /?ELS15
|
||||
CALL QUEUE,I-OLDER-SELF,2
|
||||
PUT STACK,0,1
|
||||
PRINTI "Good thing you took that vilstu potion"
|
||||
JUMP ?CND13
|
||||
?ELS15: CALL QUEUE,I-SUFFOCATE,2
|
||||
PUT STACK,0,1
|
||||
PRINTI "You won't survive long in this atmosphere"
|
||||
?CND13: PRINTI "."
|
||||
CRLF
|
||||
CRLF
|
||||
RTRUE
|
||||
?ELS10: ZERO? GOLMACKED /FALSE
|
||||
CALL QUEUE,I-YOUNGER-SELF,-1
|
||||
PUT STACK,0,1
|
||||
MOVE YOUNGER-SELF,HERE
|
||||
ZERO? YOUNGER-HAS-SPELL-BOOK /?CND28
|
||||
IN? SPELL-BOOK,LAGOON-FLOOR \?CND32
|
||||
SET 'BOOK-BELONGS-IN-LAGOON,TRUE-VALUE
|
||||
?CND32: MOVE SPELL-BOOK,YOUNGER-SELF
|
||||
FSET SPELL-BOOK,TRYTAKEBIT
|
||||
?CND28: CALL LIT?,HERE >LIT
|
||||
RETURN LIT
|
||||
?ELS5: EQUAL? RARG,M-END \FALSE
|
||||
RANDOM 100
|
||||
LESS? 35,STACK /FALSE
|
||||
CRLF
|
||||
PRINTR "A few lumps of coal spill from the coal chute."
|
||||
|
||||
|
||||
.FUNCT I-SUFFOCATE
|
||||
CRLF
|
||||
ZERO? SUFFOCATE-WARNING /?ELS5
|
||||
CALL JIGS-UP,STR?301
|
||||
RSTACK
|
||||
?ELS5: SET 'SUFFOCATE-WARNING,TRUE-VALUE
|
||||
CALL QUEUE,I-SUFFOCATE,2
|
||||
PUT STACK,0,1
|
||||
PRINTR "You are about to pass out from the bad air."
|
||||
|
||||
|
||||
.FUNCT COAL-BIN-F
|
||||
EQUAL? PRSA,V?LOOK-INSIDE \?ELS5
|
||||
PRINTR "It's full of coal."
|
||||
?ELS5: EQUAL? PRSA,V?DIG,V?SEARCH \FALSE
|
||||
PRINTR "You find nothing of interest."
|
||||
|
||||
|
||||
.FUNCT UPPER-CHUTE-F
|
||||
EQUAL? PRSA,V?LEAP,V?THROUGH \?ELS5
|
||||
EQUAL? HERE,TOP-OF-CHUTE,SLANTED-ROOM \?ELS10
|
||||
CALL DO-WALK,P?DOWN
|
||||
RSTACK
|
||||
?ELS10: CALL LOOK-AROUND-YOU
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-UP \?ELS14
|
||||
EQUAL? HERE,TOP-OF-CHUTE \?ELS19
|
||||
CALL BOTTOM-TOP-OF-CHUTE,TRUE-VALUE
|
||||
RSTACK
|
||||
?ELS19: CALL DO-WALK,P?UP
|
||||
RSTACK
|
||||
?ELS14: EQUAL? PRSA,V?CLIMB-DOWN \?ELS23
|
||||
EQUAL? HERE,COAL-BIN-ROOM \?ELS28
|
||||
CALL BOTTOM-TOP-OF-CHUTE
|
||||
RSTACK
|
||||
?ELS28: CALL DO-WALK,P?DOWN
|
||||
RSTACK
|
||||
?ELS23: EQUAL? PRSA,V?LOWER-INTO,V?PUT \?ELS32
|
||||
EQUAL? PRSI,UPPER-CHUTE \?ELS32
|
||||
EQUAL? HERE,TOP-OF-CHUTE,SLANTED-ROOM \?ELS39
|
||||
EQUAL? PRSO,BEAM \?ELS44
|
||||
ZERO? ROPE-TO-BEAM /?ELS44
|
||||
MOVE ROPE,COAL-BIN-ROOM
|
||||
MOVE BEAM,COAL-BIN-ROOM
|
||||
SET 'ROPE-PLACED,FALSE-VALUE
|
||||
FCLEAR BEAM,TRYTAKEBIT
|
||||
FCLEAR ROPE,TRYTAKEBIT
|
||||
CALL BEAM-AND-ROPE
|
||||
RSTACK
|
||||
?ELS44: EQUAL? PRSO,ROPE \?ELS48
|
||||
ZERO? ROPE-TO-BEAM /?ELS48
|
||||
CALL DROP-BEAM-FIRST
|
||||
ZERO? STACK \TRUE
|
||||
SET 'ROPE-PLACED,TRUE-VALUE
|
||||
FSET BEAM,TRYTAKEBIT
|
||||
FSET ROPE,TRYTAKEBIT
|
||||
MOVE ROPE,HERE
|
||||
CALL ROPE-HANGS
|
||||
RSTACK
|
||||
?ELS48: GETP PRSO,P?SIZE
|
||||
LESS? STACK,20 \?ELS58
|
||||
MOVE PRSO,DIAL
|
||||
JUMP ?CND56
|
||||
?ELS58: MOVE PRSO,COAL-BIN-ROOM
|
||||
?CND56: CALL DISAPPEARS-DOWN-CHUTE
|
||||
RSTACK
|
||||
?ELS39: EQUAL? HERE,COAL-BIN-ROOM \FALSE
|
||||
CALL LOOK-AROUND-YOU
|
||||
RSTACK
|
||||
?ELS32: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
|
||||
CALL PERFORM,V?RESEARCH,UPPER-CHUTE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT LOWER-CHUTE-F
|
||||
EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-UP \?ELS5
|
||||
EQUAL? HERE,COAL-BIN-ROOM \?ELS10
|
||||
CALL BOTTOM-TOP-OF-CHUTE,TRUE-VALUE
|
||||
RSTACK
|
||||
?ELS10: CALL DO-WALK,P?UP
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?LEAP,V?THROUGH,V?CLIMB-DOWN \?ELS14
|
||||
EQUAL? HERE,COVE \?ELS19
|
||||
CALL BOTTOM-TOP-OF-CHUTE
|
||||
RSTACK
|
||||
?ELS19: CALL DO-WALK,P?DOWN
|
||||
RSTACK
|
||||
?ELS14: EQUAL? PRSA,V?LOWER-INTO,V?PUT \?ELS23
|
||||
EQUAL? PRSI,LOWER-CHUTE \?ELS23
|
||||
EQUAL? HERE,COAL-BIN-ROOM \?ELS30
|
||||
EQUAL? PRSO,BEAM \?ELS35
|
||||
ZERO? ROPE-TO-BEAM /?ELS35
|
||||
MOVE ROPE,LAGOON-FLOOR
|
||||
MOVE BEAM,LAGOON-FLOOR
|
||||
SET 'ROPE-IN-LOWER-CHUTE,FALSE-VALUE
|
||||
FCLEAR ROPE,TRYTAKEBIT
|
||||
CALL BEAM-AND-ROPE
|
||||
RSTACK
|
||||
?ELS35: EQUAL? PRSO,ROPE \?ELS39
|
||||
ZERO? ROPE-TO-BEAM /?ELS39
|
||||
CALL DROP-BEAM-FIRST
|
||||
ZERO? STACK \TRUE
|
||||
SET 'ROPE-IN-LOWER-CHUTE,TRUE-VALUE
|
||||
FSET ROPE,TRYTAKEBIT
|
||||
MOVE ROPE,HERE
|
||||
CALL ROPE-HANGS
|
||||
RSTACK
|
||||
?ELS39: MOVE PRSO,LAGOON-FLOOR
|
||||
FSET? PRSO,SCROLLBIT /?THN50
|
||||
EQUAL? PRSO,SPELL-BOOK \?CND47
|
||||
?THN50: FSET PRSO,MUNGBIT
|
||||
?CND47: CALL DISAPPEARS-DOWN-CHUTE
|
||||
RSTACK
|
||||
?ELS30: EQUAL? HERE,COAL-BIN-ROOM \FALSE
|
||||
CALL LOOK-AROUND-YOU
|
||||
RSTACK
|
||||
?ELS23: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
|
||||
CALL PERFORM,V?RESEARCH,LOWER-CHUTE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT DROP-BEAM-FIRST
|
||||
CALL HELD?,BEAM
|
||||
ZERO? STACK /FALSE
|
||||
PRINTR "You'll have to drop the beam before doing that."
|
||||
|
||||
|
||||
.FUNCT BEAM-AND-ROPE
|
||||
PRINTR "The beam and rope both slide into the chute."
|
||||
|
||||
|
||||
.FUNCT ROPE-HANGS
|
||||
PRINTR "The rope hangs from the beam, into the chute."
|
||||
|
||||
|
||||
.FUNCT DISAPPEARS-DOWN-CHUTE
|
||||
PRINTI "The "
|
||||
PRINTD PRSO
|
||||
PRINTR " disappears into the chute."
|
||||
|
||||
|
||||
.FUNCT OLDER-SELF-F
|
||||
EQUAL? WINNER,OLDER-SELF \?ELS5
|
||||
PRINTI "Your older self ignores your words."
|
||||
CRLF
|
||||
CALL STOP
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS9
|
||||
PRINT OLDER-INTRO
|
||||
PRINTR " The stranger is carrying a smelly scroll."
|
||||
?ELS9: EQUAL? PRSA,V?GIVE \?ELS13
|
||||
EQUAL? PRSO,SPELL-BOOK \?ELS13
|
||||
MOVE SPELL-BOOK,OLDER-SELF
|
||||
FSET SPELL-BOOK,TRYTAKEBIT
|
||||
PRINTR "Your older self accepts the spell book gratefully."
|
||||
?ELS13: EQUAL? PRSA,V?FOLLOW \?ELS19
|
||||
ZERO? TWIN-FOLLOW /?ELS19
|
||||
CALL DO-WALK,P?DOWN
|
||||
RSTACK
|
||||
?ELS19: EQUAL? PRSA,V?AIMFIZ \?ELS23
|
||||
CALL V-SWANZO
|
||||
RSTACK
|
||||
?ELS23: EQUAL? PRSA,V?YOMIN \FALSE
|
||||
PRINTR "The thoughts of your older self center on attempting to breathe."
|
||||
|
||||
|
||||
.FUNCT I-OLDER-SELF
|
||||
CALL QUEUE,I-OLDER-SELF,-1
|
||||
PUT STACK,0,1
|
||||
INC 'OLDER-COUNTER
|
||||
EQUAL? OLDER-COUNTER,1 \?ELS5
|
||||
MOVE OLDER-SELF,COAL-BIN-ROOM
|
||||
CALL HELD?,SPELL-BOOK
|
||||
ZERO? STACK /?CND6
|
||||
SET 'YOUNGER-HAS-SPELL-BOOK,TRUE-VALUE
|
||||
?CND6: EQUAL? HERE,COAL-BIN-ROOM \?ELS13
|
||||
CRLF
|
||||
PRINTI "Someone slides out of the coal chute, and lands near the bin. "
|
||||
PRINT OLDER-INTRO
|
||||
CRLF
|
||||
SET 'OLDER-INTRODUCED,TRUE-VALUE
|
||||
RETURN OLDER-INTRODUCED
|
||||
?ELS13: EQUAL? HERE,DIAL-ROOM \?ELS19
|
||||
CRLF
|
||||
PRINTR "You here a commotion from the room to the west."
|
||||
?ELS19: CALL INT,I-OLDER-SELF
|
||||
PUT STACK,0,0
|
||||
RFALSE
|
||||
?ELS5: EQUAL? OLDER-COUNTER,2 \?ELS25
|
||||
CALL DATA-TO-TABLE,MOVE-ONE-TABLE
|
||||
EQUAL? HERE,COAL-BIN-ROOM \?ELS30
|
||||
CRLF
|
||||
ZERO? OLDER-INTRODUCED \?CND31
|
||||
SET 'OLDER-INTRODUCED,TRUE-VALUE
|
||||
PRINTI "Someone is standing near the coal bin. "
|
||||
PRINT OLDER-INTRO
|
||||
CRLF
|
||||
CRLF
|
||||
?CND31: SET 'COMBO-DISCOVERED,TRUE-VALUE
|
||||
CALL OLDER-TELLS-COMBO
|
||||
IN? SPELL-BOOK,OLDER-SELF /?CND36
|
||||
PRINTI " Your older self then looks at you, almost expectantly."
|
||||
?CND36: CRLF
|
||||
RTRUE
|
||||
?ELS30: CRLF
|
||||
PRINTR "From the next room you glimpse someone gasping for air."
|
||||
?ELS25: EQUAL? OLDER-COUNTER,3 \?ELS46
|
||||
CALL DATA-TO-TABLE,MOVE-TWO-TABLE
|
||||
EQUAL? HERE,COAL-BIN-ROOM \?ELS51
|
||||
ZERO? OLDER-INTRODUCED \?CND52
|
||||
SET 'OLDER-INTRODUCED,TRUE-VALUE
|
||||
CRLF
|
||||
PRINTI "Someone is standing near the coal bin. "
|
||||
PRINT OLDER-INTRO
|
||||
CRLF
|
||||
?CND52: IN? SPELL-BOOK,OLDER-SELF \?ELS61
|
||||
MOVE SPELL-BOOK,YOUNGER-SELF
|
||||
FSET SPELL-BOOK,TRYTAKEBIT
|
||||
MOVE OLDER-SELF,DIAL
|
||||
MOVE VARDIK-SCROLL,DIAL
|
||||
SET 'TWIN-FOLLOW,TRUE-VALUE
|
||||
CALL QUEUE,I-TWIN-UNFOLLOW,1
|
||||
PUT STACK,0,1
|
||||
CRLF
|
||||
PRINTR "Your look-alike dives into the lower chute and slides out of view."
|
||||
?ELS61: ZERO? COMBO-DISCOVERED \?ELS65
|
||||
CRLF
|
||||
CALL OLDER-TELLS-COMBO
|
||||
CRLF
|
||||
RTRUE
|
||||
?ELS65: CRLF
|
||||
PRINTR """Give me...the spell book,"" croaks your older self."
|
||||
?ELS51: MOVE OLDER-SELF,DIAL
|
||||
MOVE VARDIK-SCROLL,DIAL
|
||||
CRLF
|
||||
PRINTR "Someone in the coal bin room dives into the lower chute."
|
||||
?ELS46: CALL DATA-TO-TABLE,MOVE-THREE-TABLE
|
||||
CALL INT,I-OLDER-SELF
|
||||
PUT STACK,0,0
|
||||
EQUAL? HERE,COAL-BIN-ROOM \?CND76
|
||||
IN? OLDER-SELF,HERE \?CND76
|
||||
CRLF
|
||||
PRINTI "Your older self dives into the lower chute."
|
||||
CRLF
|
||||
?CND76: MOVE OLDER-SELF,DIAL
|
||||
MOVE VARDIK-SCROLL,DIAL
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT OLDER-TELLS-COMBO
|
||||
PRINTI "Your disheveled ""twin"" is having difficulty breathing, but gasps, ""The combination is "
|
||||
PRINTN COMBO
|
||||
PRINTI "."""
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT I-TWIN-UNFOLLOW
|
||||
SET 'TWIN-FOLLOW,FALSE-VALUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT DATA-TO-TABLE,TABLE
|
||||
PUT TABLE,1,PRSA
|
||||
PUT TABLE,2,PRSO
|
||||
PUT TABLE,3,PRSI
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT YOUNGER-SELF-F
|
||||
EQUAL? YOUNGER-SELF,WINNER \?ELS5
|
||||
EQUAL? PRSA,V?COMBO \?ELS10
|
||||
EQUAL? PRSO,INTNUM \?ELS10
|
||||
EQUAL? P-NUMBER,COMBO \?CND13
|
||||
SET 'COMBO-REVEALED,TRUE-VALUE
|
||||
?CND13: PRINTR "Your younger self seems surprised by your statement."
|
||||
?ELS10: EQUAL? PRSA,V?GIVE \?ELS19
|
||||
EQUAL? PRSO,SPELL-BOOK \?ELS19
|
||||
EQUAL? PRSI,ME \?ELS19
|
||||
CALL SPELL-BOOK-PASS-OFF-CHECK
|
||||
ZERO? STACK \TRUE
|
||||
?ELS19: PRINTI "Your younger self seems confused, and doesn't respond."
|
||||
CRLF
|
||||
CALL STOP
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?YOMIN \?ELS27
|
||||
PRINTR "The thoughts of your younger self are confused, and seem to center on whether or not to perform a SAVE."
|
||||
?ELS27: EQUAL? PRSA,V?AIMFIZ \?ELS31
|
||||
CALL V-SWANZO
|
||||
RSTACK
|
||||
?ELS31: EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
PRINTI "It's almost like looking in a mirror. Your younger self looks confused"
|
||||
IN? SPELL-BOOK,YOUNGER-SELF \?CND36
|
||||
PRINTI ", and is carrying a spell book"
|
||||
?CND36: PRINTR "."
|
||||
|
||||
|
||||
.FUNCT YOUNGER-SELF-DESCFCN,TABLE
|
||||
LESS? YOUNGER-COUNTER,3 \?ELS3
|
||||
SET 'TABLE,MOVE-ONE-TABLE
|
||||
JUMP ?CND1
|
||||
?ELS3: EQUAL? YOUNGER-COUNTER,3 \?ELS5
|
||||
SET 'TABLE,MOVE-TWO-TABLE
|
||||
JUMP ?CND1
|
||||
?ELS5: SET 'TABLE,MOVE-THREE-TABLE
|
||||
?CND1: FSET? YOUNGER-SELF,TOUCHBIT \?ELS12
|
||||
PRINTI "Your younger self is here"
|
||||
ZERO? YOUNGER-HAS-SPELL-BOOK /?ELS19
|
||||
PRINTR ", holding your spell book."
|
||||
?ELS19: PRINTR "."
|
||||
?ELS12: FSET YOUNGER-SELF,TOUCHBIT
|
||||
PRINTI "Standing here, looking quite confused, is someone who could only be your younger self -- an exact duplicate of you, but cleaner and breathing with considerably less difficulty. You remember seeing this scene from another viewpoint just a short while ago."
|
||||
ZERO? YOUNGER-HAS-SPELL-BOOK /?CND31
|
||||
PRINTI " Among the items carried by your ""twin"" is your spell book."
|
||||
?CND31: CRLF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT SPELL-BOOK-PASS-OFF-CHECK,TABLE
|
||||
EQUAL? YOUNGER-COUNTER,1 \?ELS3
|
||||
SET 'TABLE,MOVE-ONE-TABLE
|
||||
JUMP ?CND1
|
||||
?ELS3: EQUAL? YOUNGER-COUNTER,2 \?ELS5
|
||||
SET 'TABLE,MOVE-TWO-TABLE
|
||||
JUMP ?CND1
|
||||
?ELS5: EQUAL? YOUNGER-COUNTER,3 \FALSE
|
||||
SET 'TABLE,MOVE-THREE-TABLE
|
||||
?CND1: GET TABLE,2
|
||||
EQUAL? STACK,SPELL-BOOK \?ELS18
|
||||
GET TABLE,3
|
||||
EQUAL? STACK,OLDER-SELF \?ELS18
|
||||
GET TABLE,1
|
||||
EQUAL? STACK,V?GIVE /TRUE
|
||||
?ELS18: GET TABLE,2
|
||||
EQUAL? STACK,OLDER-SELF \FALSE
|
||||
GET TABLE,3
|
||||
EQUAL? STACK,SPELL-BOOK \FALSE
|
||||
GET TABLE,1
|
||||
EQUAL? STACK,V?SGIVE \FALSE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT I-YOUNGER-SELF
|
||||
INC 'YOUNGER-COUNTER
|
||||
IN? YOUNGER-SELF,HERE \FALSE
|
||||
ZERO? LIT \?ELS7
|
||||
ZERO? BLORTED /FALSE
|
||||
?ELS7: EQUAL? YOUNGER-COUNTER,2 \?ELS11
|
||||
CALL YOUNGER-ACTIONS,MOVE-ONE-TABLE
|
||||
RSTACK
|
||||
?ELS11: EQUAL? YOUNGER-COUNTER,3 \?ELS13
|
||||
CALL YOUNGER-ACTIONS,MOVE-TWO-TABLE
|
||||
RSTACK
|
||||
?ELS13: EQUAL? YOUNGER-COUNTER,4 \FALSE
|
||||
CALL YOUNGER-ACTIONS,MOVE-THREE-TABLE
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT YOUNGER-ACTIONS,TABLE
|
||||
GET TABLE,2
|
||||
ZERO? STACK \?CND1
|
||||
PUT TABLE,2,NOT-HERE-OBJECT
|
||||
?CND1: GET TABLE,3
|
||||
ZERO? STACK \?CND4
|
||||
PUT TABLE,3,NOT-HERE-OBJECT
|
||||
?CND4: GET TABLE,2
|
||||
EQUAL? STACK,OLDER-SELF \?ELS9
|
||||
PUT TABLE,2,YOU-OBJECT
|
||||
JUMP ?CND7
|
||||
?ELS9: GET TABLE,2
|
||||
EQUAL? STACK,ME \?CND7
|
||||
PUT TABLE,2,YOUNGER-SELF
|
||||
?CND7: GET TABLE,3
|
||||
EQUAL? STACK,OLDER-SELF \?ELS14
|
||||
PUT TABLE,3,YOU-OBJECT
|
||||
JUMP ?CND12
|
||||
?ELS14: GET TABLE,3
|
||||
EQUAL? STACK,ME \?CND12
|
||||
PUT TABLE,3,YOUNGER-SELF
|
||||
?CND12: CRLF
|
||||
PRINTI "Your younger self "
|
||||
GET TABLE,2
|
||||
EQUAL? STACK,SPELL-BOOK \?ELS27
|
||||
GET TABLE,3
|
||||
EQUAL? STACK,YOU-OBJECT \?ELS27
|
||||
GET TABLE,1
|
||||
EQUAL? STACK,V?GIVE /?THN24
|
||||
?ELS27: GET TABLE,2
|
||||
EQUAL? STACK,YOU-OBJECT \?ELS23
|
||||
GET TABLE,3
|
||||
EQUAL? STACK,SPELL-BOOK \?ELS23
|
||||
GET TABLE,1
|
||||
EQUAL? STACK,V?SGIVE \?ELS23
|
||||
?THN24: MOVE SPELL-BOOK,PROTAGONIST
|
||||
FCLEAR SPELL-BOOK,TRYTAKEBIT
|
||||
PRINTR "hands you your spell book!"
|
||||
?ELS23: GET TABLE,1
|
||||
EQUAL? STACK,V?VERBOSE,V?BRIEF,V?SUPER-BRIEF /?THN34
|
||||
GET TABLE,1
|
||||
EQUAL? STACK,V?SCORE,V?SCRIPT,V?UNSCRIPT \?ELS33
|
||||
?THN34: PRINTR "is performing a spell of high technology."
|
||||
?ELS33: GET TABLE,1
|
||||
EQUAL? STACK,V?ANSWER,V?REPLY,V?CURSE /?THN40
|
||||
GET TABLE,1
|
||||
EQUAL? STACK,V?HELLO,V?TELL,V?ASK-FOR /?THN40
|
||||
GET TABLE,1
|
||||
EQUAL? STACK,V?SAY,V?THANK,V?YELL /?THN40
|
||||
GET TABLE,1
|
||||
EQUAL? STACK,V?ASK-ABOUT \?ELS39
|
||||
?THN40: PRINTR "is attempting to talk."
|
||||
?ELS39: GET TABLE,1
|
||||
EQUAL? STACK,V?CAST,V?GNUSTO,V?FROTZ /?THN46
|
||||
GET TABLE,1
|
||||
EQUAL? STACK,V?REZROV,V?IZYUK,V?FWEEP /?THN46
|
||||
GET TABLE,1
|
||||
EQUAL? STACK,V?AIMFIZ,V?SWANZO,V?VARDIK /?THN46
|
||||
GET TABLE,1
|
||||
EQUAL? STACK,V?MEEF,V?PULVER,V?GOLMAC /?THN46
|
||||
GET TABLE,1
|
||||
EQUAL? STACK,V?YOMIN,V?VEZZA,V?GASPAR /?THN46
|
||||
GET TABLE,1
|
||||
EQUAL? STACK,V?YONK,V?MALYON \?ELS45
|
||||
?THN46: PRINTR "is casting a familiar spell."
|
||||
?ELS45: GET TABLE,1
|
||||
EQUAL? STACK,V?INVENTORY \?ELS51
|
||||
PRINTR "is doing an inventory."
|
||||
?ELS51: GET TABLE,1
|
||||
EQUAL? STACK,V?DIAGNOSE \?ELS55
|
||||
PRINTR "is checking for wounds."
|
||||
?ELS55: GET TABLE,1
|
||||
EQUAL? STACK,V?WAIT \?ELS59
|
||||
PRINTR "is doing absolutely nothing."
|
||||
?ELS59: GET TABLE,1
|
||||
EQUAL? STACK,V?SLEEP \?ELS63
|
||||
PRINTR "is trying to fall asleep!"
|
||||
?ELS63: GET TABLE,1
|
||||
EQUAL? STACK,V?LEARN \?ELS67
|
||||
PRINTR "is studying a spell book."
|
||||
?ELS67: GET TABLE,1
|
||||
EQUAL? STACK,V?SPELLS \?ELS71
|
||||
PRINTR "seems lost in thought."
|
||||
?ELS71: GET TABLE,1
|
||||
EQUAL? STACK,V?LOOK \?ELS75
|
||||
PRINTR "is looking around."
|
||||
?ELS75: GET TABLE,1
|
||||
EQUAL? STACK,V?LEAP,V?SKIP \?ELS79
|
||||
PRINTR "is hopping around like a crazed rabbit."
|
||||
?ELS79: GET TABLE,1
|
||||
EQUAL? STACK,V?WALK,V?WALK-AROUND,V?WALK-TO \?ELS83
|
||||
PRINTR "is moving around."
|
||||
?ELS83: GET TABLE,1
|
||||
EQUAL? STACK,V?GIVE \?ELS87
|
||||
PRINTI "is trying to give"
|
||||
GET TABLE,2
|
||||
CALL ARTICLE,STACK
|
||||
PRINTI " to"
|
||||
GET TABLE,3
|
||||
CALL ARTICLE,STACK
|
||||
PRINTR "."
|
||||
?ELS87: GET TABLE,1
|
||||
EQUAL? STACK,V?SHOW \?ELS95
|
||||
PRINTI "is trying to show"
|
||||
GET TABLE,2
|
||||
CALL ARTICLE,STACK
|
||||
PRINTI " to"
|
||||
GET TABLE,3
|
||||
CALL ARTICLE,STACK
|
||||
PRINTR "."
|
||||
?ELS95: GET TABLE,1
|
||||
EQUAL? STACK,V?RAISE,V?LOWER,V?RUB /?THN104
|
||||
GET TABLE,1
|
||||
EQUAL? STACK,V?MOVE,V?SHAKE,V?PUSH /?THN104
|
||||
GET TABLE,1
|
||||
EQUAL? STACK,V?KICK,V?PUT-ON,V?PUSH-TO /?THN104
|
||||
GET TABLE,1
|
||||
EQUAL? STACK,V?PUT,V?PUT-UNDER,V?PUT-BEHIND \?ELS103
|
||||
?THN104: GET TABLE,1
|
||||
EQUAL? STACK,V?PUT \?CND106
|
||||
GET TABLE,2
|
||||
EQUAL? STACK,SPELL-BOOK \?CND106
|
||||
GET TABLE,3
|
||||
EQUAL? STACK,LOWER-CHUTE \?CND106
|
||||
MOVE SPELL-BOOK,DIAL
|
||||
?CND106: PRINTI "is attempting to move"
|
||||
GET TABLE,2
|
||||
CALL ARTICLE,STACK
|
||||
PRINTR "."
|
||||
?ELS103: GET TABLE,1
|
||||
EQUAL? STACK,V?EXAMINE,V?LOOK-INSIDE /?THN117
|
||||
GET TABLE,1
|
||||
EQUAL? STACK,V?LOOK-BEHIND,V?LOOK-UNDER \?ELS116
|
||||
?THN117: PRINTI "is examining"
|
||||
GET TABLE,2
|
||||
CALL ARTICLE,STACK
|
||||
PRINTR "."
|
||||
?ELS116: GET TABLE,1
|
||||
EQUAL? STACK,V?BOARD,V?ENTER,V?THROUGH \?ELS124
|
||||
PRINTI "is trying to get into"
|
||||
GET TABLE,2
|
||||
CALL ARTICLE,STACK
|
||||
PRINTR "."
|
||||
?ELS124: GET TABLE,1
|
||||
EQUAL? STACK,V?THROW,V?THROW-OFF \?ELS130
|
||||
PRINTI "is performing aeronautical experiments with"
|
||||
GET TABLE,2
|
||||
CALL ARTICLE,STACK
|
||||
PRINTR "."
|
||||
?ELS130: GET TABLE,1
|
||||
EQUAL? STACK,V?WHAT,V?WHERE,V?WHO \?ELS136
|
||||
PRINTI "is asking about"
|
||||
GET TABLE,2
|
||||
CALL ARTICLE,STACK
|
||||
PRINTR ", addressing the question to no one in particular."
|
||||
?ELS136: GET TABLE,1
|
||||
EQUAL? STACK,V?ATTACK,V?KILL,V?MUNG \?ELS142
|
||||
PRINTI "is attacking"
|
||||
GET TABLE,2
|
||||
CALL ARTICLE,STACK,TRUE-VALUE
|
||||
PRINTR "."
|
||||
?ELS142: GET TABLE,1
|
||||
EQUAL? STACK,V?EAT,V?DRINK \?ELS148
|
||||
PRINTI "is attempting to ingest"
|
||||
GET TABLE,2
|
||||
CALL ARTICLE,STACK
|
||||
PRINTR "."
|
||||
?ELS148: GET TABLE,1
|
||||
EQUAL? STACK,V?CLIMB-ON,V?CLIMB-UP,V?CLIMB-FOO /?THN155
|
||||
GET TABLE,1
|
||||
EQUAL? STACK,V?CLIMB-DOWN,V?CLIMB-OVER \?ELS154
|
||||
?THN155: PRINTI "is climbing"
|
||||
GET TABLE,2
|
||||
CALL ARTICLE,STACK,TRUE-VALUE
|
||||
PRINTR "."
|
||||
?ELS154: GET TABLE,1
|
||||
EQUAL? STACK,V?READ \?ELS162
|
||||
PRINTI "is reading"
|
||||
GET TABLE,2
|
||||
CALL ARTICLE,STACK
|
||||
PRINTR "."
|
||||
?ELS162: GET TABLE,1
|
||||
EQUAL? STACK,V?SMELL \?ELS168
|
||||
PRINTI "is smelling"
|
||||
GET TABLE,2
|
||||
CALL ARTICLE,STACK
|
||||
PRINTR "."
|
||||
?ELS168: GET TABLE,1
|
||||
EQUAL? STACK,V?LISTEN \?ELS174
|
||||
PRINTI "seems to be listening to"
|
||||
GET TABLE,2
|
||||
CALL ARTICLE,STACK
|
||||
PRINTR "."
|
||||
?ELS174: GET TABLE,1
|
||||
EQUAL? STACK,V?KISS \?ELS180
|
||||
PRINTI "tries to kiss"
|
||||
GET TABLE,2
|
||||
CALL ARTICLE,STACK
|
||||
PRINTR "."
|
||||
?ELS180: GET TABLE,1
|
||||
EQUAL? STACK,V?OPEN \?ELS186
|
||||
PRINTI "is trying to open"
|
||||
GET TABLE,2
|
||||
CALL ARTICLE,STACK
|
||||
PRINTR "."
|
||||
?ELS186: GET TABLE,1
|
||||
EQUAL? STACK,V?CLOSE \?ELS192
|
||||
PRINTI "is closing"
|
||||
GET TABLE,2
|
||||
CALL ARTICLE,STACK
|
||||
PRINTR "."
|
||||
?ELS192: GET TABLE,1
|
||||
EQUAL? STACK,V?EXIT,V?DISEMBARK \?ELS198
|
||||
PRINTI "is trying to leave"
|
||||
GET TABLE,2
|
||||
CALL ARTICLE,STACK
|
||||
PRINTR "."
|
||||
?ELS198: GET TABLE,1
|
||||
EQUAL? STACK,V?TAKE \?ELS204
|
||||
PRINTI "is reaching for"
|
||||
GET TABLE,2
|
||||
CALL ARTICLE,STACK
|
||||
PRINTR "."
|
||||
?ELS204: GET TABLE,1
|
||||
EQUAL? STACK,V?DROP \?ELS210
|
||||
PRINTI "is dropping"
|
||||
GET TABLE,2
|
||||
CALL ARTICLE,STACK
|
||||
PRINTR "."
|
||||
?ELS210: PRINTR "is doing something."
|
||||
|
||||
|
||||
.FUNCT LAMP-PSEUDO
|
||||
EQUAL? PRSA,V?TAKE \FALSE
|
||||
CALL PERFORM,V?TAKE,KEROSENE-LAMP
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT DIAL-DOOR-F
|
||||
EQUAL? PRSA,V?OPEN \?ELS5
|
||||
FSET? DIAL-DOOR,OPENBIT /?ELS5
|
||||
ZERO? DIAL-OPEN /?ELS12
|
||||
FSET DIAL-DOOR,OPENBIT
|
||||
ADD SCORE,COAL-DOOR-POINT >SCORE
|
||||
SET 'COAL-DOOR-POINT,0
|
||||
PRINTR "The door opens easily."
|
||||
?ELS12: PRINTR "The door won't budge."
|
||||
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS21
|
||||
CALL PERFORM,V?EXAMINE,DIAL
|
||||
RTRUE
|
||||
?ELS21: EQUAL? PRSA,V?REZROV \FALSE
|
||||
CALL JIGS-UP,STR?305
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT DIAL-F
|
||||
EQUAL? PRSA,V?READ,V?EXAMINE \?ELS5
|
||||
PRINTI "Set in the door is a large circular dial which can be set to any number up to 873. It is currently set to "
|
||||
PRINTN CURRENT-SETTING
|
||||
PRINTR "."
|
||||
?ELS5: EQUAL? PRSA,V?TURN \FALSE
|
||||
ZERO? FWEEPED /?ELS14
|
||||
CALL BATTY
|
||||
RSTACK
|
||||
?ELS14: ZERO? PRSI /?THN18
|
||||
EQUAL? PRSI,INTNUM /?ELS17
|
||||
?THN18: PRINTR "You must say what number to turn it to."
|
||||
?ELS17: EQUAL? CURRENT-SETTING,P-NUMBER \?ELS23
|
||||
PRINTI "The dial is already set to "
|
||||
PRINTN CURRENT-SETTING
|
||||
PRINTR "."
|
||||
?ELS23: SET 'CURRENT-SETTING,P-NUMBER
|
||||
PRINTI "The dial is now set to "
|
||||
PRINTN CURRENT-SETTING
|
||||
PRINTI "."
|
||||
EQUAL? CURRENT-SETTING,COMBO \?CND30
|
||||
PRINTI " You hear a click from inside the door."
|
||||
SET 'DIAL-OPEN,TRUE-VALUE
|
||||
?CND30: CRLF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT ROPE-F
|
||||
EQUAL? PRSA,V?PUT \?ELS5
|
||||
CALL ACCESSIBLE?,ROPE
|
||||
ZERO? STACK /FALSE
|
||||
?ELS5: EQUAL? PRSA,V?TIE \?ELS9
|
||||
EQUAL? PRSI,BEAM \?ELS9
|
||||
PRINTI "The rope is "
|
||||
ZERO? ROPE-TO-BEAM /?CND14
|
||||
PRINTI "already "
|
||||
?CND14: PRINTI "tied securely to the center of the beam."
|
||||
CRLF
|
||||
SET 'ROPE-TO-BEAM,TRUE-VALUE
|
||||
RETURN ROPE-TO-BEAM
|
||||
?ELS9: EQUAL? PRSA,V?TIE \?ELS23
|
||||
EQUAL? PRSI,COAL-BIN \?ELS23
|
||||
PRINTR "The bin is too large."
|
||||
?ELS23: EQUAL? PRSA,V?UNTIE \?ELS29
|
||||
ZERO? ROPE-TO-BEAM /?ELS29
|
||||
SET 'ROPE-TO-BEAM,FALSE-VALUE
|
||||
PRINTR "The rope is untied."
|
||||
?ELS29: EQUAL? PRSA,V?CLIMB-DOWN \?ELS35
|
||||
ZERO? ROPE-PLACED \?ELS40
|
||||
ZERO? ROPE-IN-LOWER-CHUTE \?ELS40
|
||||
PRINTR "It would be hard to climb down the rope in its current state."
|
||||
?ELS40: CALL DO-WALK,P?DOWN
|
||||
RSTACK
|
||||
?ELS35: EQUAL? PRSA,V?CLIMB-UP \?ELS48
|
||||
PRINTR "Do you also charm snakes?"
|
||||
?ELS48: EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
ZERO? ROPE-PLACED \?THN58
|
||||
ZERO? ROPE-IN-LOWER-CHUTE /?ELS57
|
||||
?THN58: PRINTR "The rope is tied to the beam and hangs into the chute."
|
||||
?ELS57: ZERO? ROPE-TO-BEAM /FALSE
|
||||
PRINTR "It is tied to the center of the timber."
|
||||
|
||||
|
||||
.FUNCT SHAFT-BOTTOM-F,RARG
|
||||
EQUAL? RARG,M-ENTER \FALSE
|
||||
FSET? VARDIK-SCROLL,TOUCHBIT \FALSE
|
||||
SET 'BREATH-SHORTAGE,3
|
||||
CALL I-BREATHE
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT SHAFT-PSEUDO
|
||||
EQUAL? PRSA,V?CLIMB-DOWN \?ELS5
|
||||
EQUAL? HERE,SHAFT-TOP \?ELS10
|
||||
CALL DO-WALK,P?DOWN
|
||||
RSTACK
|
||||
?ELS10: CALL LOOK-AROUND-YOU
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?CLIMB-UP,V?CLIMB-FOO \?ELS14
|
||||
EQUAL? HERE,SHAFT-TOP \?ELS19
|
||||
CALL LOOK-AROUND-YOU
|
||||
RSTACK
|
||||
?ELS19: CALL DO-WALK,P?UP
|
||||
RSTACK
|
||||
?ELS14: EQUAL? PRSA,V?PUT-ON \?ELS23
|
||||
EQUAL? PRSO,BEAM \?ELS23
|
||||
PRINTR "The shaft is too wide."
|
||||
?ELS23: EQUAL? PRSA,V?PUT \FALSE
|
||||
EQUAL? HERE,SHAFT-TOP \FALSE
|
||||
EQUAL? PRSO,ROPE \?ELS36
|
||||
ZERO? ROPE-TO-BEAM /?ELS36
|
||||
PRINTR "The rope now dangles into the shaft."
|
||||
?ELS36: MOVE PRSO,SHAFT-BOTTOM
|
||||
PRINTR "It disappears into the shaft. A moment later comes a distant thud."
|
||||
|
||||
|
||||
.FUNCT BEAM-F
|
||||
EQUAL? PRSA,V?PUT-ON \?ELS5
|
||||
EQUAL? PRSI,UPPER-CHUTE,LOWER-CHUTE \?ELS5
|
||||
MOVE BEAM,HERE
|
||||
PRINTR "The beam is now lying across the mouth of the chute."
|
||||
?ELS5: EQUAL? PRSA,V?TAKE \?ELS11
|
||||
ZERO? ROPE-PLACED /?ELS11
|
||||
PRINTR "You'd have to take the rope out of the chute first."
|
||||
?ELS11: EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
ZERO? ROPE-PLACED /?ELS22
|
||||
PRINTR "A rope hangs from the beam, into the chute."
|
||||
?ELS22: ZERO? ROPE-TO-BEAM /FALSE
|
||||
PRINTR "A rope is tied to the beam."
|
||||
|
||||
|
||||
.FUNCT TOP-OF-CHUTE-F,RARG
|
||||
EQUAL? RARG,M-END \FALSE
|
||||
IN? TROGLODYTE,HERE /FALSE
|
||||
ZERO? LIT \?THN8
|
||||
ZERO? BLORTED /FALSE
|
||||
?THN8: RANDOM 100
|
||||
LESS? 30,STACK /FALSE
|
||||
MOVE TROGLODYTE,HERE
|
||||
CALL QUEUE,I-TROGLODYTE,2
|
||||
PUT STACK,0,1
|
||||
CRLF
|
||||
PRINTR "A troglodyte trundles in and dumps a load of coal into the chute."
|
||||
|
||||
|
||||
.FUNCT I-TROGLODYTE
|
||||
MOVE TROGLODYTE,DIAL
|
||||
EQUAL? HERE,TOP-OF-CHUTE \FALSE
|
||||
SET 'TROG-FOLLOW,TRUE-VALUE
|
||||
CALL QUEUE,I-TROG-UNFOLLOW,1
|
||||
PUT STACK,0,1
|
||||
CRLF
|
||||
PRINTR "The troglodyte trundles off into the coal mine."
|
||||
|
||||
|
||||
.FUNCT I-TROG-UNFOLLOW
|
||||
SET 'TROG-FOLLOW,FALSE-VALUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT TROGLODYTE-F
|
||||
EQUAL? WINNER,TROGLODYTE \?ELS5
|
||||
PRINTI "The troglodyte ignores you."
|
||||
CRLF
|
||||
CALL STOP
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?FOLLOW \?ELS9
|
||||
ZERO? TROG-FOLLOW /?ELS9
|
||||
PRINTR "You didn't notice which passage it took."
|
||||
?ELS9: EQUAL? PRSA,V?YOMIN \?ELS15
|
||||
PRINTR "The troglodyte is worried about filling his coal quotas."
|
||||
?ELS15: EQUAL? PRSA,V?RESEARCH \FALSE
|
||||
PRINTR "Semi-intelligent subterranean beasts frequently used to dig and haul coal."
|
||||
|
||||
|
||||
.FUNCT CHUTE-EXIT-F
|
||||
ZERO? ROPE-PLACED /?ELS5
|
||||
PRINTI "You climb carefully down the rope, which is slippery with coal dust, "
|
||||
GRTR? AWAKE,0 \?ELS13
|
||||
PRINTI "but because of your fatigue you lose your grip."
|
||||
CALL ORANGE-FLASH
|
||||
CRLF
|
||||
CRLF
|
||||
RETURN COAL-BIN-ROOM
|
||||
?ELS13: CALL NOTHING-HELD?
|
||||
ZERO? STACK \?ELS17
|
||||
PRINTI "but because of your load you are unable to maintain your grip."
|
||||
CALL ORANGE-FLASH
|
||||
CRLF
|
||||
CRLF
|
||||
RETURN COAL-BIN-ROOM
|
||||
?ELS17: PRINTI "and soon reach a small opening off the chute. You clamber inside..."
|
||||
CRLF
|
||||
CRLF
|
||||
ADD SCORE,20 >SCORE
|
||||
FCLEAR VARDIK-SPELL,INVISIBLE
|
||||
RETURN SLANTED-ROOM
|
||||
?ELS5: CALL ROPE-BEAM-CHECK,TRUE-VALUE
|
||||
PRINTI "Wheee!!! "
|
||||
CALL ORANGE-FLASH
|
||||
PRINTI " You land beside an enormous bin of coal."
|
||||
CRLF
|
||||
CRLF
|
||||
RETURN COAL-BIN-ROOM
|
||||
|
||||
|
||||
.FUNCT ORANGE-FLASH
|
||||
PRINTI " As you "
|
||||
ZERO? FLYING /?ELS5
|
||||
PRINTI "float"
|
||||
JUMP ?CND3
|
||||
?ELS5: PRINTI "whiz"
|
||||
?CND3: PRINTI " down the chute, you notice a flash of orange light spilling from an opening onto the chute."
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT SLANTED-ROOM-F,RARG
|
||||
EQUAL? RARG,M-ENTER \FALSE
|
||||
PUT VEZZAS,6,0
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT SLANTED-ROOM-EXIT-F
|
||||
IN? GOLMAC-SCROLL,PROTAGONIST /?ELS5
|
||||
ZERO? GOLMACKED \?ELS5
|
||||
CALL POOF
|
||||
RFALSE
|
||||
?ELS5: IN? GOLMAC-SCROLL,PROTAGONIST \?ELS9
|
||||
ZERO? GOLMACKED /?ELS9
|
||||
CALL POOF
|
||||
RFALSE
|
||||
?ELS9: PRINTI "Wheeee!!!"
|
||||
CRLF
|
||||
CRLF
|
||||
RETURN COAL-BIN-ROOM
|
||||
|
||||
|
||||
.FUNCT KEROSENE-LAMP-DESCFCN,RARG
|
||||
PRINTI "Mounted securely to the wall is a kerosene lamp, filling the room with a serene orange glow. "
|
||||
FSET? KEROSENE-LAMP,OPENBIT \?CND3
|
||||
PRINTI "A small compartment at its base is open."
|
||||
?CND3: CRLF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT KEROSENE-LAMP-F
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
PRINTR "The lamp has a glass bowl where the flame burns. Below is a small metal door, perhaps a compartment for storing extra wicks or kerosene."
|
||||
?ELS5: EQUAL? PRSA,V?TAKE \?ELS9
|
||||
PRINTR "It's mounted securely to the wall."
|
||||
?ELS9: EQUAL? PRSA,V?LAMP-OFF \FALSE
|
||||
PRINTR "You can't spare the breath to blow out the lamp."
|
||||
|
||||
|
||||
.FUNCT CHUTE-ENTER-F
|
||||
ZERO? FLYING /?ELS3
|
||||
PRINTI "The chute is too narrow to fly up."
|
||||
JUMP ?CND1
|
||||
?ELS3: PRINTI "The chute is too steep and slippery."
|
||||
?CND1: CRLF
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT BOTTOM-TOP-OF-CHUTE,TOP=0
|
||||
PRINTI "You're already at the "
|
||||
ZERO? TOP /?ELS5
|
||||
PRINTI "top"
|
||||
JUMP ?CND3
|
||||
?ELS5: PRINTI "bottom"
|
||||
?CND3: PRINTR " of the chute."
|
||||
|
||||
.ENDI
|
538
end.zap
Normal file
538
end.zap
Normal file
|
@ -0,0 +1,538 @@
|
|||
|
||||
|
||||
.FUNCT COVE-F,RARG,X=0
|
||||
EQUAL? RARG,M-ENTER \FALSE
|
||||
FSET? COVE,TOUCHBIT /FALSE
|
||||
ZERO? BOOK-BELONGS-IN-LAGOON /?CND8
|
||||
MOVE SPELL-BOOK,LAGOON-FLOOR
|
||||
?CND8: PUT VEZZAS,6,0
|
||||
ADD SCORE,20 >SCORE
|
||||
CALL INT,I-SUFFOCATE
|
||||
PUT STACK,0,0
|
||||
CALL INT,I-YOUNGER-SELF
|
||||
PUT STACK,0,0
|
||||
CALL INT,I-OLDER-SELF
|
||||
PUT STACK,0,0
|
||||
ZERO? GOLMACKED /?ELS14
|
||||
ZERO? COMBO-REVEALED \?ELS14
|
||||
CALL POOF
|
||||
JUMP ?CND12
|
||||
?ELS14: ZERO? GOLMACKED \?CND12
|
||||
CALL HELD?,ROPE
|
||||
ZERO? STACK /?CND19
|
||||
MOVE ROPE,DIAL
|
||||
SET 'X,TRUE-VALUE
|
||||
?CND19: CALL HELD?,BEAM
|
||||
ZERO? STACK /?CND22
|
||||
MOVE BEAM,DIAL
|
||||
SET 'X,TRUE-VALUE
|
||||
?CND22: CALL HELD?,VARDIK-SCROLL
|
||||
ZERO? STACK /?CND25
|
||||
MOVE VARDIK-SCROLL,DIAL
|
||||
SET 'X,TRUE-VALUE
|
||||
?CND25: CALL HELD?,GOLMAC-SCROLL
|
||||
ZERO? STACK /?CND28
|
||||
MOVE GOLMAC-SCROLL,DIAL
|
||||
SET 'X,TRUE-VALUE
|
||||
?CND28: ZERO? X /?CND12
|
||||
PRINTI "As you slide down the chute, some of your possessions suddenly vanish! "
|
||||
?CND12: PRINTI "You fly out of the chute and land just at the edge of some water..."
|
||||
CRLF
|
||||
CRLF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT POOF
|
||||
SET 'POOFED,TRUE-VALUE
|
||||
PRINTI "Suddenly, without the slightest fanfare, you cease to exist!"
|
||||
CRLF
|
||||
CALL FINISH
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT OCEAN-SHORE-F,RARG
|
||||
EQUAL? RARG,M-LOOK \FALSE
|
||||
PRINTI "You are "
|
||||
ZERO? FLYING /?ELS10
|
||||
PRINTI "floating above"
|
||||
JUMP ?CND8
|
||||
?ELS10: PRINTI "standing on"
|
||||
?CND8: PRINTI " the western shore of the mighty Flathead Ocean. According to legends you read at the University, the eastern shore of this ocean is a strange land of magical beings and priceless treasures. "
|
||||
EQUAL? HERE,OCEAN-NORTH \?ELS22
|
||||
PRINTI "You could go north along the shore; the edge of a small cove lies to the southwest."
|
||||
JUMP ?CND20
|
||||
?ELS22: PRINTI "The beach to the south is blocked by a tall cliff; a lagoon shore lies to the northwest."
|
||||
?CND20: CRLF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT OCEAN-F,X=0
|
||||
EQUAL? HERE,GUN-EMPLACEMENT,TURRET,TOP-OF-FALLS \?ELS5
|
||||
PRINTR "The ocean lies far below you."
|
||||
?ELS5: EQUAL? PRSA,V?PULVER \?ELS9
|
||||
SET 'PERFORMING-SPELL,TRUE-VALUE
|
||||
CALL PERFORM,V?PULVER,LAGOON-OBJECT
|
||||
RTRUE
|
||||
?ELS9: EQUAL? PRSA,V?DRINK-FROM,V?DRINK \?ELS11
|
||||
CALL PERFORM,V?DRINK,WATER
|
||||
RTRUE
|
||||
?ELS11: EQUAL? PRSA,V?EXAMINE \?ELS13
|
||||
PRINTR "It streches east as far as the eye can see."
|
||||
?ELS13: EQUAL? PRSA,V?RESEARCH \?ELS17
|
||||
PRINTR "The Flathead Ocean, called the Great Sea by the ancients, has a very unusual feature -- its western shore basks in the sunlight while its eastern shore lies far underground."
|
||||
?ELS17: EQUAL? PRSA,V?PUT \?ELS21
|
||||
EQUAL? OCEAN,PRSI \?ELS21
|
||||
MOVE PRSO,DIAL
|
||||
CALL SPLASH
|
||||
RSTACK
|
||||
?ELS21: EQUAL? PRSA,V?THROUGH \FALSE
|
||||
CALL JIGS-UP,STR?318
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT CLIFF-PSEUDO
|
||||
EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-UP \FALSE
|
||||
ZERO? FLYING /?ELS10
|
||||
PRINTR "The cliff is too high to fly over."
|
||||
?ELS10: PRINTR "The cliff is unclimbable."
|
||||
|
||||
|
||||
.FUNCT LAGOON-OBJECT-F
|
||||
EQUAL? PRSA,V?THROUGH \?ELS5
|
||||
EQUAL? HERE,LAGOON,LAGOON-FLOOR \?ELS10
|
||||
CALL LOOK-AROUND-YOU
|
||||
RSTACK
|
||||
?ELS10: CALL GOTO,LAGOON
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?PUT \?ELS14
|
||||
EQUAL? HERE,LAGOON-FLOOR /?ELS14
|
||||
EQUAL? PRSI,LAGOON-OBJECT \?ELS14
|
||||
MOVE PRSO,LAGOON-FLOOR
|
||||
FSET? PRSO,SCROLLBIT /?THN20
|
||||
EQUAL? PRSO,SPELL-BOOK \?CND17
|
||||
?THN20: FSET PRSO,MUNGBIT
|
||||
?CND17: CALL SPLASH
|
||||
RSTACK
|
||||
?ELS14: EQUAL? PRSA,V?EXAMINE \?ELS23
|
||||
PRINTR "The water looks calm and hospitable."
|
||||
?ELS23: EQUAL? PRSA,V?DRINK-FROM,V?DRINK \?ELS27
|
||||
CALL PERFORM,V?DRINK,WATER
|
||||
RTRUE
|
||||
?ELS27: EQUAL? PRSA,V?PULVER \FALSE
|
||||
PRINTR "The water level seems to drop an inch or two, for a moment."
|
||||
|
||||
|
||||
.FUNCT LAGOON-F,RARG,X
|
||||
EQUAL? RARG,M-ENTER \?ELS5
|
||||
FIRST? PROTAGONIST >X /?KLU35
|
||||
?KLU35:
|
||||
?PRG6: ZERO? X /TRUE
|
||||
FSET? X,SCROLLBIT /?THN15
|
||||
EQUAL? X,SPELL-BOOK \?CND12
|
||||
?THN15: FSET X,MUNGBIT
|
||||
?CND12: NEXT? X >X /?KLU36
|
||||
?KLU36: JUMP ?PRG6
|
||||
?ELS5: EQUAL? RARG,M-LOOK \FALSE
|
||||
PRINTI "You are "
|
||||
ZERO? FLYING /?ELS25
|
||||
PRINTI "flying over"
|
||||
JUMP ?CND23
|
||||
?ELS25: PRINTI "swimming on"
|
||||
?CND23: PRINTR " the surface of a calm lagoon, whose sandy floor is visible below. A curved beach surrounds this inlet on its western side."
|
||||
|
||||
|
||||
.FUNCT LAGOON-FLOOR-ENTER-F
|
||||
ZERO? FLYING /?ELS5
|
||||
CALL WHILE-FLYING
|
||||
RFALSE
|
||||
?ELS5: RETURN LAGOON-FLOOR
|
||||
|
||||
|
||||
.FUNCT SAND-PSEUDO
|
||||
EQUAL? PSEUDO-OBJECT,PRSO \?ELS5
|
||||
SET 'PERFORMING-SPELL,TRUE-VALUE
|
||||
CALL PERFORM,PRSA,GROUND,PRSI
|
||||
RTRUE
|
||||
?ELS5: SET 'PERFORMING-SPELL,TRUE-VALUE
|
||||
CALL PERFORM,PRSA,PRSO,GROUND
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT LAGOON-FLOOR-F,RARG
|
||||
EQUAL? RARG,M-ENTER \FALSE
|
||||
CALL QUEUE,I-DROWN,-1
|
||||
PUT STACK,0,1
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT I-DROWN
|
||||
EQUAL? HERE,LAGOON-FLOOR \?ELS5
|
||||
ZERO? VILSTUED \FALSE
|
||||
INC 'UNDERWATER-COUNTER
|
||||
EQUAL? UNDERWATER-COUNTER,3 \?ELS14
|
||||
CRLF
|
||||
PRINTR "You won't be able to hold your breath much longer."
|
||||
?ELS14: EQUAL? UNDERWATER-COUNTER,4 \?ELS18
|
||||
CRLF
|
||||
PRINTR "Better get some fresh air soon!"
|
||||
?ELS18: EQUAL? UNDERWATER-COUNTER,5 \FALSE
|
||||
SET 'UNDERWATER-COUNTER,0
|
||||
CRLF
|
||||
CALL JIGS-UP,STR?320
|
||||
RSTACK
|
||||
?ELS5: SET 'UNDERWATER-COUNTER,0
|
||||
CALL INT,I-DROWN
|
||||
PUT STACK,0,0
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT CORAL-PSEUDO
|
||||
EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
IN? HERE,SPENSEWEEDS \FALSE
|
||||
PRINTR "The coral is covered by swaying spenseweeds."
|
||||
|
||||
|
||||
.FUNCT SPENSEWEEDS-F
|
||||
EQUAL? PRSA,V?MEEF \?ELS5
|
||||
MOVE SPENSEWEEDS,DIAL
|
||||
MOVE CRATE,HERE
|
||||
CALL THIS-IS-IT,CRATE
|
||||
PRINTR "The spenseweeds wilt away, revealing a wooden crate labelled with black lettering."
|
||||
?ELS5: EQUAL? PRSA,V?LOOK-UNDER \FALSE
|
||||
PRINTR "That's difficult -- they're well rooted in the coral."
|
||||
|
||||
|
||||
.FUNCT CRATE-F
|
||||
EQUAL? PRSA,V?REZROV,V?OPEN \?ELS5
|
||||
ZERO? CRATE-POINT \?ELS5
|
||||
SET 'CRATE-POINT,TRUE-VALUE
|
||||
ADD SCORE,15 >SCORE
|
||||
RFALSE
|
||||
?ELS5: EQUAL? PRSA,V?READ \FALSE
|
||||
CALL FIXED-FONT-ON
|
||||
PRINTI "Stencilled diagonally across the crate:
|
||||
|
||||
GRUE PROTECTION KIT
|
||||
|
||||
Below, in much smaller letters:
|
||||
|
||||
FROM:
|
||||
Frobozz Magic Grue Accessories Co.
|
||||
|
||||
TO:
|
||||
Aragain Brothers Circus
|
||||
Attn: Grue Trainer"
|
||||
CRLF
|
||||
CALL FIXED-FONT-OFF
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT BRASS-LANTERN-F
|
||||
EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
PRINTI "It is a battery-powered lantern like those used by adventurers and explorers. It is currently "
|
||||
FSET? BRASS-LANTERN,ONBIT \?ELS10
|
||||
PRINTI "on"
|
||||
JUMP ?CND8
|
||||
?ELS10: PRINTI "off"
|
||||
?CND8: PRINTR "."
|
||||
|
||||
|
||||
.FUNCT GRUE-REPELLENT-F
|
||||
EQUAL? PRSA,V?SHAKE \?ELS5
|
||||
ZERO? SPRAY-USED? /?ELS10
|
||||
PRINTR "The can seems empty."
|
||||
?ELS10: PRINTR "There is a sloshing sound from inside."
|
||||
?ELS5: EQUAL? PRSA,V?PUT-ON,V?SPRAY \FALSE
|
||||
EQUAL? PRSO,GRUE-REPELLENT \FALSE
|
||||
ZERO? SPRAY-USED? /?ELS26
|
||||
PRINTR "The repellent is all gone."
|
||||
?ELS26: ZERO? PRSI \?ELS31
|
||||
SET 'SPRAY-USED?,TRUE-VALUE
|
||||
PRINTR "The spray stinks amazingly for a few moments, then drifts away."
|
||||
?ELS31: EQUAL? PRSI,ME \?CND36
|
||||
CALL QUEUE,I-SPRAY,5
|
||||
PUT STACK,0,1
|
||||
SET 'SPRAYED?,TRUE-VALUE
|
||||
?CND36: SET 'SPRAY-USED?,TRUE-VALUE
|
||||
PRINTR "The spray smells like a mixture of old socks and burning rubber. If I were a grue I'd sure stay clear!"
|
||||
|
||||
|
||||
.FUNCT I-SPRAY
|
||||
SET 'SPRAYED?,FALSE-VALUE
|
||||
CRLF
|
||||
PRINTR "That horrible smell is much less pungent now."
|
||||
|
||||
|
||||
.FUNCT MOUTH-OF-RIVER-F,RARG
|
||||
EQUAL? RARG,M-LOOK \?ELS5
|
||||
PRINTI "A mighty river spills into the ocean here. Looking up the river valley, you see a tall waterfall. Atop a cliff, high above you, is the rampart of a fortress. A cave entrance "
|
||||
IN? VINES,HERE \?ELS10
|
||||
PRINTI "at the base of the cliff to the west is blocked by writhing green vines"
|
||||
JUMP ?CND8
|
||||
?ELS10: PRINTI "lies to the west"
|
||||
?CND8: PRINTR "."
|
||||
?ELS5: EQUAL? RARG,M-END \FALSE
|
||||
IN? VINES,HERE \FALSE
|
||||
RANDOM 100
|
||||
LESS? 15,STACK /FALSE
|
||||
CRLF
|
||||
PRINTI "Suddenly you realize that, without really thinking about it, you were "
|
||||
ZERO? FLYING /?ELS27
|
||||
PRINTI "flying"
|
||||
JUMP ?CND25
|
||||
?ELS27: PRINTI "walking"
|
||||
?CND25: PRINTR " toward the wriggling vines. As you stop, a feeling of annoyance seems to radiate from the plants."
|
||||
|
||||
|
||||
.FUNCT VINES-F
|
||||
EQUAL? PRSA,V?MEEF \?ELS5
|
||||
MOVE VINES,DIAL
|
||||
PRINTR "You can almost feel a wave of pain from the vines as they shrivel away."
|
||||
?ELS5: EQUAL? PRSA,V?KILL,V?ATTACK \?ELS9
|
||||
CALL JIGS-UP,STR?324
|
||||
RSTACK
|
||||
?ELS9: EQUAL? PRSA,V?BITE,V?KICK,V?THROUGH /?THN12
|
||||
EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-UP,V?TAKE /?THN12
|
||||
EQUAL? PRSA,V?RUB,V?MOVE,V?PUSH \FALSE
|
||||
?THN12: CALL DO-WALK,P?WEST
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT VINES-EXIT-F
|
||||
IN? VINES,HERE \?ELS5
|
||||
CALL JIGS-UP,STR?325
|
||||
RFALSE
|
||||
?ELS5: RETURN GRUE-LAIR
|
||||
|
||||
|
||||
.FUNCT GRUE-LAIR-F,RARG
|
||||
ZERO? SPRAYED? \FALSE
|
||||
EQUAL? RARG,M-END \FALSE
|
||||
IN? GRUE-SUIT,PROTAGONIST /FALSE
|
||||
ZERO? LIT \?THN13
|
||||
ZERO? BLORTED /?ELS12
|
||||
?THN13: CALL JIGS-UP,STR?327
|
||||
RSTACK
|
||||
?ELS12: CALL JIGS-UP,STR?328
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT MUTATED-GRUES-F
|
||||
EQUAL? PRSA,V?FROTZ \?ELS5
|
||||
PRINTR "One of the grues gives off a flash of light but, strangely, it doesn't seem to notice or care."
|
||||
?ELS5: EQUAL? PRSA,V?RESEARCH \FALSE
|
||||
CALL PERFORM,V?RESEARCH,GRUE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT MUTATED-GRUES-DESCFCN,RARG
|
||||
ZERO? LIT \?THN6
|
||||
ZERO? BLORTED /?ELS5
|
||||
?THN6: ZERO? SPRAYED? /?ELS12
|
||||
CALL LIT-MESSAGE
|
||||
PRINTR "They stagger about the room, covering their noses and making horrid gurgling noises."
|
||||
?ELS12: IN? GRUE-SUIT,PROTAGONIST \?ELS17
|
||||
CALL LIT-MESSAGE
|
||||
PRINTR "They seem to be ignoring you, aside from a few suspicious gurgles in your direction."
|
||||
?ELS17: CALL LIT-MESSAGE
|
||||
PRINTR "Baring tremendous fangs, they form a circle around you..."
|
||||
?ELS5: PRINTR "There are terrifying gurgling noises from the darkness!"
|
||||
|
||||
|
||||
.FUNCT LIT-MESSAGE
|
||||
PRINTI "A pack of grues fills the room! "
|
||||
ZERO? LIT /FALSE
|
||||
PRINTI "The grues, contrary to all conventional wisdom, aren't bothered by your light in the least. They must be mutated grues, no longer fearing light! "
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT MAMMOTH-CAVERN-F,RARG
|
||||
EQUAL? RARG,M-ENTER \FALSE
|
||||
ADD SCORE,CAVERN-POINT >SCORE
|
||||
SET 'CAVERN-POINT,0
|
||||
PUT VEZZAS,7,0
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT MACHINERY-F
|
||||
EQUAL? PRSA,V?LAMP-ON,V?MUNG \?ELS5
|
||||
CALL JIGS-UP,STR?330
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?READ,V?EXAMINE \FALSE
|
||||
PRINTR "You notice, on one machine, a tiny plaque which reads:
|
||||
|
||||
FROBOZZ MAGIC MUTATED GRUE BREEDER CO."
|
||||
|
||||
|
||||
.FUNCT CHAMBER-OF-LIVING-DEATH-F,RARG
|
||||
EQUAL? RARG,M-BEG \?ELS5
|
||||
EQUAL? PRSA,V?VERSION,V?SAVE,V?QUIT /?ELS5
|
||||
EQUAL? PRSA,V?RESTART,V?RESTORE /?ELS5
|
||||
EQUAL? PRSA,V?SUPER-BRIEF,V?VERBOSE,V?BRIEF /?ELS5
|
||||
EQUAL? PRSA,V?UNSCRIPT,V?SCRIPT /?ELS5
|
||||
CALL AGONY
|
||||
RTRUE
|
||||
?ELS5: EQUAL? RARG,M-END \FALSE
|
||||
PRINTR "Hideous parasites descend upon you and tear the flesh from your bones, gnaw the eyes from your sockets, and feast upon your very brain tissue. Amazingly, you do not die, and your body regenerates itself as you await the next attack..."
|
||||
|
||||
|
||||
.FUNCT PARASITES-PSEUDO
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT HALL-OF-ETERNAL-DEATH-F,RARG
|
||||
EQUAL? RARG,M-BEG \?ELS5
|
||||
EQUAL? PRSA,V?VERSION,V?SAVE,V?QUIT /?ELS5
|
||||
EQUAL? PRSA,V?RESTART,V?RESTORE /?ELS5
|
||||
EQUAL? PRSA,V?SUPER-BRIEF,V?VERBOSE,V?BRIEF /?ELS5
|
||||
EQUAL? PRSA,V?UNSCRIPT,V?SCRIPT /?ELS5
|
||||
CALL AGONY
|
||||
RTRUE
|
||||
?ELS5: EQUAL? RARG,M-END \FALSE
|
||||
PRINTR "Disembodied forces suck the very thoughts from your mind, savoring each moment and growing stronger. Every second is an agonizing torment, as though thousands of raging fires were exploding in your skull, filling you with a pain greater than you could ever imagine."
|
||||
|
||||
|
||||
.FUNCT FORCE-PSEUDO
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT AGONY
|
||||
PRINTR "Your agony is too great to concentrate on such an action."
|
||||
|
||||
|
||||
.FUNCT BLACK-DOOR-F
|
||||
EQUAL? PRSA,V?REZROV,V?OPEN \FALSE
|
||||
PRINTI "As the door opens, hundreds of slime-covered tentacles stream out and drag you across the threshold..."
|
||||
CRLF
|
||||
CRLF
|
||||
CALL ROB,PROTAGONIST
|
||||
CALL INT,I-TIRED
|
||||
PUT STACK,0,0
|
||||
CALL INT,I-THIRST
|
||||
PUT STACK,0,0
|
||||
CALL INT,I-HUNGER
|
||||
PUT STACK,0,0
|
||||
CALL WEAR-OFF-SPELLS
|
||||
CALL GOTO,CHAMBER-OF-LIVING-DEATH
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT SILVER-DOOR-F
|
||||
EQUAL? PRSA,V?REZROV,V?OPEN \FALSE
|
||||
PRINTI "The door blows open, knocking you to the ground. You are pulled through the open doorway by an unseen force..."
|
||||
CRLF
|
||||
CRLF
|
||||
CALL ROB,PROTAGONIST
|
||||
CALL INT,I-TIRED
|
||||
PUT STACK,0,0
|
||||
CALL INT,I-HUNGER
|
||||
PUT STACK,0,0
|
||||
CALL INT,I-THIRST
|
||||
PUT STACK,0,0
|
||||
CALL WEAR-OFF-SPELLS
|
||||
CALL GOTO,HALL-OF-ETERNAL-PAIN
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT WHITE-DOOR-F
|
||||
EQUAL? PRSA,V?REZROV,V?OPEN \FALSE
|
||||
EQUAL? HERE,BELBOZ-HIDEOUT \?CND6
|
||||
CALL DO-WALK,P?EAST
|
||||
RTRUE
|
||||
?CND6: ADD SCORE,WHITE-DOOR-SCORE >SCORE
|
||||
SET 'WHITE-DOOR-SCORE,0
|
||||
PRINTI "The door creaks slowly open. Within, you see someone lying as though asleep. You feel yourself drawn into the room..."
|
||||
CRLF
|
||||
CRLF
|
||||
CALL QUEUE,I-BELBOZ-AWAKES,8
|
||||
PUT STACK,0,1
|
||||
CALL GOTO,BELBOZ-HIDEOUT
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT I-UNVARDIK
|
||||
SET 'VARDIKED,FALSE-VALUE
|
||||
CRLF
|
||||
PRINTR "Your head feels numb for a moment, and your mind feels suddenly open and unprotected."
|
||||
|
||||
|
||||
.FUNCT KILL-BELBOZ
|
||||
ZERO? BELBOZ-GASPARED /?ELS5
|
||||
SET 'BELBOZ-GASPARED,FALSE-VALUE
|
||||
PRINTI "As you stab Belboz, an apparition rises from his body. Floating above him like a cloud of fog, it howls with laughter. A moment later, gaspar begins to heal the wounds, and the spirit flows back into the body."
|
||||
CRLF
|
||||
CRLF
|
||||
CALL I-BELBOZ-AWAKES
|
||||
RSTACK
|
||||
?ELS5: PRINTI "You stab the knife time and again into Belboz, who writhes in pain, eyes bulging outward. Sickened and dizzy, you stagger back."
|
||||
CRLF
|
||||
CRLF
|
||||
SET 'BELBOZ-DEAD,TRUE-VALUE
|
||||
CALL SWANZO-BELBOZ
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT SWANZO-BELBOZ
|
||||
PRINTI "A wispy translucent shape rises from the "
|
||||
ZERO? BELBOZ-DEAD /?ELS5
|
||||
PRINTI "corpse"
|
||||
JUMP ?CND3
|
||||
?ELS5: PRINTI "body"
|
||||
?CND3: PRINTI " of Belboz. It speaks in a voice so deep that your whole body seems to hear it. ""Foolish Charlatan! I am forced to flee that weak, old body -- I shall take your own, instead! Already I have sucked all knowledge, all secrets from that ancient Enchanter. Now begins an epoch of evil transcending even your worst nightmares; a reign of terror that will last a thousand thousand years!"" The shape blows toward you on a cold wind."
|
||||
CRLF
|
||||
CRLF
|
||||
ZERO? VARDIKED /?ELS19
|
||||
PRINTI "Jeearr surrounds you like a cloud and begins to contract. Suddenly, it strikes your invisible protection and recoils as if burned. ""No!"" it cries. ""Such a guileless Enchanter developing a mind shield?"" The cloud is thinner, the voice fainter. ""It cannot be! I cannot survive ... without a host."" The demon roils in agony, then thins and dissipates. There is a final scream of pain, then silence."
|
||||
CRLF
|
||||
CRLF
|
||||
ZERO? BELBOZ-DEAD /?ELS27
|
||||
PRINTI "Jeearr is vanquished; the kingdom is saved. But you - you are stranded in a land unknown, and your closest friend, the greatest Enchanter of his age, lies dead by your own hand. Kneeling by his blood-soaked corpse, you beg for another chance..."
|
||||
CRLF
|
||||
CALL FINISH
|
||||
RSTACK
|
||||
?ELS27: PRINTI "Belboz moans softly, and begins stirring. He sees you and rises, instantly alert. After posing a few well-chosen questions, he casts a brief but unfamiliar spell.
|
||||
|
||||
An instant later, "
|
||||
IN? GRUE-SUIT,PROTAGONIST \?CND35
|
||||
PRINTI "your grue suit has vanished and "
|
||||
?CND35: PRINTI "you are standing in the Chamber of the Circle. The Circle of Enchanters is assembled. Belboz speaks. ""Once again, this young Enchanter has done a matchless service to the Guild and to the entire kingdom, displaying resourcefulness and imagination worthy of the greatest of Enchanters. I grow old, and must soon step down as Head of the Circle. But let it be known that a successor has been found."""
|
||||
CRLF
|
||||
CRLF
|
||||
ADD SCORE,25 >SCORE
|
||||
SET 'HERE,CHAMBER-OF-THE-CIRCLE
|
||||
CALL V-SCORE
|
||||
USL
|
||||
CRLF
|
||||
PRINTI "Here ends the second chapter of the Enchanter saga, in which, by virtue of your skills, you have been appointed as the next leader of the Circle of Enchanters. The final adventure awaits you as the Enchanter series concludes."
|
||||
CRLF
|
||||
IN? MORGIA-PLANT,BELBOZ-QUARTERS /?CND44
|
||||
CRLF
|
||||
PRINTI "You hear a distant bellow. ""What happened to my morgia plant?"""
|
||||
CRLF
|
||||
?CND44: CALL FINISH,TRUE-VALUE
|
||||
RSTACK
|
||||
?ELS19: PRINTI "You feel an overwhelming sense of oppression as the demon seizes control of your mind and body. The monster reaches into the recesses of your mind, adding your hard-earned magic powers to its own. As it settles comfortably into your skull, the demon grants you a vision of the future. You see the enslaved people of the land toiling to erect great idols to Jeearr. Parents offer up their own children upon these altars, as the rivers of the land fill with blood. And YOU embody Jeearr; you are cursed by ten thousand generations of victims; your face adorns the idols. And worst of all, you remain awake and aware, a witness to horror, never sleeping, and never, ever to escape."
|
||||
CRLF
|
||||
SET 'SCORE,-99
|
||||
CALL FINISH
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT I-BELBOZ-AWAKES
|
||||
EQUAL? HERE,BELBOZ-HIDEOUT \FALSE
|
||||
CRLF
|
||||
PRINTI "Suddenly, Belboz's eyes flicker and he leaps to his feet. His face is unrecognizable, a twisted mask of hatred. ""Meddlesome Enchanter! I should have killed you all before I left! But better late than never..."" Lightning bolts flash toward you from his fingers, but rather than dying, you find yourself in the..."
|
||||
CRLF
|
||||
CRLF
|
||||
CALL ROB,PROTAGONIST
|
||||
CALL INT,I-TIRED
|
||||
PUT STACK,0,0
|
||||
CALL INT,I-THIRST
|
||||
PUT STACK,0,0
|
||||
CALL INT,I-HUNGER
|
||||
PUT STACK,0,0
|
||||
CALL WEAR-OFF-SPELLS
|
||||
CALL GOTO,HALL-OF-ETERNAL-PAIN
|
||||
RSTACK
|
||||
|
||||
.ENDI
|
6
end.zil
6
end.zil
|
@ -641,7 +641,7 @@ as though you're floating in the center of an infinite void.")
|
|||
<ROUTINE CHAMBER-OF-LIVING-DEATH-F (RARG)
|
||||
<COND (<AND <EQUAL? .RARG ,M-BEG>
|
||||
<NOT <VERB? QUIT SAVE VERSION>>
|
||||
<NOT <VERB? RESTORE RESTART AGAIN>>
|
||||
<NOT <VERB? RESTORE RESTART ;AGAIN>>
|
||||
<NOT <VERB? BRIEF VERBOSE SUPER-BRIEF>>
|
||||
<NOT <VERB? SCRIPT UNSCRIPT>>>
|
||||
<AGONY>
|
||||
|
@ -669,7 +669,7 @@ the next attack..." CR>)>>
|
|||
<ROUTINE HALL-OF-ETERNAL-DEATH-F (RARG)
|
||||
<COND (<AND <EQUAL? .RARG ,M-BEG>
|
||||
<NOT <VERB? QUIT SAVE VERSION>>
|
||||
<NOT <VERB? RESTORE RESTART AGAIN>>
|
||||
<NOT <VERB? RESTORE RESTART ;AGAIN>>
|
||||
<NOT <VERB? BRIEF VERBOSE SUPER-BRIEF>>
|
||||
<NOT <VERB? SCRIPT UNSCRIPT>>>
|
||||
<AGONY>
|
||||
|
@ -868,7 +868,7 @@ offer up their own children upon these altars, as the rivers of the land fill
|
|||
with blood. And YOU embody Jeearr; you are cursed by ten thousand generations
|
||||
of victims; your face adorns the idols. And worst of all, you remain awake
|
||||
and aware, a witness to horror, never sleeping, and never, ever to escape." CR>
|
||||
<SETG SCORE -100>
|
||||
<SETG SCORE -99>
|
||||
<FINISH>)>>
|
||||
|
||||
<ROUTINE I-BELBOZ-AWAKES ()
|
||||
|
|
233
fort.zap
Normal file
233
fort.zap
Normal file
|
@ -0,0 +1,233 @@
|
|||
|
||||
|
||||
.FUNCT FORT-F
|
||||
EQUAL? PRSA,V?THROUGH \?ELS5
|
||||
EQUAL? HERE,PARADE-GROUND,GUN-EMPLACEMENT /?THN11
|
||||
EQUAL? HERE,BARRACKS,ARMORY \?ELS10
|
||||
?THN11: CALL LOOK-AROUND-YOU
|
||||
RSTACK
|
||||
?ELS10: EQUAL? HERE,FORT-ENTRANCE \?ELS14
|
||||
CALL DO-WALK,P?EAST
|
||||
RSTACK
|
||||
?ELS14: CALL CANT-ENTER,FORT
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?EXIT,V?DROP \?ELS18
|
||||
EQUAL? HERE,PARADE-GROUND \?ELS23
|
||||
CALL DO-WALK,P?WEST
|
||||
RSTACK
|
||||
?ELS23: EQUAL? HERE,GUN-EMPLACEMENT,BARRACKS,ARMORY \?ELS25
|
||||
CALL CANT-ENTER,FORT,TRUE-VALUE
|
||||
RSTACK
|
||||
?ELS25: CALL LOOK-AROUND-YOU
|
||||
RSTACK
|
||||
?ELS18: EQUAL? PRSA,V?RESEARCH \FALSE
|
||||
PRINTR "Fort Griffspotter once guarded the lands near Egreth Castle from attack by sea."
|
||||
|
||||
|
||||
.FUNCT PARADE-GROUND-F,RARG
|
||||
EQUAL? RARG,M-ENTER \?ELS5
|
||||
PUT VEZZAS,2,0
|
||||
RFALSE
|
||||
?ELS5: EQUAL? RARG,M-END \FALSE
|
||||
ZERO? SLEEPING /FALSE
|
||||
CALL INT,I-WAKE-UP
|
||||
PUT STACK,0,0
|
||||
CALL I-WAKE-UP
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT ROPE-PSEUDO
|
||||
EQUAL? PRSA,V?MOVE \?ELS5
|
||||
CALL PERFORM,V?LOWER,FLAG
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?TAKE \FALSE
|
||||
PRINTR "The rope is attached to the pole and can't possibly be removed."
|
||||
|
||||
|
||||
.FUNCT FLAG-POLE-F
|
||||
EQUAL? PRSA,V?CLIMB-UP,V?CLIMB-FOO,V?CLIMB-ON \?ELS5
|
||||
PRINTR "That sort of thing went out of fashion years ago."
|
||||
?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
PRINTR "A rope runs up the side of the pole."
|
||||
|
||||
|
||||
.FUNCT FLAG-DESCFCN,RARG
|
||||
ZERO? FLAG-RAISED /?ELS5
|
||||
PRINTR "A tattered flag, apparently that of ancient Quendor, still flies atop a mighty flagpole in the center of the field."
|
||||
?ELS5: PRINTR "A flag displaying the brown and gold of ancient Quendor is lying here."
|
||||
|
||||
|
||||
.FUNCT FLAG-F
|
||||
EQUAL? PRSA,V?FLY \?CND1
|
||||
CALL PERFORM,V?RAISE,FLAG
|
||||
RTRUE
|
||||
?CND1: ZERO? FLAG-RAISED /?ELS8
|
||||
EQUAL? PRSA,V?RAISE \?ELS14
|
||||
PRINTR "It's already at the top of the pole."
|
||||
?ELS14: EQUAL? PRSA,V?LOWER \?ELS18
|
||||
SET 'FLAG-RAISED,FALSE-VALUE
|
||||
FCLEAR FLAG,TRYTAKEBIT
|
||||
FCLEAR FLAG-POLE,NDESCBIT
|
||||
PRINTR "The flag is lowered to the ground."
|
||||
?ELS18: EQUAL? PRSA,V?EXAMINE \?ELS22
|
||||
PRINTR "You can't see it very well from here -- the flagpole is very tall."
|
||||
?ELS22: EQUAL? PRSA,V?TAKE,V?WAVE,V?SHAKE /?THN27
|
||||
EQUAL? PRSA,V?EAT,V?RUB,V?MOVE /?THN27
|
||||
EQUAL? PRSA,V?LOOK-INSIDE,V?DRINK \?ELS26
|
||||
?THN27: PRINTI "The flag is "
|
||||
ZERO? FLYING /?CND31
|
||||
PRINTI "still "
|
||||
?CND31: PRINTR "way above you at the top of the flagpole!"
|
||||
?ELS26: EQUAL? PRSA,V?LOOK-UNDER \FALSE
|
||||
CALL PERFORM,V?EXAMINE,FLAG-POLE
|
||||
RTRUE
|
||||
?ELS8: EQUAL? PRSA,V?RAISE \?ELS47
|
||||
EQUAL? HERE,PARADE-GROUND \?ELS52
|
||||
FSET FLAG,TRYTAKEBIT
|
||||
MOVE FLAG,HERE
|
||||
FSET FLAG-POLE,NDESCBIT
|
||||
SET 'FLAG-RAISED,TRUE-VALUE
|
||||
PRINTR "The flag is raised to the top of the pole."
|
||||
?ELS52: PRINTR "There's no flagpole in sight."
|
||||
?ELS47: EQUAL? PRSA,V?LOWER \?ELS60
|
||||
PRINTR "You've already done that."
|
||||
?ELS60: EQUAL? PRSA,V?WAVE \?ELS64
|
||||
PRINTR "How patriotic!"
|
||||
?ELS64: EQUAL? PRSA,V?WEAR \?ELS68
|
||||
PRINTR "Who do you think you are, Abbie Hoffman?"
|
||||
?ELS68: EQUAL? PRSA,V?SHAKE,V?LOOK-INSIDE,V?EXAMINE /?THN75
|
||||
EQUAL? PRSA,V?SEARCH,V?RUB \?ELS72
|
||||
?THN75: ZERO? FOOBLE-FOUND \?ELS72
|
||||
SET 'FOOBLE-FOUND,TRUE-VALUE
|
||||
MOVE FOOBLE-VIAL,HERE
|
||||
CALL THIS-IS-IT,FOOBLE-VIAL
|
||||
PRINTR "As you fiddle with the flag, an aqua vial drops from a hidden pocket and falls to the ground."
|
||||
?ELS72: EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
PRINTR "The tattered flag displays the brown and gold of ancient Quendor."
|
||||
|
||||
|
||||
.FUNCT FOOBLE-VIAL-F
|
||||
EQUAL? PRSA,V?READ \FALSE
|
||||
CALL FIXED-FONT-ON
|
||||
PRINTI "
|
||||
""FOOBLE POTION
|
||||
(increase muscular coordination)"""
|
||||
CRLF
|
||||
CALL FIXED-FONT-OFF
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT FOOBLE-POTION-F
|
||||
EQUAL? PRSA,V?DRINK,V?EAT \?ELS5
|
||||
CALL HELD?,FOOBLE-VIAL
|
||||
ZERO? STACK \?ELS5
|
||||
CALL POTION-POUR,FOOBLE-VIAL
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?RESEARCH \?ELS9
|
||||
CALL READ-ABOUT-POTIONS,2
|
||||
RSTACK
|
||||
?ELS9: EQUAL? PRSA,V?DRINK,V?EAT \?ELS11
|
||||
MOVE FOOBLE-POTION,DIAL
|
||||
ZERO? UNDER-INFLUENCE /?CND12
|
||||
CALL TWO-POTIONS
|
||||
RTRUE
|
||||
?CND12: SET 'UNDER-INFLUENCE,FOOBLE-POTION
|
||||
CALL QUEUE,I-UNFOOBLE,17
|
||||
PUT STACK,0,1
|
||||
SET 'FOOBLED,TRUE-VALUE
|
||||
PRINTR "The aqua potion tasted like lime jelly, and sent vibrations through your muscles."
|
||||
?ELS11: EQUAL? PRSA,V?DROP \?ELS19
|
||||
CALL PERFORM,V?POUR,PRSO,PRSI
|
||||
RTRUE
|
||||
?ELS19: EQUAL? PRSA,V?POUR \FALSE
|
||||
EQUAL? PRSO,FOOBLE-POTION \FALSE
|
||||
CALL POTION-POUR,FOOBLE-VIAL
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT I-UNFOOBLE
|
||||
SET 'FOOBLED,FALSE-VALUE
|
||||
EQUAL? UNDER-INFLUENCE,FOOBLE-POTION \?CND1
|
||||
SET 'UNDER-INFLUENCE,FALSE-VALUE
|
||||
?CND1: CRLF
|
||||
PRINTR "Your muscles feel limp for a moment."
|
||||
|
||||
|
||||
.FUNCT BARRACKS-PSEUDO
|
||||
SET 'PERFORMING-SPELL,TRUE-VALUE
|
||||
CALL PERFORM,PRSA,GLOBAL-ROOM,PRSI
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT EMPLACEMENT-EXIT-F
|
||||
ZERO? FLYING /?ELS3
|
||||
PRINTI "The updrafts from the "
|
||||
EQUAL? PRSO,P?NORTH \?ELS9
|
||||
PRINTI "river"
|
||||
JUMP ?CND1
|
||||
?ELS9: PRINTI "ocean"
|
||||
JUMP ?CND1
|
||||
?ELS3: PRINTI "The plunge"
|
||||
?CND1: PRINTI " would kill you."
|
||||
CRLF
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT CANNON-F
|
||||
EQUAL? PRSA,V?LAMP-ON,V?SHOOT \?ELS5
|
||||
PRINTR "This cannon probably hasn't worked for centuries!"
|
||||
?ELS5: EQUAL? PRSA,V?CLOSE \?ELS9
|
||||
CALL V-DEFLATE
|
||||
RSTACK
|
||||
?ELS9: EQUAL? PRSA,V?SEARCH,V?REACH-IN \?ELS11
|
||||
FSET? YIPPLES,INVISIBLE \?ELS11
|
||||
SET 'BITTEN,TRUE-VALUE
|
||||
CALL QUEUE,I-BITE-HEAL,20
|
||||
PUT STACK,0,1
|
||||
PRINTR "Something bites your hand!"
|
||||
?ELS11: EQUAL? PRSA,V?LOOK-INSIDE \?ELS17
|
||||
FSET? YIPPLES,INVISIBLE \?ELS17
|
||||
FCLEAR YIPPLES,INVISIBLE
|
||||
PRINTR "Lying at the bottom of the barrel is a pile of identical scrolls!"
|
||||
?ELS17: EQUAL? PRSA,V?EXAMINE \?ELS23
|
||||
PRINTR "The barrel is wide enough to hold the hugest of cannonballs, but it isn't very deep."
|
||||
?ELS23: EQUAL? PRSA,V?SEARCH,V?REACH-IN \?ELS27
|
||||
IN? YIPPLES,CANNON \?ELS27
|
||||
CALL PERFORM,V?TAKE,YIPPLES
|
||||
RTRUE
|
||||
?ELS27: EQUAL? PRSA,V?PUT \?ELS31
|
||||
IN? YIPPLES,CANNON \?ELS31
|
||||
EQUAL? BAT-GUANO,PRSO \?ELS31
|
||||
MOVE YIPPLES,DIAL
|
||||
MOVE YONK-SCROLL,CANNON
|
||||
CALL THIS-IS-IT,YONK-SCROLL
|
||||
MOVE BAT-GUANO,CANNON
|
||||
PRINTI "When you drop the guano into the barrel, "
|
||||
FSET? YIPPLES,INVISIBLE \?ELS38
|
||||
PRINTI "dozens of scrolls pour out and literally run off"
|
||||
JUMP ?CND36
|
||||
?ELS38: PRINTI "the scrolls sprout feet and spill out of the cannon, dashing away"
|
||||
?CND36: PRINTI " in every direction! A single ordinary scroll is left sitting at the bottom of the barrel."
|
||||
CRLF
|
||||
FCLEAR YIPPLES,INVISIBLE
|
||||
RTRUE
|
||||
?ELS31: EQUAL? PRSA,V?THROUGH \FALSE
|
||||
ZERO? FWEEPED /FALSE
|
||||
PRINTR "Your wingspan is too large."
|
||||
|
||||
|
||||
.FUNCT YIPPLES-F
|
||||
EQUAL? PRSA,V?TAKE \?ELS5
|
||||
SET 'BITTEN,TRUE-VALUE
|
||||
CALL QUEUE,I-BITE-HEAL,20
|
||||
PUT STACK,0,1
|
||||
PRINTR "As you reach into the cannon, something bites you painfully on the hand!"
|
||||
?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
PRINTR "Every scroll is virtually identical."
|
||||
|
||||
|
||||
.FUNCT I-BITE-HEAL
|
||||
SET 'BITTEN,FALSE-VALUE
|
||||
RFALSE
|
||||
|
||||
.ENDI
|
1055
globals.zap
Normal file
1055
globals.zap
Normal file
File diff suppressed because it is too large
Load diff
96
globals.zil
96
globals.zil
|
@ -106,7 +106,7 @@
|
|||
<COND (.X
|
||||
<TELL "You'll have to be more specific, I'm afraid." CR>)
|
||||
(<EQUAL? ,WINNER ,PROTAGONIST>
|
||||
<TELL "You can't see">
|
||||
<TELL "You can't see ">
|
||||
<COND (<OR <EQUAL? ,P-XNAM ,W?BELBOZ ,W?HELIST ,W?KRILL>
|
||||
<EQUAL? ,P-XNAM ,W?FROBAR ,W?JEEARR ,W?FLATHE>
|
||||
<EQUAL? ,P-XNAM ,W?DUNCAN ,W?ENTHAR ,W?THOLL>
|
||||
|
@ -116,13 +116,13 @@
|
|||
<EQUAL? ,P-XNAM ,W?ORKAN ,W?BARBEL ,W?CHEVAU>>
|
||||
T)
|
||||
(T
|
||||
<TELL " any">)>
|
||||
<TELL "any ">)>
|
||||
<NOT-HERE-PRINT .PRSO?>
|
||||
<TELL " here!" CR>)
|
||||
(T
|
||||
<TELL "Looking confused,">
|
||||
<ARTICLE ,WINNER T>
|
||||
<TELL " says, \"I don't see any">
|
||||
<TELL " says, \"I don't see any ">
|
||||
<NOT-HERE-PRINT .PRSO?>
|
||||
<TELL " here!\"" CR>)>
|
||||
<SETG P-CONT <>>
|
||||
|
@ -149,7 +149,7 @@
|
|||
<SETG PRSI ,P-MOBY-FOUND>)>
|
||||
<RFALSE>)
|
||||
(<NOT .PRSO?>
|
||||
<TELL "You wouldn't find any">
|
||||
<TELL "You wouldn't find any ">
|
||||
<NOT-HERE-PRINT .PRSO?>
|
||||
<TELL " there." CR>
|
||||
<RTRUE>)
|
||||
|
@ -166,27 +166,27 @@
|
|||
|
||||
<ROUTINE NOT-HERE-PRINT (PRSO?)
|
||||
<COND (<EQUAL? ,P-XNAM ,W?BELBOZ>
|
||||
<TELL " Belboz">)
|
||||
<TELL "Belboz">)
|
||||
(<EQUAL? ,P-XNAM ,W?THOLL>
|
||||
<TELL " Tholl">)
|
||||
<TELL "Tholl">)
|
||||
(<OR <EQUAL? ,P-XNAM ,W?GURTH ,W?MIZNIA ,W?ACCARD>
|
||||
<EQUAL? ,P-XNAM ,W?BORPHE ,W?ANTHAR ,W?MITHIC>
|
||||
<EQUAL? ,P-XNAM ,W?GALEPA ,W?MAREIL ,W?THRIFF>>
|
||||
<TELL " that place">)
|
||||
<TELL "that place">)
|
||||
(<OR <EQUAL? ,P-XNAM ,W?HELIST ,W?FROBAR ,W?ORKAN>
|
||||
<EQUAL? ,P-XNAM ,W?BARBEL ,W?CHEVAU>>
|
||||
<TELL " that person">)
|
||||
<TELL "that person">)
|
||||
(<EQUAL? ,P-XNAM ,W?JEEARR>
|
||||
<TELL " Jeearr">)
|
||||
<TELL "Jeearr">)
|
||||
(<EQUAL? ,P-XNAM ,W?KRILL>
|
||||
<TELL " Krill">)
|
||||
<TELL "Krill">)
|
||||
(<EQUAL? ,P-XNAM ,W?FLATHE>
|
||||
<TELL " Flathead">)
|
||||
<TELL "Flathead">)
|
||||
(<EQUAL? ,P-XNAM ,W?DUNCAN ,W?ENTHAR>
|
||||
<TELL " that King">)
|
||||
<TELL "that King">)
|
||||
(,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
|
||||
|
@ -1084,6 +1084,12 @@ have shifted around." CR>
|
|||
" The spell seems very long and extremely complicated.">)>
|
||||
<CRLF>)>>
|
||||
|
||||
<ROUTINE ALWAYS-MEMORIZED (SPELL)
|
||||
<COND (<EQUAL? .SPELL ,GNUSTO-SPELL ,FROTZ-SPELL ,REZROV-SPELL>
|
||||
<RTRUE>)
|
||||
(T
|
||||
<RFALSE>)>>
|
||||
|
||||
<ROUTINE SPELL-F ("AUX" MEM? (FORGET <>))
|
||||
<COND (<VERB? RESEARCH>
|
||||
<TELL "A spell produced by " <PICK-ONE ,MANUFACTURERS> "." CR>)
|
||||
|
@ -1102,23 +1108,21 @@ a scroll in your hand." CR>)
|
|||
<TELL <GETP ,PRSO ,P?TEXT>>
|
||||
<TELL "\"." CR>)>)
|
||||
(<VERB? LEARN>
|
||||
<COND (<NOT <IN? ,PRSO ,SPELL-BOOK>>
|
||||
<COND (<ALWAYS-MEMORIZED ,PRSO>
|
||||
<TELL "You already know that spell by heart." CR>)
|
||||
(<NOT <IN? ,PRSO ,SPELL-BOOK>>
|
||||
<COND (<IN? <LOC ,PRSO> ,PROTAGONIST>
|
||||
<TELL
|
||||
"You haven't written that spell into your book yet. Until you do, you
|
||||
can't memorize the spell." CR>)
|
||||
"You can't memorize a spell until you've written it into your spell book." CR>)
|
||||
(T
|
||||
<V-LEARN>)>)
|
||||
(<EQUAL? ,PRSO ,GNUSTO-SPELL ,FROTZ-SPELL ,REZROV-SPELL>
|
||||
<TELL "You already know that spell by heart." CR>)
|
||||
<V-LEARN>)>)
|
||||
(<NOT <IN? ,SPELL-BOOK ,PROTAGONIST>>
|
||||
<TELL
|
||||
"You don't have your spell book. How do you expect to memorize a spell
|
||||
without a spell book?" CR>)
|
||||
"You don't have your spell book. How do you expect to learn
|
||||
a spell without a spell book?" CR>)
|
||||
(<AND <NOT ,LIT>
|
||||
<NOT ,BLORTED>>
|
||||
<TELL
|
||||
"It will be hard to learn that spell in the dark." CR>)
|
||||
<NOT ,BLORTED>>
|
||||
<TELL "You can't learn it in the dark." CR>)
|
||||
(<FSET? ,SPELL-BOOK ,MUNGBIT>
|
||||
<PERFORM ,V?READ ,SPELL-BOOK>
|
||||
<THIS-IS-IT ,PRSO>
|
||||
|
@ -1179,7 +1183,8 @@ likely that something may have been forgotten in the shuffle." CR>)>
|
|||
<PUTP .SP ,P?COUNT <- .NUM 1>>
|
||||
<RTRUE>)>
|
||||
<PUT ,FORGET-TBL 0 .NUM>
|
||||
<COND (<0? .NUM> <RTRUE>)>
|
||||
<COND (<0? .NUM>
|
||||
<RTRUE>)>
|
||||
<REPEAT ()
|
||||
<COND (<NOT <EQUAL? <SET NSPL
|
||||
<PICK-ONE ,FORGET-TBL>>
|
||||
|
@ -1405,4 +1410,41 @@ bellowing and splashing, and twitching their ears.">>
|
|||
"very"
|
||||
"extremely"
|
||||
"incredibly"
|
||||
"dangerously">>
|
||||
"dangerously">>
|
||||
|
||||
<ROUTINE SPELL-CHECK (TBL WRD "AUX" (OBJ <>))
|
||||
<COND (<EQUAL? .WRD ,W?GNUSTO>
|
||||
<SET OBJ ,GNUSTO-SPELL>)
|
||||
(<EQUAL? .WRD ,W?FROTZ>
|
||||
<SET OBJ ,FROTZ-SPELL>)
|
||||
(<EQUAL? .WRD ,W?REZROV>
|
||||
<SET OBJ ,REZROV-SPELL>)
|
||||
(<EQUAL? .WRD ,W?IZYUK>
|
||||
<SET OBJ ,IZYUK-SPELL>)
|
||||
(<EQUAL? .WRD ,W?AIMFIZ>
|
||||
<SET OBJ ,AIMFIZ-SPELL>)
|
||||
(<EQUAL? .WRD ,W?FWEEP>
|
||||
<SET OBJ ,FWEEP-SPELL>)
|
||||
(<EQUAL? .WRD ,W?SWANZO>
|
||||
<SET OBJ ,SWANZO-SPELL>)
|
||||
(<EQUAL? .WRD ,W?GOLMAC>
|
||||
<SET OBJ ,GOLMAC-SPELL>)
|
||||
(<EQUAL? .WRD ,W?VARDIK>
|
||||
<SET OBJ ,VARDIK-SPELL>)
|
||||
(<EQUAL? .WRD ,W?PULVER>
|
||||
<SET OBJ ,PULVER-SPELL>)
|
||||
(<EQUAL? .WRD ,W?MEEF>
|
||||
<SET OBJ ,MEEF-SPELL>)
|
||||
(<EQUAL? .WRD ,W?VEZZA>
|
||||
<SET OBJ ,VEZZA-SPELL>)
|
||||
(<EQUAL? .WRD ,W?GASPAR>
|
||||
<SET OBJ ,GASPAR-SPELL>)
|
||||
(<EQUAL? .WRD ,W?YOMIN>
|
||||
<SET OBJ ,YOMIN-SPELL>)
|
||||
(<EQUAL? .WRD ,W?YONK>
|
||||
<SET OBJ ,YONK-SPELL>)
|
||||
(<EQUAL? .WRD ,W?MALYON>
|
||||
<SET OBJ ,MALYON-SPELL>)>
|
||||
<COND (.OBJ
|
||||
<OBJ-FOUND .OBJ .TBL>)>
|
||||
<RTRUE>>
|
1684
gparser.zap
Normal file
1684
gparser.zap
Normal file
File diff suppressed because it is too large
Load diff
1550
gparser.zil
Normal file
1550
gparser.zil
Normal file
File diff suppressed because it is too large
Load diff
609
guild.zap
Normal file
609
guild.zap
Normal file
|
@ -0,0 +1,609 @@
|
|||
|
||||
|
||||
.FUNCT BED-F,RARG=0
|
||||
EQUAL? RARG,M-BEG \?ELS5
|
||||
EQUAL? PRSA,V?WALK \?ELS10
|
||||
CALL NOT-GOING-ANYWHERE,BED
|
||||
RSTACK
|
||||
?ELS10: EQUAL? PRSA,V?TAKE \FALSE
|
||||
CALL HELD?,PRSO
|
||||
ZERO? STACK \FALSE
|
||||
EQUAL? PRSO,GLOBAL-SLEEP /FALSE
|
||||
EQUAL? PRSO,GRUE,ME,BED /FALSE
|
||||
IN? PRSO,BED /FALSE
|
||||
PRINTR "You can't reach it from the bed."
|
||||
?ELS5: ZERO? RARG \FALSE
|
||||
EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS28
|
||||
PRINTR "Huh?"
|
||||
?ELS28: EQUAL? PRSA,V?WALK-TO \?ELS32
|
||||
CALL PERFORM,V?WALK-TO,GLOBAL-SLEEP
|
||||
RTRUE
|
||||
?ELS32: EQUAL? PRSA,V?LIE-DOWN,V?CLIMB-ON \FALSE
|
||||
CALL PERFORM,V?BOARD,PRSO
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT GLOBAL-BED-F
|
||||
EQUAL? GLOBAL-BED,PRSO \?ELS5
|
||||
SET 'PERFORMING-SPELL,TRUE-VALUE
|
||||
CALL PERFORM,PRSA,BED,PRSI
|
||||
RTRUE
|
||||
?ELS5: SET 'PERFORMING-SPELL,TRUE-VALUE
|
||||
CALL PERFORM,PRSA,PRSO,BED
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT BELBOZ-QUARTERS-F,RARG
|
||||
EQUAL? RARG,M-LOOK \FALSE
|
||||
PRINTI "The personal chamber of Belboz, who presides over the Circle of Enchanters, is appointed with a beautiful woven wall hanging"
|
||||
IN? MORGIA-PLANT,HERE \?CND8
|
||||
PRINTI ", an exotic morgia plant,"
|
||||
?CND8: PRINTR " and a wide darkwood desk crafted by the artisans of Gurth. The hallway lies to the east."
|
||||
|
||||
|
||||
.FUNCT PERCH-PSEUDO
|
||||
EQUAL? PRSA,V?CLIMB-ON \FALSE
|
||||
PRINTR "I'd recommend a good doctor, but we need the eggs."
|
||||
|
||||
|
||||
.FUNCT PARROT-F
|
||||
EQUAL? PRSA,V?TAKE \FALSE
|
||||
PRINTR "The parrot hops to the other end of the perch."
|
||||
|
||||
|
||||
.FUNCT I-PARROT
|
||||
IN? PARROT,HERE \FALSE
|
||||
RANDOM 100
|
||||
LESS? 40,STACK /FALSE
|
||||
CRLF
|
||||
PRINTI """Squawk! "
|
||||
CALL PICK-ONE,PARROTISMS
|
||||
PRINT STACK
|
||||
PRINTR " Squawk!"""
|
||||
|
||||
|
||||
.FUNCT BELBOZ-DESK-F
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
PRINTI "The desk has one drawer which is "
|
||||
FSET? DESK-DRAWER,OPENBIT \?ELS10
|
||||
PRINTI "open"
|
||||
JUMP ?CND8
|
||||
?ELS10: PRINTI "closed"
|
||||
?CND8: PRINTI "."
|
||||
CRLF
|
||||
FIRST? PRSO \TRUE
|
||||
RFALSE
|
||||
?ELS5: EQUAL? PRSA,V?SEARCH \?ELS27
|
||||
FSET? DESK-DRAWER,OPENBIT /?ELS27
|
||||
FIRST? DESK-DRAWER \?ELS27
|
||||
PRINTI "You open the desk drawer and find "
|
||||
CALL PRINT-CONTENTS,DESK-DRAWER
|
||||
FSET DESK-DRAWER,OPENBIT
|
||||
PRINTR "."
|
||||
?ELS27: EQUAL? PRSA,V?REZROV,V?OPEN,V?CLOSE /?THN36
|
||||
EQUAL? PRSA,V?LOOK-INSIDE,V?REACH-IN \?ELS35
|
||||
?THN36: SET 'PERFORMING-SPELL,TRUE-VALUE
|
||||
CALL PERFORM,PRSA,DESK-DRAWER
|
||||
RTRUE
|
||||
?ELS35: EQUAL? PRSA,V?TAKE \?ELS39
|
||||
EQUAL? BELBOZ-DESK,PRSI \?ELS39
|
||||
FIRST? DESK-DRAWER \?ELS39
|
||||
CALL PERFORM,V?TAKE,PRSO,DESK-DRAWER
|
||||
FIRST? BELBOZ-DESK \TRUE
|
||||
RFALSE
|
||||
?ELS39: EQUAL? PRSA,V?PUT \FALSE
|
||||
EQUAL? PRSI,BELBOZ-DESK \FALSE
|
||||
CALL PERFORM,V?PUT,PRSO,DESK-DRAWER
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT TINY-BOX-F
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
PRINTI "There is writing on the lid of the box."
|
||||
CRLF
|
||||
CALL PERFORM,V?READ,PRSO
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?READ \FALSE
|
||||
CALL FIXED-FONT-ON
|
||||
PRINTI "
|
||||
"" MAGIC AMULET
|
||||
|
||||
The closer this amulet is to
|
||||
its owner, the brighter it may
|
||||
glow. Ideal for leaving with
|
||||
your loved ones if you go on
|
||||
a long and hazardous journey.
|
||||
|
||||
This amulet is sensitized to
|
||||
-> BELBOZ THE NECROMANCER
|
||||
|
||||
Another fine product of the
|
||||
Frobozz Magic Amulet Company."""
|
||||
CRLF
|
||||
CALL FIXED-FONT-OFF
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT MAGIC-AMULET-F
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
PRINTI "A blue jewel hangs from a long golden chain. The jewel is "
|
||||
CALL AMULET-GLOWS
|
||||
PRINTR "."
|
||||
?ELS5: EQUAL? PRSA,V?RESEARCH \FALSE
|
||||
PRINTR "The Amulet of Aggthora was a legendary jewel renowned for its powers of augury."
|
||||
|
||||
|
||||
.FUNCT AMULET-DESCFCN,RARG
|
||||
PRINTI "There is an amulet here. The amulet's jewel is "
|
||||
CALL AMULET-GLOWS
|
||||
PRINTR "."
|
||||
|
||||
|
||||
.FUNCT AMULET-GLOWS
|
||||
CALL IN-GUILD-HALL?
|
||||
ZERO? STACK /?ELS5
|
||||
PRINTI "dark"
|
||||
RTRUE
|
||||
?ELS5: CALL IN-MAZE-AREA?
|
||||
ZERO? STACK /?ELS9
|
||||
PRINTI "glowing"
|
||||
RTRUE
|
||||
?ELS9: CALL IN-CRATER-AREA?
|
||||
ZERO? STACK /?ELS13
|
||||
PRINTI "glowing brightly"
|
||||
RTRUE
|
||||
?ELS13: CALL IN-COAL-MINE?
|
||||
ZERO? STACK /?ELS17
|
||||
PRINTI "glowing very brightly"
|
||||
RTRUE
|
||||
?ELS17: CALL IN-END-GAME?
|
||||
ZERO? STACK /?ELS21
|
||||
PRINTI "pulsing with flashes of brilliant light"
|
||||
RTRUE
|
||||
?ELS21: PRINTI "glowing dimly"
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT IN-GUILD-HALL?,X=0
|
||||
ZERO? X \?CND1
|
||||
SET 'X,HERE
|
||||
?CND1: EQUAL? X,HALLWAY-1,HALLWAY-2,CHAMBER-OF-THE-CIRCLE /TRUE
|
||||
EQUAL? X,YOUR-QUARTERS,BELBOZ-QUARTERS,LOBBY /TRUE
|
||||
EQUAL? X,FROBAR-QUARTERS,HELISTAR-QUARTERS /TRUE
|
||||
EQUAL? X,STORE-ROOM,LIBRARY,CELLAR /TRUE
|
||||
EQUAL? X,APPRENTICE-QUARTERS,SERVANT-QUARTERS \FALSE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT IN-COAL-MINE?
|
||||
EQUAL? HERE,COAL-BIN-ROOM,DIAL-ROOM,SHAFT-BOTTOM /TRUE
|
||||
EQUAL? HERE,SHAFT-TOP,TOP-OF-CHUTE,SLANTED-ROOM /TRUE
|
||||
EQUAL? HERE,COAL-MINE-1,COAL-MINE-2,COAL-MINE-3 \FALSE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT IN-MAZE-AREA?
|
||||
EQUAL? HERE,TOLL-GATE,END-OF-HIGHWAY,HOLLOW /TRUE
|
||||
EQUAL? HERE,OUTSIDE-GLASS-DOOR,GLASS-MAZE,STORE /TRUE
|
||||
EQUAL? HERE,ENTRANCE-HALL,STONE-HUT,OUTSIDE-STORE \FALSE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT IN-CRATER-AREA?
|
||||
EQUAL? HERE,HIGHWAY,BEND,EDGE-OF-CRATER /TRUE
|
||||
EQUAL? HERE,CRATER,WINDING-TUNNEL,HALL-OF-CARVINGS /TRUE
|
||||
EQUAL? HERE,EDGE-OF-CHASM,BARE-PASSAGE,SOOTY-ROOM /TRUE
|
||||
EQUAL? HERE,ELBOW-ROOM,TREE-ROOM,PARK-ENTRANCE /TRUE
|
||||
EQUAL? HERE,EAST-END-OF-MIDWAY,FLUME,HAUNTED-HOUSE /TRUE
|
||||
EQUAL? HERE,WEST-END-OF-MIDWAY,ROLLER-COASTER,ARCADE /TRUE
|
||||
EQUAL? HERE,CASINO \FALSE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT IN-END-GAME?
|
||||
EQUAL? HERE,OCEAN-NORTH,OCEAN-SOUTH,BELBOZ-HIDEOUT /TRUE
|
||||
EQUAL? HERE,MOUTH-OF-RIVER,GRUE-LAIR,MAMMOTH-CAVERN /TRUE
|
||||
EQUAL? HERE,CHAMBER-OF-LIVING-DEATH,COVE,LAGOON-FLOOR /TRUE
|
||||
EQUAL? HERE,HALL-OF-ETERNAL-PAIN,LAGOON \FALSE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT JOURNAL-F
|
||||
EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE,V?READ \?ELS5
|
||||
FSET? JOURNAL,OPENBIT \?ELS10
|
||||
PRINTI "You skim through the pages of the journal, a combination diary and notebook. Most of the notations, written in Belboz's familiar flowing script, deal with meetings of the Circle and business of the Guild.
|
||||
|
||||
There is one interesting entry toward the end of the book. Belboz refers to an ancient and evil force known simply as Jeearr, a demon whose powers could endanger the Circle and possibly the entire kingdom. He has decided to conduct some dangerous exploratory experiments, operating alone to shield the Circle from the perils involved.
|
||||
|
||||
The last three entries are strange and frightening -- written in a hand quite different from that of Belboz, and in a language totally unfamiliar to you.
|
||||
|
||||
On the inside cover is an inscription, written in a light script, which reads ""Current code: "
|
||||
GET CODE-TABLE,CODE-NUMBER
|
||||
PRINT STACK
|
||||
PRINTR """."
|
||||
?ELS10: PRINTR "It's closed and sealed with a lock."
|
||||
?ELS5: EQUAL? PRSA,V?REZROV,V?UNLOCK,V?OPEN \FALSE
|
||||
FSET? JOURNAL,OPENBIT \?ELS23
|
||||
PRINTR "The journal is already open!"
|
||||
?ELS23: EQUAL? PRSA,V?REZROV \?ELS27
|
||||
PRINTR "The journal seems to bear a spell protecting it against the simple rezrov spell."
|
||||
?ELS27: ZERO? PRSI \?CND32
|
||||
IN? KEY,PROTAGONIST \?ELS37
|
||||
SET 'PRSI,KEY
|
||||
PRINTI "(with the key)"
|
||||
CRLF
|
||||
JUMP ?CND32
|
||||
?ELS37: SET 'PRSI,HANDS
|
||||
?CND32: EQUAL? PRSI,KEY \?ELS46
|
||||
FSET JOURNAL,OPENBIT
|
||||
PRINTR "The journal springs open."
|
||||
?ELS46: PRINTI "You can't unlock it with"
|
||||
CALL ARTICLE,PRSI
|
||||
PRINTR "."
|
||||
|
||||
|
||||
.FUNCT WHEEL-F
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
PRINTI "Like most infotaters, this one has several windows and a rotating data wheel. It is leather-bound and beautifully illustrated. "
|
||||
CALL INFOTATER-NOTE
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?READ \?ELS9
|
||||
PRINTI "The infotater has entries on a dozen native beasts. "
|
||||
CALL INFOTATER-NOTE
|
||||
RSTACK
|
||||
?ELS9: EQUAL? PRSA,V?SPIN,V?TURN \?ELS13
|
||||
PRINTR "Refer to the infotater in your SORCERER package."
|
||||
?ELS13: EQUAL? PRSA,V?RESEARCH \FALSE
|
||||
PRINTR "The infotater, which popular legends say was invented by Entharion the Wise, is the best way to store data ever discovered."
|
||||
|
||||
|
||||
.FUNCT INFOTATER-NOTE
|
||||
PRINTR "(NOTE: This is the infotater included in your game package.)"
|
||||
|
||||
|
||||
.FUNCT WALL-HANGING-F
|
||||
EQUAL? PRSA,V?LOOK-UNDER,V?LOOK-BEHIND,V?MOVE /?THN6
|
||||
EQUAL? PRSA,V?RAISE,V?SHAKE,V?RUB \?ELS5
|
||||
?THN6: FSET? KEY,TOUCHBIT /?ELS12
|
||||
MOVE KEY,HERE
|
||||
CALL THIS-IS-IT,KEY
|
||||
FSET KEY,TOUCHBIT
|
||||
ADD SCORE,15 >SCORE
|
||||
PRINTR "As you move the tapestry, a key falls out from behind it and lands on the floor."
|
||||
?ELS12: PRINTR "Nope, no more keys."
|
||||
?ELS5: EQUAL? PRSA,V?UNTIE,V?TAKE \?ELS20
|
||||
PRINTR "It looks too well fastened to remove from the wall."
|
||||
?ELS20: EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
PRINTR "It is a beautiful piece of local handiwork, given to Belboz by the grateful townspeople after his (admittedly showy) pyrotechnical destruction of the evil giant Amathradonis. The hanging is affixed to the wall at its upper corners."
|
||||
|
||||
|
||||
.FUNCT MORGIA-PLANT-F
|
||||
EQUAL? PRSA,V?MEEF \?ELS5
|
||||
MOVE MORGIA-PLANT,DIAL
|
||||
PRINTR "The morgia plant, particularly susceptible to the meef spell, shrivels up and vanishes."
|
||||
?ELS5: EQUAL? PRSA,V?TAKE \?ELS9
|
||||
PRINTR "The plant is so heavy you succeed only in budging it a few inches."
|
||||
?ELS9: EQUAL? PRSA,V?EAT \?ELS13
|
||||
PRINTR "Morgias taste terrible; besides, Belboz wouldn't like someone munching on his favorite plant."
|
||||
?ELS13: EQUAL? PRSA,V?RESEARCH \FALSE
|
||||
PRINTR "A beautiful and exotic plant, the morgia is well-known for its susceptibility to magic spells."
|
||||
|
||||
|
||||
.FUNCT HALLWAY-1-F,RARG
|
||||
EQUAL? RARG,M-LOOK \FALSE
|
||||
CALL HALLWAY-DESC
|
||||
PRINTI "A heavy wooden door, currently "
|
||||
FSET? CHAMBER-DOOR,OPENBIT \?ELS10
|
||||
PRINTI "open"
|
||||
JUMP ?CND8
|
||||
?ELS10: PRINTI "closed"
|
||||
?CND8: PRINTR ", leads north."
|
||||
|
||||
|
||||
.FUNCT HALLWAY-2-F,RARG
|
||||
EQUAL? RARG,M-LOOK \FALSE
|
||||
CALL HALLWAY-DESC
|
||||
PRINTR "A large marble archway to the south leads into an open area."
|
||||
|
||||
|
||||
.FUNCT HALLWAY-DESC
|
||||
PRINTI "Rooms lie to the east and west from this north-south corridor. "
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT CHAMBER-OF-THE-CIRCLE-F,RARG
|
||||
EQUAL? RARG,M-LOOK \FALSE
|
||||
PRINTI "The meeting place of the Circle of Enchanters is a large, round room with a high domed ceiling. A table occupies the center of the room. Engraved on the wall is a list of tenets, the Guild's code of honor. The only door, at the southernmost point of the perimeter, is "
|
||||
FSET? CHAMBER-DOOR,OPENBIT \?ELS10
|
||||
PRINTI "open"
|
||||
JUMP ?CND8
|
||||
?ELS10: PRINTI "closed"
|
||||
?CND8: PRINTR "."
|
||||
|
||||
|
||||
.FUNCT TABLE-PSEUDO
|
||||
EQUAL? PRSA,V?CLIMB-ON,V?PUT-ON \?ELS5
|
||||
SET 'TABLE-WARNING,TRUE-VALUE
|
||||
PRINTR "A warning nymph appears, floating over the table. ""The servants just finished waxing the table, and it's still wet."" With a sly grin, the nymph vanishes."
|
||||
?ELS5: ZERO? TABLE-WARNING /FALSE
|
||||
EQUAL? PRSA,V?PULVER \FALSE
|
||||
PRINTR "That would cause the wax to dry dull and yellowish!"
|
||||
|
||||
|
||||
.FUNCT MARBLE-PSEUDO
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT I-MAILMAN
|
||||
MOVE MAGAZINE,MAILBOX
|
||||
FCLEAR MAILBOX,OPENBIT
|
||||
IN? MATCHBOOK,MAILBOX \?CND1
|
||||
MOVE VILSTU-VIAL,MAILBOX
|
||||
MOVE MATCHBOOK,DIAL
|
||||
?CND1: EQUAL? HERE,LOBBY \?ELS8
|
||||
SET 'MAILMAN-FOLLOW,TRUE-VALUE
|
||||
CALL QUEUE,I-MAILMAN-FOLLOW,1
|
||||
PUT STACK,0,1
|
||||
CRLF
|
||||
PRINTR "A member of the Messengers Guild walks up and puts something in the receptacle. He closes it, and rings the doorbell. Noticing you, he gives a friendly wave before departing."
|
||||
?ELS8: CALL IN-GUILD-HALL?
|
||||
ZERO? STACK /FALSE
|
||||
CRLF
|
||||
PRINTR "The Guild Hall doorbell chimes."
|
||||
|
||||
|
||||
.FUNCT I-MAILMAN-FOLLOW
|
||||
SET 'MAILMAN-FOLLOW,FALSE-VALUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT MAGAZINE-F
|
||||
EQUAL? PRSA,V?READ,V?LOOK-INSIDE,V?OPEN \FALSE
|
||||
PRINTI "This month's cover story is about Belboz! Other stories relate the explosion of spell scroll manufacturers, and the coming shakedown in the magic potion industry. The address label on the cover reads:
|
||||
|
||||
"
|
||||
CALL FIXED-FONT-ON
|
||||
PRINTI " ""Z5 ACCAR256 4-964
|
||||
Hall of the Guild of Enchanters
|
||||
Village of Accardi-By-The-Sea
|
||||
Land of Frobozz"""
|
||||
CRLF
|
||||
CALL FIXED-FONT-OFF
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT VILSTU-VIAL-F
|
||||
EQUAL? PRSA,V?READ \FALSE
|
||||
CALL FIXED-FONT-ON
|
||||
PRINTI "
|
||||
""VILSTU POTION
|
||||
(obviate need for breathing)"""
|
||||
CRLF
|
||||
CALL FIXED-FONT-OFF
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT VILSTU-POTION-F
|
||||
EQUAL? PRSA,V?DRINK,V?EAT \?ELS5
|
||||
IN? VILSTU-VIAL,PROTAGONIST /?ELS5
|
||||
CALL POTION-POUR,VILSTU-VIAL
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?RESEARCH \?ELS9
|
||||
CALL READ-ABOUT-POTIONS,3
|
||||
RSTACK
|
||||
?ELS9: EQUAL? PRSA,V?DRINK,V?EAT \?ELS11
|
||||
MOVE VILSTU-POTION,DIAL
|
||||
ZERO? UNDER-INFLUENCE /?CND12
|
||||
CALL TWO-POTIONS
|
||||
RTRUE
|
||||
?CND12: SET 'UNDER-INFLUENCE,VILSTU-POTION
|
||||
CALL QUEUE,I-BREATHE,19
|
||||
PUT STACK,0,1
|
||||
SET 'VILSTUED,TRUE-VALUE
|
||||
EQUAL? HERE,COAL-BIN-ROOM,DIAL-ROOM \?CND16
|
||||
CALL INT,I-SUFFOCATE
|
||||
PUT STACK,0,0
|
||||
CALL QUEUE,I-OLDER-SELF,1
|
||||
PUT STACK,0,1
|
||||
?CND16: PRINTR "The orange potion tasted like pepper, and made your nose tingle."
|
||||
?ELS11: EQUAL? PRSA,V?DROP \?ELS22
|
||||
CALL PERFORM,V?POUR,PRSO,PRSI
|
||||
RTRUE
|
||||
?ELS22: EQUAL? PRSA,V?POUR \FALSE
|
||||
EQUAL? PRSO,VILSTU-POTION \FALSE
|
||||
CALL POTION-POUR,VILSTU-VIAL
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT I-BREATHE
|
||||
INC 'BREATH-SHORTAGE
|
||||
EQUAL? UNDER-INFLUENCE,VILSTU-POTION \?CND1
|
||||
SET 'UNDER-INFLUENCE,FALSE-VALUE
|
||||
?CND1: EQUAL? BREATH-SHORTAGE,1 \?ELS8
|
||||
CALL QUEUE,I-BREATHE,4
|
||||
PUT STACK,0,1
|
||||
CRLF
|
||||
PRINTI "You feel the vilstu potion beginning to wear off"
|
||||
CALL IN-COAL-MINE?
|
||||
ZERO? STACK /?CND11
|
||||
PRINTI ", and the air here seems pretty unbreathable"
|
||||
?CND11: PRINTR "."
|
||||
?ELS8: EQUAL? BREATH-SHORTAGE,2 \?ELS19
|
||||
CALL QUEUE,I-BREATHE,6
|
||||
PUT STACK,0,1
|
||||
CRLF
|
||||
PRINTI "The vilstu potion has almost completely worn off now"
|
||||
CALL IN-COAL-MINE?
|
||||
ZERO? STACK /?CND22
|
||||
PRINTI ", and I doubt you could survive here without it"
|
||||
?CND22: PRINTR "."
|
||||
?ELS19: SET 'VILSTUED,FALSE-VALUE
|
||||
EQUAL? HERE,LAGOON-FLOOR \?CND31
|
||||
CALL QUEUE,I-DROWN,-1
|
||||
PUT STACK,0,1
|
||||
?CND31: CRLF
|
||||
PRINTI "You feel the final effects of the vilstu potion vanish"
|
||||
CALL IN-COAL-MINE?
|
||||
ZERO? STACK /?ELS40
|
||||
CALL JIGS-UP,STR?167
|
||||
RSTACK
|
||||
?ELS40: SET 'AWAKE,8
|
||||
SET 'LOAD-ALLOWED,20
|
||||
SET 'FUMBLE-NUMBER,1
|
||||
CALL QUEUE,I-TIRED,8
|
||||
PUT STACK,0,1
|
||||
PRINTR ", leaving you totally exhausted (an unfortunate side effect)."
|
||||
|
||||
|
||||
.FUNCT STAND-PSEUDO
|
||||
EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
PRINTR "A volume lies open on the stand."
|
||||
|
||||
|
||||
.FUNCT ENCYCLOPEDIA-F
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
PRINTI "The volume lies open to "
|
||||
ZERO? VOLUME-USED /?ELS12
|
||||
PRINTR "a random entry."
|
||||
?ELS12: PRINTI "an entry about the Glass Maze of King Duncanthrax. "
|
||||
CALL PERFORM,V?RESEARCH,MAZE
|
||||
CRLF
|
||||
PRINTR "You could probably read about all sorts of other interesting people, places, and things by looking them up in the encyclopedia."
|
||||
?ELS5: EQUAL? PRSA,V?OPEN \?ELS23
|
||||
PRINTR "It is."
|
||||
?ELS23: EQUAL? PRSA,V?CLOSE \?ELS27
|
||||
PRINTR "Why bother?"
|
||||
?ELS27: EQUAL? PRSA,V?TAKE \?ELS31
|
||||
PRINTR "A library nymph appears, sitting on your wrist. ""Sorry, but the encyclopedia is never to be removed from the stand."" Kicking you gently in the thumb, the nymph vanishes."
|
||||
?ELS31: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
|
||||
CALL PERFORM,V?READ,PRSO
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT BERZIO-VIAL-F
|
||||
EQUAL? PRSA,V?READ \FALSE
|
||||
CALL FIXED-FONT-ON
|
||||
PRINTI "
|
||||
""BERZIO POTION
|
||||
(obviate need for food or drink)"""
|
||||
CRLF
|
||||
CALL FIXED-FONT-OFF
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT BERZIO-POTION-F
|
||||
EQUAL? PRSA,V?DRINK,V?EAT \?ELS5
|
||||
IN? BERZIO-VIAL,PROTAGONIST /?ELS5
|
||||
CALL POTION-POUR,BERZIO-VIAL
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?RESEARCH \?ELS9
|
||||
CALL READ-ABOUT-POTIONS,1
|
||||
RSTACK
|
||||
?ELS9: EQUAL? PRSA,V?DRINK,V?EAT \?ELS11
|
||||
MOVE BERZIO-POTION,DIAL
|
||||
SET 'BERZIOED,TRUE-VALUE
|
||||
CALL QUEUE,I-UNBERZIO,100
|
||||
PUT STACK,0,1
|
||||
ADD SCORE,10 >SCORE
|
||||
PRINTI "The potion was completely tasteless."
|
||||
GRTR? HUNGER-LEVEL,0 /?THN17
|
||||
GRTR? THIRST-LEVEL,0 \?CND14
|
||||
?THN17: PRINTI " You no longer feel hungry and thirsty, though."
|
||||
?CND14: SET 'HUNGER-LEVEL,0
|
||||
SET 'THIRST-LEVEL,0
|
||||
CRLF
|
||||
RTRUE
|
||||
?ELS11: EQUAL? PRSA,V?DROP \?ELS22
|
||||
CALL PERFORM,V?POUR,PRSO,PRSI
|
||||
RTRUE
|
||||
?ELS22: EQUAL? PRSA,V?POUR \FALSE
|
||||
EQUAL? PRSO,BERZIO-POTION \FALSE
|
||||
CALL POTION-POUR,BERZIO-VIAL
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT I-UNBERZIO
|
||||
SET 'BERZIOED,FALSE-VALUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT MATCHBOOK-F
|
||||
EQUAL? PRSA,V?CLOSE \?ELS5
|
||||
PRINTR "Why bother?"
|
||||
?ELS5: EQUAL? PRSA,V?COUNT,V?EXAMINE,V?OPEN /?THN10
|
||||
EQUAL? PRSA,V?STRIKE \?ELS9
|
||||
?THN10: PRINTR "The matches are all gone, but there is some printing on the inner cover."
|
||||
?ELS9: EQUAL? PRSA,V?READ \FALSE
|
||||
CALL FIXED-FONT-ON
|
||||
PRINTI """Amazing Vilstu Potion!
|
||||
|
||||
Get by without breathing! Amaze your
|
||||
friends! Be the first person on the
|
||||
block to own some!
|
||||
|
||||
Order today by dropping this in any
|
||||
mailbox. Our shipping department will
|
||||
use the latest in temporal travel
|
||||
techniques to insure that your potion
|
||||
arrives the same day you order it!
|
||||
(Orders received before noon will
|
||||
arrive the day before you order)."""
|
||||
CRLF
|
||||
CALL FIXED-FONT-OFF
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT CALENDAR-F
|
||||
EQUAL? PRSA,V?LOOK-INSIDE,V?OPEN \FALSE
|
||||
CALL PERFORM,V?READ,CALENDAR
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT COBWEB-PSEUDO
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT TRUNK-F
|
||||
EQUAL? PRSA,V?TAKE \?ELS5
|
||||
EQUAL? PRSO,TRUNK \?ELS5
|
||||
PRINTR "It's too heavy to even budge."
|
||||
?ELS5: FSET? TRUNK,OPENBIT /FALSE
|
||||
EQUAL? PRSA,V?OPEN \?ELS16
|
||||
PRINTR "The lid won't budge."
|
||||
?ELS16: EQUAL? PRSA,V?UNLOCK \?ELS20
|
||||
PRINTR "Perhaps the buttons..."
|
||||
?ELS20: EQUAL? PRSA,V?REZROV \FALSE
|
||||
PRINTR "The lid bulges outward for a moment."
|
||||
|
||||
|
||||
.FUNCT BUTTON-F
|
||||
EQUAL? PRSA,V?LOOK-UNDER \?ELS5
|
||||
CALL PICK-ONE,YUKS
|
||||
PRINT STACK
|
||||
CRLF
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?PUSH \FALSE
|
||||
PRINTI "There is a click from the lid of the trunk"
|
||||
EQUAL? PRSO,BLACK-BUTTON \?ELS18
|
||||
EQUAL? NEXT-NUMBER,1 /?THN15
|
||||
?ELS18: EQUAL? PRSO,GRAY-BUTTON \?ELS20
|
||||
EQUAL? NEXT-NUMBER,2 /?THN15
|
||||
?ELS20: EQUAL? PRSO,RED-BUTTON \?ELS22
|
||||
EQUAL? NEXT-NUMBER,3 /?THN15
|
||||
?ELS22: EQUAL? PRSO,PURPLE-BUTTON \?ELS24
|
||||
EQUAL? NEXT-NUMBER,4 /?THN15
|
||||
?ELS24: EQUAL? PRSO,WHITE-BUTTON \?ELS14
|
||||
EQUAL? NEXT-NUMBER,5 \?ELS14
|
||||
?THN15: INC 'CURRENT-TLOC
|
||||
GET NEXT-CODE-TABLE,CURRENT-TLOC >NEXT-NUMBER
|
||||
ZERO? NEXT-NUMBER \?CND12
|
||||
ZERO? TRUNK-SCREWED \?CND12
|
||||
FSET TRUNK,OPENBIT
|
||||
ADD SCORE,25 >SCORE
|
||||
PRINTI ". A moment later, the lid of the trunk swings slowly open, revealing "
|
||||
CALL PRINT-CONTENTS,TRUNK
|
||||
JUMP ?CND12
|
||||
?ELS14: SET 'TRUNK-SCREWED,TRUE-VALUE
|
||||
?CND12: PRINTR "."
|
||||
|
||||
.ENDI
|
13
guild.zil
13
guild.zil
|
@ -334,12 +334,13 @@ which reads \"Current code: " <GET ,CODE-TABLE ,CODE-NUMBER> "\"." CR>)
|
|||
<TELL
|
||||
"The journal seems to bear a spell protecting it against
|
||||
the simple rezrov spell." CR>)
|
||||
(<NOT ,PRSI>
|
||||
<COND (<IN? ,KEY ,PROTAGONIST>
|
||||
<SETG PRSI ,KEY>
|
||||
<TELL "(with the key)" CR>)
|
||||
(T
|
||||
<SETG PRSI ,HANDS>)>
|
||||
(ELSE
|
||||
<COND (<NOT ,PRSI>
|
||||
<COND (<IN? ,KEY ,PROTAGONIST>
|
||||
<SETG PRSI ,KEY>
|
||||
<TELL "(with the key)" CR>)
|
||||
(T
|
||||
<SETG PRSI ,HANDS>)>)>
|
||||
<COND (<EQUAL? ,PRSI ,KEY>
|
||||
<FSET ,JOURNAL ,OPENBIT>
|
||||
<TELL "The journal springs open." CR>)
|
||||
|
|
26
magic.cmp
Normal file
26
magic.cmp
Normal file
|
@ -0,0 +1,26 @@
|
|||
|
||||
;COMPARISON OF SS:<Z6>MAGIC.ZIL.417 AND SS:<Z6>MAGIC.ZIL.418
|
||||
;OPTIONS ARE /3
|
||||
|
||||
**** FILE SS:<Z6>MAGIC.ZIL.417, 1-469 (12147)
|
||||
<ROUTINE FORGET-SPELL ("AUX" SPL F TBL (NUM 0) (SP <>))
|
||||
**** FILE SS:<Z6>MAGIC.ZIL.418, 1-469 (12147)
|
||||
<ROUTINE FORGET-SPELL ("AUX" F TBL (NUM 0) (SP <>))
|
||||
***************
|
||||
|
||||
**** FILE SS:<Z6>MAGIC.ZIL.417, 1-480 (12457)
|
||||
<COND (<ZERO? .NUM> <RTRUE>)
|
||||
(<EQUAL? .NUM 1>
|
||||
<PUTP .SP ,P?COUNT <- .NUM 1>>
|
||||
<RTRUE>)>
|
||||
<PUT ,FORGET-TBL 0 .NUM>
|
||||
<SET SPL <RANDOM-ELEMENT ,FORGET-TBL>>
|
||||
<PUTP .SPL ,P?COUNT <- <GETP .SPL ,P?COUNT> 1>>>
|
||||
**** FILE SS:<Z6>MAGIC.ZIL.418, 1-480 (12453)
|
||||
<COND (<ZERO? .NUM> <RTRUE>)>
|
||||
<COND (<G? .NUM 1>
|
||||
<PUT ,FORGET-TBL 0 .NUM>
|
||||
<SET SP <RANDOM-ELEMENT ,FORGET-TBL>>)>
|
||||
<PUTP .SP ,P?COUNT <- <GETP .SP ,P?COUNT> 1>>>
|
||||
***************
|
||||
|
50
magic.txt
Normal file
50
magic.txt
Normal file
|
@ -0,0 +1,50 @@
|
|||
Spell Name Effect
|
||||
---------- ------
|
||||
AIMFIZ transport caster to someone else's location
|
||||
BLORB safely protect a small object as though in a strong box
|
||||
BLORPLE explore an object's mystic connections
|
||||
CASKLY cause perfection
|
||||
CLEESH change a creature into a small amphibian
|
||||
ESPNIS sleep
|
||||
EXEX make things move with greater speed
|
||||
FILFRE create gratuitous fireworks
|
||||
FROTZ cause something to give off light
|
||||
FWEEP turn caster into a bat
|
||||
GASPAR provide for your own resurrection
|
||||
GIRGOL stop time
|
||||
GNUSTO write a magic spell into a spell book
|
||||
GOLMAC travel temporally
|
||||
GONDAR quench an open flame
|
||||
GUNCHO banish the victim to another plane of existence
|
||||
IZYUK fly like a bird
|
||||
JINDAK detect magic
|
||||
KREBF repair willful damage
|
||||
KULCAD dispel a magic spell
|
||||
LESOCH gust of wind
|
||||
LISKON shrink a living thing
|
||||
MALYON bring life to inanimate objects
|
||||
MEEF cause plants to wilt
|
||||
MELBOR protect magic users from harm by evil beings
|
||||
NITFOL converse with the beasts in their own tongue
|
||||
OZMOO survive unnatural death
|
||||
PULVER cause liquids to become dry
|
||||
REZROV open even locked or enchanted objects
|
||||
SNAVIG shape change
|
||||
SWANZO exorcise an inhabiting presence
|
||||
THROCK cause plants to grow
|
||||
TINSOT freeze
|
||||
VARDIK shield a mind from an evil spirit
|
||||
VAXUM make a hostile creature your friend
|
||||
VEZZA view the future
|
||||
YOMIN mind probe
|
||||
YONK augment the power of certain spells
|
||||
ZIFMIA magically summon a being
|
||||
|
||||
|
||||
Potion Name Effect
|
||||
----------- ------
|
||||
BERZIO obviate need for food or drink
|
||||
BLORT ability to see in dark places
|
||||
FLAXO exquisite torture
|
||||
FOOBLE increase muscular coordination
|
||||
VILSTU obviate need for breathing
|
624
maze.zap
Normal file
624
maze.zap
Normal file
|
@ -0,0 +1,624 @@
|
|||
|
||||
|
||||
.FUNCT MAZE-F
|
||||
EQUAL? PRSA,V?THROUGH \?ELS5
|
||||
EQUAL? HERE,OUTSIDE-GLASS-DOOR \?ELS10
|
||||
CALL DO-WALK,P?EAST
|
||||
RSTACK
|
||||
?ELS10: EQUAL? HERE,HOLLOW \?ELS12
|
||||
CALL DO-WALK,P?WEST
|
||||
RSTACK
|
||||
?ELS12: CALL LOOK-AROUND-YOU
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?EXIT,V?DROP \?ELS16
|
||||
EQUAL? HERE,GLASS-MAZE \?ELS21
|
||||
CALL DO-WALK,P?OUT
|
||||
RSTACK
|
||||
?ELS21: CALL LOOK-AROUND-YOU
|
||||
RSTACK
|
||||
?ELS16: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?ELS25
|
||||
PRINTR "You see nothing but reflected light in all directions."
|
||||
?ELS25: EQUAL? PRSA,V?RESEARCH \FALSE
|
||||
PRINTR "According to the article, Duncanthrax built the Glass Maze on a whim, to amuse his friends and torture his enemies. A labyrinth of 27 cubicles, it was full of devilish pitfalls and was located near his castle, Egreth."
|
||||
|
||||
|
||||
.FUNCT HOVEL-F
|
||||
EQUAL? PRSA,V?THROUGH \?ELS5
|
||||
EQUAL? HERE,END-OF-HIGHWAY \?ELS10
|
||||
CALL DO-WALK,P?EAST
|
||||
RSTACK
|
||||
?ELS10: CALL LOOK-AROUND-YOU
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?EXIT,V?DROP \?ELS14
|
||||
EQUAL? HERE,STONE-HUT \?ELS19
|
||||
CALL DO-WALK,P?WEST
|
||||
RSTACK
|
||||
?ELS19: CALL LOOK-AROUND-YOU
|
||||
RSTACK
|
||||
?ELS14: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
|
||||
EQUAL? HERE,STONE-HUT \?ELS28
|
||||
CALL LOOK-AROUND-YOU
|
||||
RSTACK
|
||||
?ELS28: CALL MAKE-OUT
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT CHIMNEY-EXIT-F
|
||||
ZERO? FWEEPED /?ELS5
|
||||
PRINTI "Too narrow even for bats."
|
||||
CRLF
|
||||
RFALSE
|
||||
?ELS5: PRINTI "Where did you get the bizarre notion that you might fit up a chimney?"
|
||||
CRLF
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT FIREPLACE-F
|
||||
EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE
|
||||
CALL V-DEFLATE
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT STATUE-F
|
||||
EQUAL? PRSA,V?MALYON \?ELS5
|
||||
PRINTI "The statue transforms into a living figure, probably a King if the royal attire is any clue. The King seems angry, and quickly settles his wrathful gaze on you. He bellows ""Guards! Throw this trespasser into the glass maze! Guards! ... GUARDS!!!"" When the guards fail to respond, the King becomes livid, his voice rises to an incoherent squeak, and flecks of foam spit from the corners of his mouth. Finally, eyes bulging with rage, he storms out of the room."
|
||||
CRLF
|
||||
FSET STATUE,TOUCHBIT
|
||||
SET 'STATUE-FOLLOW,TRUE-VALUE
|
||||
CALL QUEUE,I-STATUE-UNFOLLOW,1
|
||||
PUT STACK,0,1
|
||||
EQUAL? HERE,ENTRANCE-HALL,OUTSIDE-STORE \?ELS12
|
||||
RANDOM 100
|
||||
LESS? 50,STACK /?ELS17
|
||||
MOVE STATUE,HIGHWAY
|
||||
RTRUE
|
||||
?ELS17: MOVE STATUE,BEND
|
||||
RTRUE
|
||||
?ELS12: RANDOM 100
|
||||
LESS? 50,STACK /?ELS26
|
||||
MOVE STATUE,ENTRANCE-HALL
|
||||
RTRUE
|
||||
?ELS26: MOVE STATUE,OUTSIDE-STORE
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?FOLLOW \FALSE
|
||||
ZERO? STATUE-FOLLOW /FALSE
|
||||
PRINTR "The King moved too quickly to follow."
|
||||
|
||||
|
||||
.FUNCT I-STATUE-UNFOLLOW
|
||||
SET 'STATUE-FOLLOW,FALSE-VALUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT NO-FLOOR?
|
||||
ZERO? MAZE-CROSSED /?ELS5
|
||||
GET POST-DOWN-EXITS,ROOM-NUMBER
|
||||
ZERO? STACK /FALSE
|
||||
?ELS5: ZERO? MAZE-CROSSED \TRUE
|
||||
GET PRE-DOWN-EXITS,ROOM-NUMBER
|
||||
ZERO? STACK \TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT GLASS-MAZE-F,RARG
|
||||
EQUAL? RARG,M-ENTER \?ELS5
|
||||
CALL TABLE-TO-MAZE,ROOM-NUMBER
|
||||
FCLEAR GLASS-MAZE,TOUCHBIT
|
||||
PUT VEZZAS,5,0
|
||||
RTRUE
|
||||
?ELS5: EQUAL? RARG,M-LOOK \FALSE
|
||||
PRINTI "You are inside a huge cubical maze, shimmering with light from an unseen source above."
|
||||
ZERO? FWEEPED \?CND10
|
||||
PRINTI " It is impossible to tell if the walls and ceilings around you are glass surfaces or openings."
|
||||
?CND10: ZERO? FLYING \?CND15
|
||||
CALL NO-FLOOR?
|
||||
ZERO? STACK /?CND15
|
||||
EQUAL? ROOM-NUMBER,13 \?CND15
|
||||
PRINTI " "
|
||||
CALL PLUMMET
|
||||
RTRUE
|
||||
?CND15: ZERO? FLYING \?CND22
|
||||
CALL NO-FLOOR?
|
||||
ZERO? STACK \?CND22
|
||||
PRINTI " Since you are standing on something, the floor must be solid, but it is virtually invisible and you feel as though you were walking on air."
|
||||
?CND22: ZERO? FWEEPED /?CND29
|
||||
CALL RADAR-VIEW
|
||||
?CND29: CRLF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT RADAR-VIEW,X,COUNT,LUP,LDOWN,NORTH,SOUTH,EAST,WEST
|
||||
SET 'X,FALSE-VALUE
|
||||
SET 'LUP,FALSE-VALUE
|
||||
SET 'LDOWN,FALSE-VALUE
|
||||
SET 'NORTH,FALSE-VALUE
|
||||
SET 'SOUTH,FALSE-VALUE
|
||||
SET 'EAST,FALSE-VALUE
|
||||
SET 'WEST,FALSE-VALUE
|
||||
SET 'COUNT,0
|
||||
PRINTI " Thanks to your sonar-like bat senses, you can tell that there are surfaces "
|
||||
ZERO? MAZE-CROSSED /?ELS9
|
||||
GET POST-UP-EXITS,ROOM-NUMBER
|
||||
ZERO? STACK /?THN6
|
||||
?ELS9: ZERO? MAZE-CROSSED \?CND3
|
||||
GET PRE-UP-EXITS,ROOM-NUMBER
|
||||
ZERO? STACK \?CND3
|
||||
?THN6: SET 'LUP,TRUE-VALUE
|
||||
INC 'COUNT
|
||||
?CND3: ZERO? MAZE-CROSSED /?ELS18
|
||||
GET POST-DOWN-EXITS,ROOM-NUMBER
|
||||
ZERO? STACK /?THN15
|
||||
?ELS18: ZERO? MAZE-CROSSED \?CND12
|
||||
GET PRE-DOWN-EXITS,ROOM-NUMBER
|
||||
ZERO? STACK \?CND12
|
||||
?THN15: SET 'LDOWN,TRUE-VALUE
|
||||
INC 'COUNT
|
||||
?CND12: ZERO? MAZE-CROSSED /?ELS27
|
||||
GET POST-NORTH-EXITS,ROOM-NUMBER
|
||||
ZERO? STACK /?THN24
|
||||
?ELS27: ZERO? MAZE-CROSSED \?CND21
|
||||
GET PRE-NORTH-EXITS,ROOM-NUMBER
|
||||
ZERO? STACK \?CND21
|
||||
?THN24: SET 'NORTH,TRUE-VALUE
|
||||
INC 'COUNT
|
||||
?CND21: ZERO? MAZE-CROSSED /?ELS36
|
||||
GET POST-SOUTH-EXITS,ROOM-NUMBER
|
||||
ZERO? STACK /?THN33
|
||||
?ELS36: ZERO? MAZE-CROSSED \?CND30
|
||||
GET PRE-SOUTH-EXITS,ROOM-NUMBER
|
||||
ZERO? STACK \?CND30
|
||||
?THN33: SET 'SOUTH,TRUE-VALUE
|
||||
INC 'COUNT
|
||||
?CND30: ZERO? MAZE-CROSSED /?ELS45
|
||||
GET POST-EAST-EXITS,ROOM-NUMBER
|
||||
ZERO? STACK /?THN42
|
||||
?ELS45: ZERO? MAZE-CROSSED \?CND39
|
||||
GET PRE-EAST-EXITS,ROOM-NUMBER
|
||||
ZERO? STACK \?CND39
|
||||
?THN42: SET 'EAST,TRUE-VALUE
|
||||
INC 'COUNT
|
||||
?CND39: ZERO? MAZE-CROSSED /?ELS54
|
||||
GET POST-WEST-EXITS,ROOM-NUMBER
|
||||
ZERO? STACK /?THN51
|
||||
?ELS54: ZERO? MAZE-CROSSED \?CND48
|
||||
GET PRE-WEST-EXITS,ROOM-NUMBER
|
||||
ZERO? STACK \?CND48
|
||||
?THN51: SET 'WEST,TRUE-VALUE
|
||||
INC 'COUNT
|
||||
?CND48: ZERO? LUP /?CND57
|
||||
EQUAL? COUNT,1 \?ELS63
|
||||
PRINTI " and "
|
||||
JUMP ?CND61
|
||||
?ELS63: ZERO? X /?CND61
|
||||
PRINTI ", "
|
||||
?CND61: SET 'X,TRUE-VALUE
|
||||
DEC 'COUNT
|
||||
PRINTI "above you"
|
||||
?CND57: ZERO? LDOWN /?CND73
|
||||
EQUAL? COUNT,1 \?ELS79
|
||||
PRINTI " and "
|
||||
JUMP ?CND77
|
||||
?ELS79: ZERO? X /?CND77
|
||||
PRINTI ", "
|
||||
?CND77: SET 'X,TRUE-VALUE
|
||||
DEC 'COUNT
|
||||
PRINTI "below you"
|
||||
?CND73: ZERO? NORTH /?CND89
|
||||
EQUAL? COUNT,1 \?ELS95
|
||||
PRINTI " and "
|
||||
JUMP ?CND93
|
||||
?ELS95: ZERO? X /?CND93
|
||||
PRINTI ", "
|
||||
?CND93: SET 'X,TRUE-VALUE
|
||||
DEC 'COUNT
|
||||
PRINTI "to the north"
|
||||
?CND89: ZERO? SOUTH /?CND105
|
||||
EQUAL? COUNT,1 \?ELS111
|
||||
PRINTI " and "
|
||||
JUMP ?CND109
|
||||
?ELS111: ZERO? X /?CND109
|
||||
PRINTI ", "
|
||||
?CND109: SET 'X,TRUE-VALUE
|
||||
DEC 'COUNT
|
||||
PRINTI "to the south"
|
||||
?CND105: ZERO? EAST /?CND121
|
||||
EQUAL? COUNT,1 \?ELS127
|
||||
PRINTI " and "
|
||||
JUMP ?CND125
|
||||
?ELS127: ZERO? X /?CND125
|
||||
PRINTI ", "
|
||||
?CND125: SET 'X,TRUE-VALUE
|
||||
DEC 'COUNT
|
||||
PRINTI "to the east"
|
||||
?CND121: ZERO? WEST /?CND137
|
||||
EQUAL? COUNT,1 \?ELS143
|
||||
PRINTI " and "
|
||||
JUMP ?CND141
|
||||
?ELS143: ZERO? X /?CND141
|
||||
PRINTI ", "
|
||||
?CND141: SET 'X,TRUE-VALUE
|
||||
DEC 'COUNT
|
||||
PRINTI "to the west"
|
||||
?CND137: PRINTI "."
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT MAZE-EXIT-F
|
||||
ZERO? MAZE-CROSSED /?ELS5
|
||||
CALL MAZE-TO-TABLE,ROOM-NUMBER
|
||||
EQUAL? PRSO,P?UP \?ELS9
|
||||
ZERO? FLYING \?ELS12
|
||||
CALL CANT-JUMP
|
||||
CALL TABLE-TO-MAZE,ROOM-NUMBER
|
||||
RFALSE
|
||||
?ELS12: GET POST-UP-EXITS,ROOM-NUMBER
|
||||
ZERO? STACK \?ELS17
|
||||
CALL HIT-WALL
|
||||
RFALSE
|
||||
?ELS17: GET POST-UP-EXITS,ROOM-NUMBER >ROOM-NUMBER
|
||||
JUMP ?CND7
|
||||
?ELS9: EQUAL? PRSO,P?DOWN \?ELS21
|
||||
ZERO? FLYING \?ELS24
|
||||
CALL SOLID-FLOOR
|
||||
CALL TABLE-TO-MAZE,ROOM-NUMBER
|
||||
RFALSE
|
||||
?ELS24: GET POST-DOWN-EXITS,ROOM-NUMBER
|
||||
ZERO? STACK \?ELS29
|
||||
CALL HIT-WALL
|
||||
RFALSE
|
||||
?ELS29: GET POST-DOWN-EXITS,ROOM-NUMBER >ROOM-NUMBER
|
||||
JUMP ?CND7
|
||||
?ELS21: EQUAL? PRSO,P?NORTH \?ELS33
|
||||
GET POST-NORTH-EXITS,ROOM-NUMBER
|
||||
ZERO? STACK \?ELS36
|
||||
CALL HIT-WALL
|
||||
RFALSE
|
||||
?ELS36: GET POST-NORTH-EXITS,ROOM-NUMBER >ROOM-NUMBER
|
||||
JUMP ?CND7
|
||||
?ELS33: EQUAL? PRSO,P?SOUTH \?ELS40
|
||||
GET POST-SOUTH-EXITS,ROOM-NUMBER
|
||||
ZERO? STACK \?ELS43
|
||||
CALL HIT-WALL
|
||||
RFALSE
|
||||
?ELS43: GET POST-SOUTH-EXITS,ROOM-NUMBER >ROOM-NUMBER
|
||||
JUMP ?CND7
|
||||
?ELS40: EQUAL? PRSO,P?EAST \?ELS47
|
||||
GET POST-EAST-EXITS,ROOM-NUMBER
|
||||
ZERO? STACK \?ELS50
|
||||
CALL HIT-WALL
|
||||
RFALSE
|
||||
?ELS50: GET POST-EAST-EXITS,ROOM-NUMBER >ROOM-NUMBER
|
||||
EQUAL? ROOM-NUMBER,30 \?CND7
|
||||
SET 'ROOM-NUMBER,24
|
||||
RETURN HOLLOW
|
||||
?ELS47: EQUAL? PRSO,P?WEST \?CND7
|
||||
GET POST-WEST-EXITS,ROOM-NUMBER
|
||||
ZERO? STACK \?ELS60
|
||||
CALL HIT-WALL
|
||||
RFALSE
|
||||
?ELS60: GET POST-WEST-EXITS,ROOM-NUMBER >ROOM-NUMBER
|
||||
EQUAL? ROOM-NUMBER,40 \?CND58
|
||||
SET 'ROOM-NUMBER,13
|
||||
RETURN OUTSIDE-GLASS-DOOR
|
||||
?CND58:
|
||||
?CND7: CALL TABLE-TO-MAZE,ROOM-NUMBER
|
||||
CALL V-LOOK
|
||||
CALL PLUMMET
|
||||
RFALSE
|
||||
?ELS5: CALL MAZE-TO-TABLE,ROOM-NUMBER
|
||||
EQUAL? PRSO,P?UP \?ELS70
|
||||
ZERO? FLYING \?ELS73
|
||||
CALL CANT-JUMP
|
||||
CALL TABLE-TO-MAZE,ROOM-NUMBER
|
||||
RFALSE
|
||||
?ELS73: GET PRE-UP-EXITS,ROOM-NUMBER
|
||||
ZERO? STACK \?ELS78
|
||||
CALL HIT-WALL
|
||||
RFALSE
|
||||
?ELS78: GET PRE-UP-EXITS,ROOM-NUMBER >ROOM-NUMBER
|
||||
JUMP ?CND68
|
||||
?ELS70: EQUAL? PRSO,P?DOWN \?ELS82
|
||||
ZERO? FLYING \?ELS85
|
||||
CALL SOLID-FLOOR
|
||||
CALL TABLE-TO-MAZE,ROOM-NUMBER
|
||||
RFALSE
|
||||
?ELS85: GET PRE-DOWN-EXITS,ROOM-NUMBER
|
||||
ZERO? STACK \?ELS90
|
||||
CALL HIT-WALL
|
||||
RFALSE
|
||||
?ELS90: GET PRE-DOWN-EXITS,ROOM-NUMBER >ROOM-NUMBER
|
||||
JUMP ?CND68
|
||||
?ELS82: EQUAL? PRSO,P?NORTH \?ELS94
|
||||
GET PRE-NORTH-EXITS,ROOM-NUMBER
|
||||
ZERO? STACK \?ELS97
|
||||
CALL HIT-WALL
|
||||
RFALSE
|
||||
?ELS97: GET PRE-NORTH-EXITS,ROOM-NUMBER >ROOM-NUMBER
|
||||
JUMP ?CND68
|
||||
?ELS94: EQUAL? PRSO,P?SOUTH \?ELS101
|
||||
GET PRE-SOUTH-EXITS,ROOM-NUMBER
|
||||
ZERO? STACK \?ELS104
|
||||
CALL HIT-WALL
|
||||
RFALSE
|
||||
?ELS104: GET PRE-SOUTH-EXITS,ROOM-NUMBER >ROOM-NUMBER
|
||||
JUMP ?CND68
|
||||
?ELS101: EQUAL? PRSO,P?EAST \?ELS108
|
||||
GET PRE-EAST-EXITS,ROOM-NUMBER
|
||||
ZERO? STACK \?ELS111
|
||||
CALL HIT-WALL
|
||||
RFALSE
|
||||
?ELS111: GET PRE-EAST-EXITS,ROOM-NUMBER >ROOM-NUMBER
|
||||
EQUAL? ROOM-NUMBER,30 \?CND68
|
||||
ADD SCORE,HOLLOW-POINT >SCORE
|
||||
SET 'HOLLOW-POINT,0
|
||||
SET 'ROOM-NUMBER,24
|
||||
RETURN HOLLOW
|
||||
?ELS108: EQUAL? PRSO,P?WEST \?CND68
|
||||
GET PRE-WEST-EXITS,ROOM-NUMBER
|
||||
ZERO? STACK \?ELS121
|
||||
CALL HIT-WALL
|
||||
RFALSE
|
||||
?ELS121: GET PRE-WEST-EXITS,ROOM-NUMBER >ROOM-NUMBER
|
||||
EQUAL? ROOM-NUMBER,40 \?CND119
|
||||
SET 'ROOM-NUMBER,13
|
||||
RETURN OUTSIDE-GLASS-DOOR
|
||||
?CND119:
|
||||
?CND68: CALL TABLE-TO-MAZE,ROOM-NUMBER
|
||||
CALL V-LOOK
|
||||
CALL PLUMMET
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT HIT-WALL
|
||||
PRINTI "BONK! You "
|
||||
ZERO? FLYING /?ELS5
|
||||
PRINTI "fly"
|
||||
JUMP ?CND3
|
||||
?ELS5: PRINTI "walk"
|
||||
?CND3: PRINTR " right into an almost invisible wall of glass -- a stunning blow!"
|
||||
|
||||
|
||||
.FUNCT CANT-JUMP
|
||||
PRINTR "You can't possibly jump that high."
|
||||
|
||||
|
||||
.FUNCT SOLID-FLOOR
|
||||
PRINTR "Fortunately, the floor is solid."
|
||||
|
||||
|
||||
.FUNCT PLUMMET
|
||||
ZERO? FLYING \FALSE
|
||||
CALL NO-FLOOR?
|
||||
ZERO? STACK /FALSE
|
||||
CALL JIGS-UP,STR?290
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT MAZE-TO-TABLE,LOC,CNT=0,F,N
|
||||
FIRST? GLASS-MAZE >F /?KLU23
|
||||
?KLU23:
|
||||
?PRG1: ZERO? F /TRUE
|
||||
NEXT? F >N /?KLU24
|
||||
?KLU24: EQUAL? F,WINNER \?ELS11
|
||||
JUMP ?CND9
|
||||
?ELS11: FSET? F,TAKEBIT /?THN14
|
||||
EQUAL? F,DORN-BEAST-CORPSE \?CND9
|
||||
?THN14:
|
||||
?PRG16: GET MAZE-TABLE,CNT
|
||||
ZERO? STACK \?ELS20
|
||||
PUT MAZE-TABLE,CNT,LOC
|
||||
ADD CNT,1
|
||||
PUT MAZE-TABLE,STACK,F
|
||||
ADD CNT,2 >CNT
|
||||
MOVE F,DIAL
|
||||
JUMP ?CND9
|
||||
?ELS20: ADD CNT,2 >CNT
|
||||
JUMP ?PRG16
|
||||
?CND9: SET 'F,N
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT TABLE-TO-MAZE,LOC,TABLE=MAZE-TABLE,CNT=0
|
||||
?PRG1: LESS? CNT,MAZE-TABLE-LENGTH \TRUE
|
||||
GET MAZE-TABLE,CNT
|
||||
EQUAL? STACK,LOC \?CND3
|
||||
PUT MAZE-TABLE,CNT,0
|
||||
ADD CNT,1
|
||||
GET MAZE-TABLE,STACK
|
||||
MOVE STACK,GLASS-MAZE
|
||||
?CND3: ADD CNT,2 >CNT
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT DROP-IN-MAZE,CNT=0,NEW-ROOM=0
|
||||
ZERO? MAZE-CROSSED /?ELS3
|
||||
EQUAL? ROOM-NUMBER,12 \?ELS7
|
||||
SET 'NEW-ROOM,3
|
||||
JUMP ?CND1
|
||||
?ELS7: EQUAL? ROOM-NUMBER,13 \?ELS9
|
||||
SET 'NEW-ROOM,4
|
||||
JUMP ?CND1
|
||||
?ELS9: EQUAL? ROOM-NUMBER,16 \?ELS11
|
||||
SET 'NEW-ROOM,7
|
||||
JUMP ?CND1
|
||||
?ELS11: EQUAL? ROOM-NUMBER,18 \?ELS13
|
||||
SET 'NEW-ROOM,9
|
||||
JUMP ?CND1
|
||||
?ELS13: EQUAL? ROOM-NUMBER,19 \?ELS15
|
||||
SET 'NEW-ROOM,10
|
||||
JUMP ?CND1
|
||||
?ELS15: EQUAL? ROOM-NUMBER,20 \?ELS17
|
||||
SET 'NEW-ROOM,11
|
||||
JUMP ?CND1
|
||||
?ELS17: EQUAL? ROOM-NUMBER,25 \?ELS19
|
||||
SET 'NEW-ROOM,7
|
||||
JUMP ?CND1
|
||||
?ELS19: EQUAL? ROOM-NUMBER,27 \?CND1
|
||||
SET 'NEW-ROOM,9
|
||||
JUMP ?CND1
|
||||
?ELS3: EQUAL? ROOM-NUMBER,10 \?ELS26
|
||||
SET 'NEW-ROOM,1
|
||||
JUMP ?CND1
|
||||
?ELS26: EQUAL? ROOM-NUMBER,12 \?ELS28
|
||||
SET 'NEW-ROOM,3
|
||||
JUMP ?CND1
|
||||
?ELS28: EQUAL? ROOM-NUMBER,16 \?ELS30
|
||||
SET 'NEW-ROOM,7
|
||||
JUMP ?CND1
|
||||
?ELS30: EQUAL? ROOM-NUMBER,20 \?ELS32
|
||||
SET 'NEW-ROOM,11
|
||||
JUMP ?CND1
|
||||
?ELS32: EQUAL? ROOM-NUMBER,21 \?ELS34
|
||||
SET 'NEW-ROOM,3
|
||||
JUMP ?CND1
|
||||
?ELS34: EQUAL? ROOM-NUMBER,26 \?CND1
|
||||
SET 'NEW-ROOM,17
|
||||
?CND1: ZERO? NEW-ROOM \?CND37
|
||||
PRINTR "Bug #14"
|
||||
?CND37:
|
||||
?PRG42: GET MAZE-TABLE,CNT
|
||||
ZERO? STACK \?ELS46
|
||||
PUT MAZE-TABLE,CNT,NEW-ROOM
|
||||
ADD CNT,1
|
||||
PUT MAZE-TABLE,STACK,PRSO
|
||||
ADD CNT,2 >CNT
|
||||
RTRUE
|
||||
?ELS46: ADD CNT,2 >CNT
|
||||
JUMP ?PRG42
|
||||
|
||||
|
||||
.FUNCT REARRANGE-MAZE-TABLE,CNT=0
|
||||
?PRG1: LESS? CNT,MAZE-TABLE-LENGTH \TRUE
|
||||
GET MAZE-TABLE,CNT
|
||||
EQUAL? STACK,12 \?ELS7
|
||||
PUT MAZE-TABLE,CNT,3
|
||||
JUMP ?CND3
|
||||
?ELS7: GET MAZE-TABLE,CNT
|
||||
EQUAL? STACK,13 \?ELS9
|
||||
PUT MAZE-TABLE,CNT,4
|
||||
JUMP ?CND3
|
||||
?ELS9: GET MAZE-TABLE,CNT
|
||||
EQUAL? STACK,16 \?ELS11
|
||||
PUT MAZE-TABLE,CNT,7
|
||||
JUMP ?CND3
|
||||
?ELS11: GET MAZE-TABLE,CNT
|
||||
EQUAL? STACK,18 \?ELS13
|
||||
PUT MAZE-TABLE,CNT,9
|
||||
JUMP ?CND3
|
||||
?ELS13: GET MAZE-TABLE,CNT
|
||||
EQUAL? STACK,19 \?ELS15
|
||||
PUT MAZE-TABLE,CNT,10
|
||||
JUMP ?CND3
|
||||
?ELS15: GET MAZE-TABLE,CNT
|
||||
EQUAL? STACK,20 \?ELS17
|
||||
PUT MAZE-TABLE,CNT,11
|
||||
JUMP ?CND3
|
||||
?ELS17: GET MAZE-TABLE,CNT
|
||||
EQUAL? STACK,25 \?ELS19
|
||||
PUT MAZE-TABLE,CNT,7
|
||||
JUMP ?CND3
|
||||
?ELS19: GET MAZE-TABLE,CNT
|
||||
EQUAL? STACK,27 \?CND3
|
||||
PUT MAZE-TABLE,CNT,9
|
||||
?CND3: ADD CNT,2 >CNT
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT HOLLOW-F,RARG
|
||||
EQUAL? RARG,M-END \FALSE
|
||||
CALL HELD?,SPELL-BOOK
|
||||
ZERO? STACK /FALSE
|
||||
MOVE SPELL-BOOK,DIAL
|
||||
PRINTR """Caw! Caw!"" A giant bird of prey with a fondness for gnusto-receptive paper swoops down and flies off with your spell book."
|
||||
|
||||
|
||||
.FUNCT CHIMNEY-F
|
||||
EQUAL? HERE,HOLLOW \FALSE
|
||||
EQUAL? PRSO,CHIMNEY \?ELS10
|
||||
SET 'PERFORMING-SPELL,TRUE-VALUE
|
||||
CALL PERFORM,PRSA,BRICK-STRUCTURE,PRSI
|
||||
RTRUE
|
||||
?ELS10: SET 'PERFORMING-SPELL,TRUE-VALUE
|
||||
CALL PERFORM,PRSA,PRSO,BRICK-STRUCTURE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT BRICK-STRUCTURE-F
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
PRINTR "The structure is about two feet on each side, and extends up from the ground about three feet. Except for a large quantity of soot around the opening, it looks a lot like a small, rectangular well."
|
||||
?ELS5: EQUAL? PRSA,V?LOOK-INSIDE \?ELS9
|
||||
PRINTR "The opening is dark and you can only see a few feet into it."
|
||||
?ELS9: EQUAL? PRSA,V?CLIMB-DOWN,V?ENTER \?ELS13
|
||||
CALL DO-WALK,P?DOWN
|
||||
RSTACK
|
||||
?ELS13: EQUAL? PRSA,V?PUT \?ELS15
|
||||
EQUAL? PRSI,BRICK-STRUCTURE \?ELS15
|
||||
MOVE PRSO,FIREPLACE
|
||||
EQUAL? PRSO,SWANZO-SCROLL \?CND18
|
||||
CALL QUEUE,I-DORN-BEAST,2
|
||||
PUT STACK,0,1
|
||||
?CND18: PRINTI "The "
|
||||
PRINTD PRSO
|
||||
PRINTR " disappears into the shaft."
|
||||
?ELS15: EQUAL? PRSA,V?REACH-IN \?ELS24
|
||||
PRINTR "The shaft extends beyond your reach."
|
||||
?ELS24: EQUAL? PRSA,V?THROUGH \FALSE
|
||||
CALL DO-WALK,P?DOWN
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT DORN-BEAST-F
|
||||
EQUAL? PRSA,V?RESEARCH \FALSE
|
||||
CALL PERFORM,V?RESEARCH,LOBBY
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT CORPSE-F
|
||||
EQUAL? PRSA,V?MALYON \FALSE
|
||||
CALL JIGS-UP,STR?296
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT I-DORN-BEAST
|
||||
CALL QUEUE,I-DORN-BEAST,-1
|
||||
PUT STACK,0,1
|
||||
EQUAL? HERE,HOLLOW \?ELS5
|
||||
ZERO? DORN-BEAST-WARNING /?ELS10
|
||||
CALL DORN-DEATH
|
||||
RSTACK
|
||||
?ELS10: MOVE DORN-BEAST,HERE
|
||||
SET 'DORN-BEAST-WARNING,TRUE-VALUE
|
||||
CRLF
|
||||
PRINTR "With a loud roar, a dreadfully huge dorn beast emerges from the shadows at the base of the cliff and gallops toward you."
|
||||
?ELS5: FSET DORN-BEAST,NDESCBIT
|
||||
ZERO? DORN-BEAST-WARNING \?ELS22
|
||||
SET 'DORN-BEAST-WARNING,TRUE-VALUE
|
||||
CRLF
|
||||
PRINTR "From outside the maze, you hear the bellowing of a ferocious dorn beast!"
|
||||
?ELS22: EQUAL? ROOM-NUMBER,DORN-BEAST-ROOM,LAST-DORN-ROOM \?ELS26
|
||||
CRLF
|
||||
CALL DORN-DEATH
|
||||
RSTACK
|
||||
?ELS26: CRLF
|
||||
PRINTI "The dorn beast rushes after you. Its ear-splitting bellowing resounds throughout the glass maze."
|
||||
EQUAL? ROOM-NUMBER,27 \?ELS33
|
||||
SET 'SPLATTERED,TRUE-VALUE
|
||||
CALL INT,I-DORN-BEAST
|
||||
PUT STACK,0,0
|
||||
MOVE DORN-BEAST,DIAL
|
||||
PUT MAZE-TABLE,38,9
|
||||
PUT MAZE-TABLE,39,DORN-BEAST-CORPSE
|
||||
PRINTI " Suddenly, the dorn-beast realizes that it is galloping through midair, and gives a surprisingly high-pitched squeal. It claws frantically at thin air, trying desperately to invent dorn beast flight. You happily notice that dorn beasts do not so much fly as plummet."
|
||||
JUMP ?CND31
|
||||
?ELS33: SET 'LAST-DORN-ROOM,DORN-BEAST-ROOM
|
||||
SET 'DORN-BEAST-ROOM,ROOM-NUMBER
|
||||
MOVE DORN-BEAST,HERE
|
||||
?CND31: CRLF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT DORN-DEATH
|
||||
CALL JIGS-UP,STR?297
|
||||
RSTACK
|
||||
|
||||
.ENDI
|
412
misc.zap
Normal file
412
misc.zap
Normal file
|
@ -0,0 +1,412 @@
|
|||
|
||||
|
||||
.FUNCT PICK-ONE,FROB
|
||||
GET FROB,0
|
||||
RANDOM STACK
|
||||
GET FROB,STACK
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT FIXED-FONT-ON
|
||||
GET 0,8
|
||||
BOR STACK,2
|
||||
PUT 0,8,STACK
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT FIXED-FONT-OFF
|
||||
GET 0,8
|
||||
BAND STACK,-3
|
||||
PUT 0,8,STACK
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT GO
|
||||
START::
|
||||
|
||||
?FCN: PUTB P-LEXV,0,59
|
||||
CALL QUEUE,I-WAKE-UP,7
|
||||
PUT STACK,0,1
|
||||
CALL QUEUE,I-HELLHOUND,-1
|
||||
PUT STACK,0,1
|
||||
SET 'LIT,TRUE-VALUE
|
||||
SET 'WINNER,PROTAGONIST
|
||||
SET 'PLAYER,WINNER
|
||||
SET 'HERE,TWISTED-FOREST
|
||||
MOVE WINNER,HERE
|
||||
CALL THIS-IS-IT,HELLHOUND
|
||||
PUTB P-INBUF,0,60
|
||||
PRINTI "You are in a strange location, but you cannot remember how you got here. Everything is hazy, as though viewed through a gauze..."
|
||||
CRLF
|
||||
CRLF
|
||||
CALL V-LOOK
|
||||
CALL I-HELLHOUND
|
||||
CALL MAIN-LOOP
|
||||
JUMP ?FCN
|
||||
|
||||
|
||||
.FUNCT MAIN-LOOP,TRASH
|
||||
?PRG1: CALL MAIN-LOOP-1 >TRASH
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT MAIN-LOOP-1,ICNT,OCNT,NUM,CNT,OBJ,TBL,V,PTBL,OBJ1,TMP,?TMP1
|
||||
SET 'LAST-USED-PRSO,FALSE-VALUE
|
||||
SET 'CNT,0
|
||||
SET 'OBJ,FALSE-VALUE
|
||||
SET 'PTBL,TRUE-VALUE
|
||||
CALL PARSER >P-WON
|
||||
ZERO? P-WON /?ELS3
|
||||
GET P-PRSI,P-MATCHLEN >ICNT
|
||||
GET P-PRSO,P-MATCHLEN >OCNT
|
||||
ZERO? P-IT-OBJECT /?CND4
|
||||
CALL ACCESSIBLE?,P-IT-OBJECT
|
||||
ZERO? STACK /?CND4
|
||||
SET 'TMP,FALSE-VALUE
|
||||
?PRG9: IGRTR? 'CNT,ICNT \?ELS13
|
||||
JUMP ?REP10
|
||||
?ELS13: GET P-PRSI,CNT
|
||||
EQUAL? STACK,IT \?PRG9
|
||||
PUT P-PRSI,CNT,P-IT-OBJECT
|
||||
SET 'TMP,TRUE-VALUE
|
||||
?REP10: ZERO? TMP \?CND19
|
||||
SET 'CNT,0
|
||||
?PRG22: IGRTR? 'CNT,OCNT \?ELS26
|
||||
JUMP ?CND19
|
||||
?ELS26: GET P-PRSO,CNT
|
||||
EQUAL? STACK,IT \?PRG22
|
||||
PUT P-PRSO,CNT,P-IT-OBJECT
|
||||
?CND19: SET 'CNT,0
|
||||
?CND4: ZERO? OCNT \?ELS36
|
||||
PUSH OCNT
|
||||
JUMP ?CND32
|
||||
?ELS36: GRTR? OCNT,1 \?ELS38
|
||||
SET 'TBL,P-PRSO
|
||||
ZERO? ICNT \?ELS41
|
||||
SET 'OBJ,FALSE-VALUE
|
||||
JUMP ?CND39
|
||||
?ELS41: GET P-PRSI,1 >OBJ
|
||||
?CND39: PUSH OCNT
|
||||
JUMP ?CND32
|
||||
?ELS38: GRTR? ICNT,1 \?ELS45
|
||||
SET 'PTBL,FALSE-VALUE
|
||||
SET 'TBL,P-PRSI
|
||||
GET P-PRSO,1 >OBJ
|
||||
PUSH ICNT
|
||||
JUMP ?CND32
|
||||
?ELS45: PUSH 1
|
||||
?CND32: SET 'NUM,STACK
|
||||
ZERO? OBJ \?CND48
|
||||
EQUAL? ICNT,1 \?CND48
|
||||
GET P-PRSI,1 >OBJ
|
||||
?CND48: EQUAL? PRSA,V?WALK \?ELS55
|
||||
CALL PERFORM,PRSA,PRSO >V
|
||||
JUMP ?CND53
|
||||
?ELS55: ZERO? NUM \?ELS57
|
||||
GETB P-SYNTAX,P-SBITS
|
||||
BAND STACK,P-SONUMS
|
||||
ZERO? STACK \?ELS60
|
||||
CALL PERFORM,PRSA >V
|
||||
SET 'PRSO,FALSE-VALUE
|
||||
JUMP ?CND53
|
||||
?ELS60: ZERO? LIT \?ELS62
|
||||
ZERO? BLORTED \?ELS62
|
||||
SET 'QUOTE-FLAG,FALSE-VALUE
|
||||
SET 'P-CONT,FALSE-VALUE
|
||||
CALL TOO-DARK
|
||||
JUMP ?CND53
|
||||
?ELS62: EQUAL? HERE,CHAMBER-OF-LIVING-DEATH,HALL-OF-ETERNAL-PAIN \?ELS66
|
||||
SET 'QUOTE-FLAG,FALSE-VALUE
|
||||
SET 'P-CONT,FALSE-VALUE
|
||||
CALL AGONY
|
||||
JUMP ?CND53
|
||||
?ELS66: PRINTI "There isn't anything to "
|
||||
GET P-ITBL,P-VERBN >TMP
|
||||
EQUAL? PRSA,V?TELL \?ELS73
|
||||
PRINTI "talk to"
|
||||
JUMP ?CND71
|
||||
?ELS73: ZERO? P-OFLAG \?THN78
|
||||
ZERO? P-MERGED /?ELS77
|
||||
?THN78: GET TMP,0
|
||||
PRINTB STACK
|
||||
JUMP ?CND71
|
||||
?ELS77: GETB TMP,2 >?TMP1
|
||||
GETB TMP,3
|
||||
CALL WORD-PRINT,?TMP1,STACK
|
||||
?CND71: PRINTI "!"
|
||||
CRLF
|
||||
SET 'V,FALSE-VALUE
|
||||
JUMP ?CND53
|
||||
?ELS57: SET 'P-NOT-HERE,0
|
||||
SET 'P-MULT,FALSE-VALUE
|
||||
GRTR? NUM,1 \?CND86
|
||||
SET 'P-MULT,TRUE-VALUE
|
||||
?CND86: SET 'TMP,FALSE-VALUE
|
||||
?PRG89: IGRTR? 'CNT,NUM \?ELS93
|
||||
GRTR? P-NOT-HERE,0 \?ELS96
|
||||
PRINTI "The "
|
||||
EQUAL? P-NOT-HERE,NUM /?CND99
|
||||
PRINTI "other "
|
||||
?CND99: PRINTI "object"
|
||||
EQUAL? P-NOT-HERE,1 /?CND106
|
||||
PRINTI "s"
|
||||
?CND106: PRINTI " that you mentioned "
|
||||
EQUAL? P-NOT-HERE,1 /?ELS115
|
||||
PRINTI "are"
|
||||
JUMP ?CND113
|
||||
?ELS115: PRINTI "is"
|
||||
?CND113: PRINTI "n't here."
|
||||
CRLF
|
||||
JUMP ?REP90
|
||||
?ELS96: ZERO? TMP \?REP90
|
||||
CALL REFERRING
|
||||
JUMP ?REP90
|
||||
?ELS93: ZERO? PTBL /?ELS130
|
||||
GET P-PRSO,CNT >OBJ1
|
||||
JUMP ?CND128
|
||||
?ELS130: GET P-PRSI,CNT >OBJ1
|
||||
?CND128: ZERO? PTBL /?ELS138
|
||||
PUSH OBJ1
|
||||
JUMP ?CND134
|
||||
?ELS138: PUSH OBJ
|
||||
?CND134: SET 'PRSO,STACK
|
||||
ZERO? PTBL /?ELS146
|
||||
PUSH OBJ
|
||||
JUMP ?CND142
|
||||
?ELS146: PUSH OBJ1
|
||||
?CND142: SET 'PRSI,STACK
|
||||
GRTR? NUM,1 /?THN153
|
||||
GET P-ITBL,P-NC1
|
||||
GET STACK,0
|
||||
EQUAL? STACK,W?ALL \?CND150
|
||||
?THN153: EQUAL? OBJ1,NOT-HERE-OBJECT \?ELS157
|
||||
INC 'P-NOT-HERE
|
||||
JUMP ?PRG89
|
||||
?ELS157: EQUAL? P-GETFLAGS,P-ALL \?ELS159
|
||||
EQUAL? PRSA,V?TAKE \?ELS159
|
||||
LOC OBJ1
|
||||
EQUAL? STACK,WINNER,HERE,OBJ /?ELS165
|
||||
LOC OBJ1
|
||||
FSET? STACK,SURFACEBIT /?ELS165
|
||||
LOC OBJ1
|
||||
EQUAL? STACK,FIREPLACE \?PRG89
|
||||
?ELS165: FSET? OBJ1,TAKEBIT /?ELS159
|
||||
FSET? OBJ1,TRYTAKEBIT /?ELS159
|
||||
JUMP ?PRG89
|
||||
?ELS159: EQUAL? PRSA,V?TAKE \?ELS169
|
||||
ZERO? PRSI /?ELS169
|
||||
GET P-ITBL,P-NC1
|
||||
GET STACK,0
|
||||
EQUAL? STACK,W?ALL \?ELS169
|
||||
IN? PRSO,PRSI /?ELS169
|
||||
CALL DESK-KLUDGE
|
||||
ZERO? STACK /?ELS169
|
||||
JUMP ?PRG89
|
||||
?ELS169: EQUAL? P-GETFLAGS,P-ALL \?ELS173
|
||||
EQUAL? PRSA,V?DROP \?ELS173
|
||||
IN? OBJ1,WINNER /?ELS173
|
||||
IN? P-IT-OBJECT,WINNER /?ELS173
|
||||
JUMP ?PRG89
|
||||
?ELS173: CALL VISIBLE?,OBJ1
|
||||
ZERO? STACK \?ELS177
|
||||
JUMP ?PRG89
|
||||
?ELS177: EQUAL? OBJ1,IT \?ELS182
|
||||
PRINTD P-IT-OBJECT
|
||||
JUMP ?CND180
|
||||
?ELS182: PRINTD OBJ1
|
||||
?CND180: PRINTI ": "
|
||||
?CND150: SET 'TMP,TRUE-VALUE
|
||||
CALL PERFORM,PRSA,PRSO,PRSI >V
|
||||
SET 'LAST-USED-PRSO,PRSO
|
||||
EQUAL? V,M-FATAL \?PRG89
|
||||
JUMP ?CND53
|
||||
?REP90:
|
||||
?CND53: EQUAL? V,M-FATAL /?CND190
|
||||
EQUAL? PRSA,V?SUPER-BRIEF,V?BRIEF,V?TELL /?CND193
|
||||
EQUAL? PRSA,V?VERSION,V?SAVE,V?VERBOSE /?CND193
|
||||
EQUAL? PRSA,V?UNSCRIPT,V?SCRIPT,V?RESTORE \?ELS195
|
||||
JUMP ?CND190
|
||||
?ELS195: LOC WINNER
|
||||
GETP STACK,P?ACTION
|
||||
CALL STACK,M-END >V
|
||||
?CND193:
|
||||
?CND190: EQUAL? V,M-FATAL \?CND1
|
||||
SET 'P-CONT,FALSE-VALUE
|
||||
JUMP ?CND1
|
||||
?ELS3: SET 'P-CONT,FALSE-VALUE
|
||||
?CND1: ZERO? P-WON /FALSE
|
||||
EQUAL? PRSA,V?SUPER-BRIEF,V?BRIEF,V?TELL /TRUE
|
||||
EQUAL? PRSA,V?VERSION,V?SAVE,V?VERBOSE /TRUE
|
||||
EQUAL? PRSA,V?RESTART,V?QUIT,V?TIME /TRUE
|
||||
EQUAL? PRSA,V?UNSCRIPT,V?SCRIPT,V?SCORE /TRUE
|
||||
EQUAL? PRSA,V?$COMMAND,V?$RANDOM,V?RESTORE /TRUE
|
||||
EQUAL? PRSA,V?$UNRECORD,V?$RECORD /TRUE
|
||||
CALL CLOCKER >V
|
||||
RETURN V
|
||||
|
||||
|
||||
.FUNCT DESK-KLUDGE
|
||||
EQUAL? PRSI,BELBOZ-DESK \TRUE
|
||||
IN? PRSO,DESK-DRAWER \TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT FAKE-ORPHAN,TMP,?TMP1
|
||||
CALL ORPHAN,P-SYNTAX,FALSE-VALUE
|
||||
PRINTI "Be specific: what object do you want to "
|
||||
GET P-OTBL,P-VERBN >TMP
|
||||
ZERO? TMP \?ELS5
|
||||
PRINTI "tell"
|
||||
JUMP ?CND3
|
||||
?ELS5: GETB P-VTBL,2
|
||||
ZERO? STACK \?ELS9
|
||||
GET TMP,0
|
||||
PRINTB STACK
|
||||
JUMP ?CND3
|
||||
?ELS9: GETB TMP,2 >?TMP1
|
||||
GETB TMP,3
|
||||
CALL WORD-PRINT,?TMP1,STACK
|
||||
PUTB P-VTBL,2,0
|
||||
?CND3: SET 'P-OFLAG,TRUE-VALUE
|
||||
SET 'P-WON,FALSE-VALUE
|
||||
GETB P-SYNTAX,P-SPREP1
|
||||
CALL PREP-PRINT,STACK
|
||||
PRINTR "?"
|
||||
|
||||
|
||||
.FUNCT PERFORM,A,O=0,I=0,V,OA,OO,OI
|
||||
SET 'OA,PRSA
|
||||
SET 'OO,PRSO
|
||||
SET 'OI,PRSI
|
||||
SET 'PRSA,A
|
||||
EQUAL? IT,I,O \?CND1
|
||||
ZERO? I \?ELS6
|
||||
CALL FAKE-ORPHAN
|
||||
RETURN 2
|
||||
?ELS6: CALL REFERRING
|
||||
RETURN 2
|
||||
?CND1: SET 'PRSO,O
|
||||
ZERO? PRSO /?CND11
|
||||
EQUAL? PRSA,V?WALK /?CND11
|
||||
EQUAL? PRSO,NOT-HERE-OBJECT /?CND11
|
||||
CALL THIS-IS-IT,PRSO
|
||||
?CND11: SET 'PRSI,I
|
||||
EQUAL? NOT-HERE-OBJECT,PRSO,PRSI \?ELS18
|
||||
CALL D-APPLY,STR?1,NOT-HERE-OBJECT-F >V
|
||||
ZERO? V /?ELS18
|
||||
SET 'P-WON,FALSE-VALUE
|
||||
JUMP ?CND16
|
||||
?ELS18: SET 'O,PRSO
|
||||
SET 'I,PRSI
|
||||
GETP WINNER,P?ACTION
|
||||
CALL D-APPLY,STR?2,STACK >V
|
||||
ZERO? V /?ELS25
|
||||
JUMP ?CND16
|
||||
?ELS25: LOC WINNER
|
||||
GETP STACK,P?ACTION
|
||||
CALL D-APPLY,STR?3,STACK,M-BEG >V
|
||||
ZERO? V /?ELS27
|
||||
JUMP ?CND16
|
||||
?ELS27: GET PREACTIONS,A
|
||||
CALL D-APPLY,STR?4,STACK >V
|
||||
ZERO? V /?ELS29
|
||||
JUMP ?CND16
|
||||
?ELS29: ZERO? I /?ELS31
|
||||
GETP I,P?ACTION
|
||||
CALL D-APPLY,STR?5,STACK >V
|
||||
ZERO? V /?ELS31
|
||||
JUMP ?CND16
|
||||
?ELS31: ZERO? O /?ELS35
|
||||
EQUAL? A,V?WALK /?ELS35
|
||||
LOC O
|
||||
ZERO? STACK /?ELS35
|
||||
LOC O
|
||||
GETP STACK,P?CONTFCN
|
||||
ZERO? STACK /?ELS35
|
||||
LOC O
|
||||
GETP STACK,P?CONTFCN
|
||||
CALL D-APPLY,STR?6,STACK >V
|
||||
ZERO? V /?ELS35
|
||||
JUMP ?CND16
|
||||
?ELS35: ZERO? O /?ELS39
|
||||
EQUAL? A,V?WALK /?ELS39
|
||||
GETP O,P?ACTION
|
||||
CALL D-APPLY,STR?7,STACK >V
|
||||
ZERO? V /?ELS39
|
||||
JUMP ?CND16
|
||||
?ELS39: GET ACTIONS,A
|
||||
CALL D-APPLY,FALSE-VALUE,STACK >V
|
||||
ZERO? V /?CND16
|
||||
?CND16: SET 'PRSA,OA
|
||||
SET 'PRSO,OO
|
||||
SET 'PRSI,OI
|
||||
RETURN V
|
||||
|
||||
|
||||
.FUNCT D-APPLY,STR,FCN,FOO=0,RES
|
||||
ZERO? FCN /FALSE
|
||||
ZERO? FOO /?ELS12
|
||||
CALL FCN,FOO
|
||||
JUMP ?CND8
|
||||
?ELS12: CALL FCN
|
||||
?CND8: SET 'RES,STACK
|
||||
RETURN RES
|
||||
|
||||
|
||||
.FUNCT QUEUE,RTN,TICK,CINT
|
||||
CALL INT,RTN >CINT
|
||||
PUT CINT,C-TICK,TICK
|
||||
RETURN CINT
|
||||
|
||||
|
||||
.FUNCT INT,RTN,DEMON=0,E,C,INT
|
||||
ADD C-TABLE,C-TABLELEN >E
|
||||
ADD C-TABLE,C-INTS >C
|
||||
?PRG1: EQUAL? C,E \?ELS5
|
||||
SUB C-INTS,C-INTLEN >C-INTS
|
||||
ZERO? DEMON /?ELS7
|
||||
SUB C-DEMONS,C-INTLEN >C-DEMONS
|
||||
?ELS7: ADD C-TABLE,C-INTS >INT
|
||||
PUT INT,C-RTN,RTN
|
||||
RETURN INT
|
||||
?ELS5: GET C,C-RTN
|
||||
EQUAL? STACK,RTN \?CND3
|
||||
RETURN C
|
||||
?CND3: ADD C,C-INTLEN >C
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT CLOCKER,C,E,TICK,FLG=0
|
||||
ZERO? CLOCK-WAIT /?CND1
|
||||
SET 'CLOCK-WAIT,FALSE-VALUE
|
||||
RFALSE
|
||||
?CND1: ZERO? P-WON /?ELS9
|
||||
PUSH C-INTS
|
||||
JUMP ?CND5
|
||||
?ELS9: PUSH C-DEMONS
|
||||
?CND5: ADD C-TABLE,STACK >C
|
||||
ADD C-TABLE,C-TABLELEN >E
|
||||
?PRG13: EQUAL? C,E \?ELS17
|
||||
INC 'MOVES
|
||||
RETURN FLG
|
||||
?ELS17: GET C,C-ENABLED?
|
||||
ZERO? STACK /?CND15
|
||||
GET C,C-TICK >TICK
|
||||
ZERO? TICK \?ELS22
|
||||
JUMP ?CND15
|
||||
?ELS22: SUB TICK,1
|
||||
PUT C,C-TICK,STACK
|
||||
GRTR? TICK,1 /?CND20
|
||||
GET C,C-RTN
|
||||
CALL STACK
|
||||
ZERO? STACK /?CND20
|
||||
SET 'FLG,TRUE-VALUE
|
||||
?CND20:
|
||||
?CND15: ADD C,C-INTLEN >C
|
||||
JUMP ?PRG13
|
||||
|
||||
|
||||
.FUNCT NULL-F
|
||||
RFALSE
|
||||
|
||||
.ENDI
|
24
misc.zil
24
misc.zil
|
@ -206,8 +206,11 @@ Everything is hazy, as though viewed through a gauze...">
|
|||
<MAIN-LOOP>
|
||||
<AGAIN>>
|
||||
|
||||
<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)
|
||||
<SETG LAST-USED-PRSO <>>
|
||||
<SET CNT 0>
|
||||
<SET OBJ <>>
|
||||
|
@ -330,7 +333,8 @@ Everything is hazy, as though viewed through a gauze...">
|
|||
<OR
|
||||
<AND <NOT <EQUAL? <LOC .OBJ1>
|
||||
,WINNER
|
||||
,HERE>>
|
||||
,HERE
|
||||
.OBJ>>
|
||||
<NOT <FSET? <LOC .OBJ1>
|
||||
,SURFACEBIT>>
|
||||
<NOT <EQUAL? <LOC .OBJ1>
|
||||
|
@ -374,7 +378,7 @@ Everything is hazy, as though viewed through a gauze...">
|
|||
(T
|
||||
<SET V
|
||||
<APPLY <GETP <LOC ,WINNER> ,P?ACTION> ,M-END>>)>)>
|
||||
<COND (<VERB? AGAIN SAVE RESTORE SCORE VERSION>
|
||||
;<COND (<VERB? AGAIN SAVE RESTORE SCORE VERSION>
|
||||
T)
|
||||
(T
|
||||
<SETG L-PRSA ,PRSA>
|
||||
|
@ -393,7 +397,7 @@ Everything is hazy, as though viewed through a gauze...">
|
|||
$RANDOM $COMMAND $RECORD $UNRECORD>
|
||||
T)
|
||||
(T
|
||||
<SET V <CLOCKER>>)>)>>>
|
||||
<SET V <CLOCKER>>)>)>>
|
||||
|
||||
<ROUTINE DESK-KLUDGE ()
|
||||
<COND (<AND <EQUAL? ,PRSI ,BELBOZ-DESK>
|
||||
|
@ -402,11 +406,9 @@ Everything is hazy, as though viewed through a gauze...">
|
|||
(T
|
||||
<RTRUE>)>>
|
||||
|
||||
<GLOBAL L-PRSA <>>
|
||||
|
||||
<GLOBAL L-PRSO <>>
|
||||
|
||||
<GLOBAL L-PRSI <>>
|
||||
;<GLOBAL L-PRSA <>>
|
||||
;<GLOBAL L-PRSO <>>
|
||||
;<GLOBAL L-PRSI <>>
|
||||
|
||||
<GLOBAL P-MULT <>>
|
||||
|
||||
|
@ -573,3 +575,5 @@ Everything is hazy, as though viewed through a gauze...">
|
|||
<APPLY <GET .C ,C-RTN>>>
|
||||
<SET FLG T>)>)>)>
|
||||
<SET C <REST .C ,C-INTLEN>>>>
|
||||
|
||||
<ROUTINE NULL-F () <RFALSE>>
|
||||
|
|
524
park.zap
Normal file
524
park.zap
Normal file
|
@ -0,0 +1,524 @@
|
|||
|
||||
|
||||
.FUNCT BOZBARLAND-F
|
||||
EQUAL? PRSA,V?THROUGH \?ELS5
|
||||
EQUAL? HERE,PARK-ENTRANCE \?ELS10
|
||||
CALL DO-WALK,P?WEST
|
||||
RSTACK
|
||||
?ELS10: CALL LOOK-AROUND-YOU
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?DROP,V?EXIT \?ELS14
|
||||
EQUAL? HERE,EAST-END-OF-MIDWAY \?ELS19
|
||||
CALL DO-WALK,P?EAST
|
||||
RSTACK
|
||||
?ELS19: EQUAL? HERE,PARK-ENTRANCE \?ELS21
|
||||
CALL LOOK-AROUND-YOU
|
||||
RSTACK
|
||||
?ELS21: CALL CANT-ENTER,BOZBARLAND,TRUE-VALUE
|
||||
RSTACK
|
||||
?ELS14: EQUAL? PRSA,V?RESEARCH \FALSE
|
||||
PRINTR "Bozbarland was a magical futuristic fantasy amusement park, oft referred to as the entertainment capital of the Great Underground Empire. The lower classes usually called it simply Zorky Park."
|
||||
|
||||
|
||||
.FUNCT PARK-SIGN-PSEUDO
|
||||
EQUAL? PRSA,V?READ \FALSE
|
||||
CALL FIXED-FONT-ON
|
||||
PRINTI "
|
||||
$$$$$ WELCOME TO BOZBARLAND $$$$$
|
||||
The Entertainment Capital
|
||||
of the Empire"
|
||||
CRLF
|
||||
CALL FIXED-FONT-OFF
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT AMUSEMENT-PARK-ENTER-F
|
||||
ZERO? PARK-FEE-PAID /?ELS5
|
||||
RETURN EAST-END-OF-MIDWAY
|
||||
?ELS5: IN? PARK-GNOME,HERE \?ELS8
|
||||
PRINTI "As you bounce off the barrier, the gnome admonishes, ""Tsk, tsk ... you can't enter without paying your zorkmid!"""
|
||||
CRLF
|
||||
RFALSE
|
||||
?ELS8: MOVE PARK-GNOME,HERE
|
||||
CALL QUEUE,I-PARK-GNOME,6
|
||||
PUT STACK,0,1
|
||||
PRINTI "You bounce off an invisible barrier. A moment later a gnome appears, dressed in a gaudy plaid outfit. ""Admission to the park is only one zorkmid. What a bargain, chum, eh?"""
|
||||
CRLF
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT I-PARK-GNOME
|
||||
MOVE PARK-GNOME,DIAL
|
||||
EQUAL? HERE,PARK-ENTRANCE \FALSE
|
||||
CRLF
|
||||
PRINTR """Well, I can't wait all day, buddy,"" growls the gnome before vanishing."
|
||||
|
||||
|
||||
.FUNCT PARK-GNOME-F
|
||||
EQUAL? PRSA,V?TELL \?ELS5
|
||||
PRINTI """Listen, fella, I was in the middle of something important and I don't have time to gab. Gonna pay the admission fee, or not?"""
|
||||
CRLF
|
||||
CALL STOP
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?YOMIN \?ELS9
|
||||
PRINTR "The gnome is thinking about the poker game you interrupted."
|
||||
?ELS9: EQUAL? PRSA,V?GIVE \FALSE
|
||||
EQUAL? PRSI,PARK-GNOME \FALSE
|
||||
EQUAL? PRSO,ZORKMID \FALSE
|
||||
FSET? ZORKMID,ONBIT \?CND16
|
||||
CALL GNOME-REFUSES
|
||||
RTRUE
|
||||
?CND16: MOVE ZORKMID,DIAL
|
||||
MOVE PARK-GNOME,DIAL
|
||||
SET 'PARK-FEE-PAID,TRUE-VALUE
|
||||
CALL INT,I-PARK-GNOME
|
||||
PUT STACK,0,0
|
||||
PRINTR """Okay, you can go through now, bub. Enjoy your trip to Bozbarland."" The gnome vanishes as suddenly as he appeared."
|
||||
|
||||
|
||||
.FUNCT MIDWAY-PSEUDO
|
||||
EQUAL? PRSA,V?THROUGH \?ELS5
|
||||
EQUAL? HERE,FLUME,ARCADE \?ELS10
|
||||
CALL DO-WALK,P?NORTH
|
||||
RSTACK
|
||||
?ELS10: EQUAL? HERE,ROLLER-COASTER,HAUNTED-HOUSE \?ELS12
|
||||
CALL DO-WALK,P?SOUTH
|
||||
RSTACK
|
||||
?ELS12: EQUAL? HERE,CASINO \?ELS14
|
||||
CALL DO-WALK,P?EAST
|
||||
RSTACK
|
||||
?ELS14: CALL LOOK-AROUND-YOU
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?EXIT,V?DROP \FALSE
|
||||
CALL V-WALK-AROUND
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT EAST-END-OF-MIDWAY-F,RARG
|
||||
EQUAL? RARG,M-ENTER \FALSE
|
||||
PUT VEZZAS,4,0
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT HAUNTED-HOUSE-F,RARG
|
||||
EQUAL? RARG,M-LOOK \?ELS5
|
||||
ZERO? LIT /?ELS8
|
||||
PRINTI "Something about this place seems to soak up all light, so that it"
|
||||
JUMP ?CND6
|
||||
?ELS8: ZERO? BLORTED /?ELS13
|
||||
PRINTI "Despite the effects of the blort potion, this place "
|
||||
JUMP ?CND6
|
||||
?ELS13: PRINTI "It"
|
||||
?CND6: PRINTR " is quite dark. You can see vague shapes swaying about in the darkness."
|
||||
?ELS5: EQUAL? RARG,M-ENTER \FALSE
|
||||
CALL QUEUE,I-HAUNT,1
|
||||
PUT STACK,0,1
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT I-HAUNT
|
||||
CALL QUEUE,I-HAUNT,-1
|
||||
PUT STACK,0,1
|
||||
EQUAL? HERE,HAUNTED-HOUSE /?ELS5
|
||||
CALL INT,I-HAUNT
|
||||
PUT STACK,0,0
|
||||
RFALSE
|
||||
?ELS5: RANDOM 100
|
||||
LESS? 65,STACK /FALSE
|
||||
CRLF
|
||||
CALL PICK-ONE,HAUNT-TABLE
|
||||
PRINT STACK
|
||||
CRLF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT START-RIDE,LOC,X,N
|
||||
SET 'RIDE-IN-PROGRESS,TRUE-VALUE
|
||||
FIRST? LOC >X /?KLU11
|
||||
?KLU11:
|
||||
?PRG1: NEXT? X >N /?KLU12
|
||||
?KLU12: EQUAL? X,PROTAGONIST,CAR,LOG-BOAT /?CND3
|
||||
FSET X,INVISIBLE
|
||||
?CND3: ZERO? N /TRUE
|
||||
SET 'X,N
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT END-RIDE,X,N
|
||||
SET 'RIDE-IN-PROGRESS,FALSE-VALUE
|
||||
SET 'RIDE-COUNTER,0
|
||||
CALL INT,I-FLUME-TRIP
|
||||
PUT STACK,0,0
|
||||
CALL INT,I-ROLLER-COASTER-TRIP
|
||||
PUT STACK,0,0
|
||||
FIRST? FLUME >X /?KLU15
|
||||
?KLU15:
|
||||
?PRG1: NEXT? X >N /?KLU16
|
||||
?KLU16: FCLEAR X,INVISIBLE
|
||||
ZERO? N \?ELS5
|
||||
JUMP ?REP2
|
||||
?ELS5: SET 'X,N
|
||||
JUMP ?PRG1
|
||||
?REP2: FIRST? ROLLER-COASTER >X /?KLU17
|
||||
?KLU17:
|
||||
?PRG8: NEXT? X >N /?KLU18
|
||||
?KLU18: FCLEAR X,INVISIBLE
|
||||
ZERO? N /TRUE
|
||||
SET 'X,N
|
||||
JUMP ?PRG8
|
||||
|
||||
|
||||
.FUNCT SITS-AT-PLATFORM,VEHICLE
|
||||
PRINTI " A "
|
||||
PRINTD VEHICLE
|
||||
PRINTI " sits at the platform, beckoning you to enter."
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT PARK-NYMPH,VEHICLE
|
||||
PRINTI "An amusement park nymph appears for a moment, warning you not to leave the "
|
||||
PRINTD VEHICLE
|
||||
PRINTR " during the course of the ride."
|
||||
|
||||
|
||||
.FUNCT PLAQUE
|
||||
PRINTI " A small plaque hangs nearby. The midway is visible to the "
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT PLAQUE-PSEUDO
|
||||
EQUAL? PRSA,V?EXAMINE,V?READ \FALSE
|
||||
PRINTI """Constructed by the Frobozz Magic "
|
||||
EQUAL? HERE,FLUME \?ELS10
|
||||
PRINTI "Flume"
|
||||
JUMP ?CND8
|
||||
?ELS10: PRINTI "Roller Coaster"
|
||||
?CND8: PRINTR " Company."""
|
||||
|
||||
|
||||
.FUNCT FLUME-F,RARG
|
||||
EQUAL? RARG,M-LOOK \FALSE
|
||||
ZERO? RIDE-IN-PROGRESS \TRUE
|
||||
PRINTI "You are at the boarding platform of a fast-moving flume, flowing off beyond your view."
|
||||
CALL PLAQUE
|
||||
PRINTI "north."
|
||||
IN? PROTAGONIST,LOG-BOAT /?CND18
|
||||
CALL SITS-AT-PLATFORM,LOG-BOAT
|
||||
?CND18: CRLF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT FLUME-OBJECT-F
|
||||
EQUAL? PRSA,V?PULVER \?ELS5
|
||||
PRINTR "In order to prevent damage to public life and property, flumes are protected against this sort of prank."
|
||||
?ELS5: EQUAL? PRSA,V?BOARD \?ELS9
|
||||
CALL PERFORM,V?BOARD,LOG-BOAT
|
||||
RTRUE
|
||||
?ELS9: EQUAL? PRSA,V?RESEARCH \FALSE
|
||||
PRINTR "Flumes are artifical water channels, usually with boat rides. The boat is typically a hollowed-out log. The largest flume of this kind is in Bozbarland."
|
||||
|
||||
|
||||
.FUNCT LOG-BOAT-F,RARG=0
|
||||
EQUAL? RARG,M-BEG \?ELS5
|
||||
EQUAL? PRSA,V?WALK \?ELS5
|
||||
CALL NOT-GOING-ANYWHERE,LOG-BOAT
|
||||
RSTACK
|
||||
?ELS5: ZERO? RARG \FALSE
|
||||
EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS12
|
||||
PRINTR "Huh?"
|
||||
?ELS12: EQUAL? PRSA,V?CLIMB-ON,V?ENTER,V?THROUGH \?ELS16
|
||||
CALL PERFORM,V?BOARD,PRSO
|
||||
RTRUE
|
||||
?ELS16: EQUAL? PRSA,V?STAND,V?DISEMBARK,V?DROP /?THN21
|
||||
EQUAL? PRSA,V?EXIT \?ELS18
|
||||
?THN21: ZERO? RIDE-IN-PROGRESS /?ELS18
|
||||
CALL END-RIDE
|
||||
CALL JIGS-UP,STR?266
|
||||
RSTACK
|
||||
?ELS18: EQUAL? PRSA,V?BOARD \FALSE
|
||||
ZERO? RIDE-IN-PROGRESS \FALSE
|
||||
CALL START-RIDE,FLUME
|
||||
MOVE PROTAGONIST,LOG-BOAT
|
||||
CALL QUEUE,I-FLUME-TRIP,2
|
||||
PUT STACK,0,1
|
||||
PRINTI "As you enter the log boat, it lurches away from the platform and is carried swiftly away by the current of the flume. "
|
||||
CALL PARK-NYMPH,LOG-BOAT
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT I-FLUME-TRIP
|
||||
CALL QUEUE,I-FLUME-TRIP,-1
|
||||
PUT STACK,0,1
|
||||
INC 'RIDE-COUNTER
|
||||
ZERO? RIDE-IN-PROGRESS \?CND1
|
||||
CALL INT,I-FLUME-TRIP
|
||||
PUT STACK,0,0
|
||||
SET 'RIDE-COUNTER,0
|
||||
RFALSE
|
||||
?CND1: CRLF
|
||||
EQUAL? RIDE-COUNTER,1 \?ELS8
|
||||
PRINTR "The flume is wide here, and straight as an arrow. The ride is quite relaxing."
|
||||
?ELS8: EQUAL? RIDE-COUNTER,2 \?ELS12
|
||||
PRINTR "You enter a stretch of sharp, winding curves! Spray dashes your face as you are tossed about the log boat!"
|
||||
?ELS12: EQUAL? RIDE-COUNTER,3 \?ELS16
|
||||
PRINTR "The twists and turns are left behind as you approach the mouth of a dark tunnel."
|
||||
?ELS16: EQUAL? RIDE-COUNTER,4 \?ELS20
|
||||
ZERO? LIT \?THN26
|
||||
ZERO? BLORTED /?ELS25
|
||||
?THN26: PRINTR "The flume winds through a tunnel whose walls are black as coal. You pass an opening which provides a brief glimpse of troglodytes digging and hauling coal."
|
||||
?ELS25: PRINTR "It is pitch black. The roar of the flume's current echoes about the tunnel. A spot of light is visible ahead."
|
||||
?ELS20: EQUAL? RIDE-COUNTER,5 \?ELS35
|
||||
PRINTR "The log boat leaves the tunnel and passes through a series of rapids, shooting straight toward jagged rocks and then veering away at the last moment!"
|
||||
?ELS35: EQUAL? RIDE-COUNTER,6 \?ELS39
|
||||
PRINTR "Magically, the flume flows uphill here! The current slows as the boat climbs and climbs..."
|
||||
?ELS39: EQUAL? RIDE-COUNTER,7 \?ELS43
|
||||
PRINTR "You reach the crest of the flume's final drop. You can see swirling white water below!"
|
||||
?ELS43: EQUAL? RIDE-COUNTER,8 \?ELS47
|
||||
PRINTR "The log boat plunges down into the swirling waters at the base of the slope! Huge splashes of water spray off in every direction, but amazingly you stay dry!"
|
||||
?ELS47: EQUAL? RIDE-COUNTER,9 \FALSE
|
||||
CALL END-RIDE
|
||||
CALL INT,I-FLUME-TRIP
|
||||
PUT STACK,0,0
|
||||
PRINTR "The boat floats serenely around a final turn and pulls up to the boarding platform."
|
||||
|
||||
|
||||
.FUNCT ROLLER-COASTER-F,RARG
|
||||
EQUAL? RARG,M-LOOK \FALSE
|
||||
ZERO? RIDE-IN-PROGRESS \TRUE
|
||||
PRINTI "You are at the boarding platform of a huge roller coaster, sprawling above and around you in every direction."
|
||||
CALL PLAQUE
|
||||
PRINTI "south."
|
||||
IN? PROTAGONIST,CAR /?CND18
|
||||
CALL SITS-AT-PLATFORM,CAR
|
||||
?CND18: CRLF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT CAR-F,RARG=0
|
||||
EQUAL? RARG,M-BEG \?ELS5
|
||||
EQUAL? PRSA,V?WALK \?ELS5
|
||||
CALL NOT-GOING-ANYWHERE,CAR
|
||||
RSTACK
|
||||
?ELS5: ZERO? RARG \FALSE
|
||||
EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS12
|
||||
PRINTR "Huh?"
|
||||
?ELS12: EQUAL? PRSA,V?CLIMB-ON,V?ENTER,V?THROUGH \?ELS16
|
||||
CALL PERFORM,V?BOARD,PRSO
|
||||
RTRUE
|
||||
?ELS16: EQUAL? PRSA,V?STAND,V?DISEMBARK,V?DROP /?THN21
|
||||
EQUAL? PRSA,V?EXIT \?ELS18
|
||||
?THN21: ZERO? RIDE-IN-PROGRESS /?ELS18
|
||||
CALL END-RIDE
|
||||
CALL JIGS-UP,STR?267
|
||||
RSTACK
|
||||
?ELS18: EQUAL? PRSA,V?EXIT,V?DROP \?ELS24
|
||||
CALL PERFORM,V?DISEMBARK,PRSO
|
||||
RTRUE
|
||||
?ELS24: EQUAL? PRSA,V?BOARD \FALSE
|
||||
ZERO? RIDE-IN-PROGRESS \FALSE
|
||||
CALL START-RIDE,ROLLER-COASTER
|
||||
MOVE PROTAGONIST,CAR
|
||||
CALL QUEUE,I-ROLLER-COASTER-TRIP,2
|
||||
PUT STACK,0,1
|
||||
PRINTI "As you enter the car, it rolls away from the platform in a gentle curve. "
|
||||
CALL PARK-NYMPH,CAR
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT I-ROLLER-COASTER-TRIP
|
||||
CALL QUEUE,I-ROLLER-COASTER-TRIP,-1
|
||||
PUT STACK,0,1
|
||||
INC 'RIDE-COUNTER
|
||||
ZERO? RIDE-IN-PROGRESS \?CND1
|
||||
CALL INT,I-ROLLER-COASTER-TRIP
|
||||
PUT STACK,0,0
|
||||
CALL END-RIDE
|
||||
RFALSE
|
||||
?CND1: CRLF
|
||||
EQUAL? RIDE-COUNTER,1 \?ELS8
|
||||
PRINTR "The car, propelled by some unseen force, rolls up a huge incline. The crest grows tantalizingly closer."
|
||||
?ELS8: EQUAL? RIDE-COUNTER,2 \?ELS12
|
||||
PRINTR "You reach the crest, the highest point of the roller coaster! The park is laid out beneath you like a map; the lights of the midway, the booths of the arcade, the sparkling blue ribbon of water that must be the flume. In the distance is a wide crater. The sounds and smells of the park seem distant, and time feels suspended for a moment."
|
||||
?ELS12: EQUAL? RIDE-COUNTER,3 \?ELS16
|
||||
PRINTR "The breath is swept from your lungs as the car begins diving, seemingly straight downward. You rise from the seat as the ground rushes closer! At the last moment, the car swings upward, and your stomach settles in your ankles."
|
||||
?ELS16: EQUAL? RIDE-COUNTER,4 \?ELS20
|
||||
PRINTR "The car zips through a series of wild turns and sharp drops. Wooden roller coaster supports whiz past, inches from your head!"
|
||||
?ELS20: EQUAL? RIDE-COUNTER,5 \?ELS24
|
||||
PRINTR "This section of track is shaped like a corkscrew, and as the car hurtles forward it turns upside down almost every second. It is impossible to tell up from down, as the ground seems to spin around you."
|
||||
?ELS24: EQUAL? RIDE-COUNTER,6 \?ELS28
|
||||
PRINTR "The car shoots into a rapid climb, which gets progressively slower and steeper. Your heart beats wildly as the track begins to swing back above you, and you realize that you are entering a giant loop!"
|
||||
?ELS28: EQUAL? RIDE-COUNTER,7 \?ELS32
|
||||
PRINTR "As you reach the highest point of the loop, you hang completely upside-down for a brief moment. The blood rushes to your head as the ground suspended ""above"" you like a canopy. Then, you hurtle down the far side of the loop with breakneck speed!"
|
||||
?ELS32: EQUAL? RIDE-COUNTER,8 \?ELS36
|
||||
PRINTI "The roller coaster speeds out of the loop and into a tunnel"
|
||||
ZERO? LIT \?THN42
|
||||
ZERO? BLORTED /?ELS41
|
||||
?THN42: PRINTI ", which seems to run through the middle of a haunted house! Wispy ghosts and ghoulish skeletons brush past you"
|
||||
JUMP ?CND39
|
||||
?ELS41: PRINTI ". You shiver as horrible slimy things brush across your face"
|
||||
?CND39: PRINTR "."
|
||||
?ELS36: EQUAL? RIDE-COUNTER,9 \FALSE
|
||||
CALL END-RIDE
|
||||
CALL INT,I-ROLLER-COASTER-TRIP
|
||||
PUT STACK,0,0
|
||||
PRINTR "The car zooms out into daylight, and glides to a stop at the boarding platform."
|
||||
|
||||
|
||||
.FUNCT ARCADE-F,RARG
|
||||
EQUAL? RARG,M-END \FALSE
|
||||
ZERO? HAWKER-SUBDUED \FALSE
|
||||
IN? BALL,HAWKER \FALSE
|
||||
PRINTR """C'mon, pal!"" cries the hawker from the game booth. ""Try your luck!"" He holds the ball out toward you."
|
||||
|
||||
|
||||
.FUNCT ARCADE-EXIT-F
|
||||
CALL HELD?,BALL
|
||||
ZERO? STACK /?CND1
|
||||
PRINTI "The hawker yells after you, ""Hey buddy, come back with that ball!"""
|
||||
CRLF
|
||||
CRLF
|
||||
RETURN WEST-END-OF-MIDWAY
|
||||
?CND1: RETURN WEST-END-OF-MIDWAY
|
||||
|
||||
|
||||
.FUNCT BOOTH-PSEUDO
|
||||
EQUAL? PRSA,V?THROUGH \FALSE
|
||||
PRINTR "The hawker pushes you away."
|
||||
|
||||
|
||||
.FUNCT HAWKER-F
|
||||
EQUAL? HAWKER,WINNER \?ELS5
|
||||
EQUAL? PRSO,BALL \?ELS10
|
||||
EQUAL? PRSI,ME \?ELS10
|
||||
EQUAL? PRSA,V?GIVE \?ELS10
|
||||
SET 'WINNER,PROTAGONIST
|
||||
CALL PERFORM,V?TAKE,BALL
|
||||
RTRUE
|
||||
?ELS10: PRINTI """No time to gab, kid."
|
||||
ZERO? HAWKER-SUBDUED \?CND17
|
||||
PRINTI " C'mon and give it a try. One hit wins!"
|
||||
?CND17: PRINTI """"
|
||||
CRLF
|
||||
CALL STOP
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?YOMIN \?ELS25
|
||||
PRINTR "The hawker is thinking about finding a good stogie, whatever that is."
|
||||
?ELS25: EQUAL? PRSA,V?AIMFIZ \FALSE
|
||||
CALL JIGS-UP,STR?270
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT BALL-F
|
||||
EQUAL? PRSA,V?TAKE \?ELS5
|
||||
FCLEAR BALL,NDESCBIT
|
||||
FCLEAR BALL,TRYTAKEBIT
|
||||
RFALSE
|
||||
?ELS5: EQUAL? PRSA,V?ATTACK \?ELS7
|
||||
EQUAL? PRSO,RABBITS \?ELS7
|
||||
CALL PERFORM,V?THROW,BALL,RABBITS
|
||||
RTRUE
|
||||
?ELS7: EQUAL? PRSA,V?THROW \FALSE
|
||||
EQUAL? PRSI,RABBITS \FALSE
|
||||
CALL HELD?,BALL
|
||||
ZERO? STACK /FALSE
|
||||
ZERO? FOOBLED /?ELS18
|
||||
MOVE MALYON-SCROLL,PROTAGONIST
|
||||
ADD SCORE,10 >SCORE
|
||||
SET 'HAWKER-SUBDUED,TRUE-VALUE
|
||||
MOVE BALL,DIAL
|
||||
PRINTR "A tremendous pitch sends a bunny spinning. ""What an arm, kid, what an arm!"" cries the hawker. He hands you a glittering scroll from the shelf of prizes. ""Here's your prize, now scram."""
|
||||
?ELS18: MOVE BALL,HAWKER
|
||||
FSET BALL,NDESCBIT
|
||||
FSET BALL,TRYTAKEBIT
|
||||
CALL PICK-ONE,MISSES
|
||||
PRINT STACK
|
||||
PRINTR " This game is harder than it looks. The hawker, leering, retrieves the ball."
|
||||
|
||||
|
||||
.FUNCT RABBITS-F
|
||||
EQUAL? PRSA,V?MALYON \FALSE
|
||||
PRINTR "The bunnies hop away and the startled hawker scrambles after them. He returns a moment later, holding the again inanimate bunnies, and gives you a nasty glare."
|
||||
|
||||
|
||||
.FUNCT CASINO-F,RARG
|
||||
EQUAL? RARG,M-ENTER \FALSE
|
||||
ZERO? JACKPOT-DUMPED /FALSE
|
||||
SET 'JACKPOT-DUMPED,FALSE-VALUE
|
||||
PRINTI "You enter just as a group of casino nymphs finish cleaning up the last of the zorkmid coins."
|
||||
CRLF
|
||||
CRLF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT LEVER-PSEUDO,A,B,C
|
||||
EQUAL? PRSA,V?PUSH,V?MOVE \FALSE
|
||||
ZERO? FWEEPED /?ELS10
|
||||
CALL BATTY
|
||||
RSTACK
|
||||
?ELS10: ZERO? SLOT-MACHINE-BROKEN /?ELS13
|
||||
PRINTR "The machine rattles loudly and makes a few feeble pings."
|
||||
?ELS13: RANDOM 100
|
||||
LESS? 25,STACK /?ELS21
|
||||
GET SLOT-MACHINE-TABLE,1 >A
|
||||
JUMP ?CND19
|
||||
?ELS21: RANDOM 100
|
||||
LESS? 33,STACK /?ELS23
|
||||
GET SLOT-MACHINE-TABLE,2 >A
|
||||
JUMP ?CND19
|
||||
?ELS23: RANDOM 100
|
||||
LESS? 50,STACK /?ELS25
|
||||
GET SLOT-MACHINE-TABLE,3 >A
|
||||
JUMP ?CND19
|
||||
?ELS25: GET SLOT-MACHINE-TABLE,4 >A
|
||||
?CND19: RANDOM 100
|
||||
LESS? 25,STACK /?ELS30
|
||||
GET SLOT-MACHINE-TABLE,1 >B
|
||||
JUMP ?CND28
|
||||
?ELS30: RANDOM 100
|
||||
LESS? 33,STACK /?ELS32
|
||||
GET SLOT-MACHINE-TABLE,2 >B
|
||||
JUMP ?CND28
|
||||
?ELS32: RANDOM 100
|
||||
LESS? 50,STACK /?ELS34
|
||||
GET SLOT-MACHINE-TABLE,3 >B
|
||||
JUMP ?CND28
|
||||
?ELS34: GET SLOT-MACHINE-TABLE,4 >B
|
||||
?CND28: RANDOM 100
|
||||
LESS? 25,STACK /?ELS39
|
||||
GET SLOT-MACHINE-TABLE,1 >C
|
||||
JUMP ?CND37
|
||||
?ELS39: RANDOM 100
|
||||
LESS? 33,STACK /?ELS41
|
||||
GET SLOT-MACHINE-TABLE,2 >C
|
||||
JUMP ?CND37
|
||||
?ELS41: RANDOM 100
|
||||
LESS? 50,STACK /?ELS43
|
||||
GET SLOT-MACHINE-TABLE,3 >C
|
||||
JUMP ?CND37
|
||||
?ELS43: GET SLOT-MACHINE-TABLE,4 >C
|
||||
?CND37: PRINTI "Ping!
|
||||
A "
|
||||
PRINT A
|
||||
PRINTI " appears in the first section of the display.
|
||||
Ping!
|
||||
A "
|
||||
PRINT B
|
||||
PRINTI " appears in the second section of the display.
|
||||
Ping!
|
||||
A "
|
||||
PRINT C
|
||||
PRINTI " appears in the third section of the display."
|
||||
CRLF
|
||||
EQUAL? A,B \TRUE
|
||||
EQUAL? A,C \TRUE
|
||||
GET SLOT-MACHINE-TABLE,1
|
||||
EQUAL? A,STACK \?ELS59
|
||||
SET 'JACKPOT-DUMPED,TRUE-VALUE
|
||||
CALL JIGS-UP,STR?277
|
||||
RSTACK
|
||||
?ELS59: MOVE ZORKMID,HERE
|
||||
SET 'SLOT-MACHINE-BROKEN,TRUE-VALUE
|
||||
PRINTR "Ping! Ping! Ping!
|
||||
A zorkmid coin drops out of the machine and lands at your feet."
|
||||
|
||||
.ENDI
|
1868
parser.cmp
Normal file
1868
parser.cmp
Normal file
File diff suppressed because it is too large
Load diff
1340
parser.zap
Normal file
1340
parser.zap
Normal file
File diff suppressed because it is too large
Load diff
182
parser.zil
182
parser.zil
|
@ -116,7 +116,7 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<SETG PERFORMING-SPELL <>>
|
||||
<COND (,P-CONT
|
||||
<SET PTR ,P-CONT>
|
||||
<COND (<AND <NOT ,SUPER-BRIEF> <==? ,PLAYER ,WINNER>>
|
||||
<COND (<AND <NOT ,SUPER-BRIEF> <EQUAL? ,PLAYER ,WINNER>>
|
||||
<CRLF>)>
|
||||
<SETG P-CONT <>>)
|
||||
(T
|
||||
|
@ -129,7 +129,7 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<TELL ">">
|
||||
<READ ,P-INBUF ,P-LEXV>)>
|
||||
<SETG P-LEN <GETB ,P-LEXV ,P-LEXWORDS>>
|
||||
<COND (<0? ,P-LEN> <TELL "I beg your pardon?" CR> <RFALSE>)>
|
||||
<COND (<ZERO? ,P-LEN> <TELL "I beg your pardon?" CR> <RFALSE>)>
|
||||
<SET LEN ,P-LEN>
|
||||
<SETG P-DIR <>>
|
||||
<SETG P-NCN 0>
|
||||
|
@ -140,10 +140,10 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<RETURN>)
|
||||
(<OR <SET WRD <GET ,P-LEXV .PTR>>
|
||||
<SET WRD <NUMBER? .PTR>>>
|
||||
<COND (<AND <==? .WRD ,W?TO>
|
||||
<COND (<AND <EQUAL? .WRD ,W?TO>
|
||||
<EQUAL? .VERB ,ACT?TELL ;,ACT?ASK>>
|
||||
<SET WRD ,W?QUOTE>)
|
||||
(<AND <==? .WRD ,W?THEN>
|
||||
(<AND <EQUAL? .WRD ,W?THEN>
|
||||
<NOT .VERB>
|
||||
<NOT ,QUOTE-FLAG> ;"Last NOT added 7/3">
|
||||
<PUT ,P-ITBL ,P-VERB ,ACT?TELL>
|
||||
|
@ -159,7 +159,7 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<SETG QUOTE-FLAG <>>)
|
||||
(T
|
||||
<SETG QUOTE-FLAG T>)>)>
|
||||
<OR <0? ,P-LEN>
|
||||
<OR <ZERO? ,P-LEN>
|
||||
<SETG P-CONT <+ .PTR ,P-LEXELEN>>>
|
||||
<PUTB ,P-LEXV ,P-LEXWORDS ,P-LEN>
|
||||
<RETURN>)
|
||||
|
@ -168,8 +168,8 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
,PS?DIRECTION
|
||||
,P1?DIRECTION>>
|
||||
<EQUAL? .VERB <> ,ACT?WALK ;,ACT?FLY>
|
||||
<OR <==? .LEN 1>
|
||||
<AND <==? .LEN 2>
|
||||
<OR <EQUAL? .LEN 1>
|
||||
<AND <EQUAL? .LEN 2>
|
||||
<EQUAL? .VERB ,ACT?WALK ;,ACT?FLY>>
|
||||
<AND <EQUAL? <SET NW
|
||||
<GET ,P-LEXV
|
||||
|
@ -179,7 +179,7 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
,W?QUOTE>
|
||||
<NOT <L? .LEN 2>>>
|
||||
<AND ,QUOTE-FLAG
|
||||
<==? .LEN 2>
|
||||
<EQUAL? .LEN 2>
|
||||
<EQUAL? .NW ,W?QUOTE>>
|
||||
<AND <G? .LEN 2>
|
||||
<EQUAL? .NW ,W?COMMA ,W?AND>>>>
|
||||
|
@ -209,23 +209,23 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<WT? .WRD ,PS?OBJECT>>
|
||||
<SET VAL 0>>>
|
||||
<COND (<AND <G? ,P-LEN 0>
|
||||
<==? <GET ,P-LEXV
|
||||
<EQUAL? <GET ,P-LEXV
|
||||
<+ .PTR ,P-LEXELEN>>
|
||||
,W?OF>
|
||||
;<NOT <EQUAL? .VERB ,ACT?ACCUSE>>
|
||||
<0? .VAL>
|
||||
<ZERO? .VAL>
|
||||
<NOT
|
||||
<EQUAL? .WRD ,W?ALL ,W?ONE ,W?A>>
|
||||
<NOT
|
||||
<EQUAL? .WRD ,W?BOTH>>>)
|
||||
(<AND <NOT <0? .VAL>>
|
||||
<OR <0? ,P-LEN>
|
||||
(<AND <NOT <ZERO? .VAL>>
|
||||
<OR <ZERO? ,P-LEN>
|
||||
<EQUAL? <GET ,P-LEXV <+ .PTR 2>>
|
||||
,W?THEN ,W?PERIOD>>>
|
||||
<COND (<L? ,P-NCN 2>
|
||||
<PUT ,P-ITBL ,P-PREP1 .VAL>
|
||||
<PUT ,P-ITBL ,P-PREP1N .WRD>)>)
|
||||
(<==? ,P-NCN 2>
|
||||
(<EQUAL? ,P-NCN 2>
|
||||
<TELL
|
||||
"I found too many nouns in that sentence." CR>
|
||||
<RFALSE>)
|
||||
|
@ -265,7 +265,7 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<RETURN T>)>
|
||||
<SETG P-WALK-DIR <>>
|
||||
<COND (,P-OFLAG <ORPHAN-MERGE>)>
|
||||
;<COND (<==? <GET ,P-ITBL ,P-VERB> 0> <PUT ,P-ITBL ,P-VERB ,ACT?CALL>)>
|
||||
;<COND (<EQUAL? <GET ,P-ITBL ,P-VERB> 0> <PUT ,P-ITBL ,P-VERB ,ACT?CALL>)>
|
||||
<COND (<AND <SYNTAX-CHECK> <SNARF-OBJECTS> <MANY-CHECK> <TAKE-CHECK>>
|
||||
T)>>
|
||||
|
||||
|
@ -284,18 +284,18 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<RTRUE>)
|
||||
(T
|
||||
<SET TYP <BAND .TYP ,P-P1BITS>>
|
||||
<COND (<NOT <==? .TYP .B1>> <SET OFFS <+ .OFFS 1>>)>
|
||||
<COND (<NOT <EQUAL? .TYP .B1>> <SET OFFS <+ .OFFS 1>>)>
|
||||
<GETB .PTR .OFFS>)>)>>
|
||||
;" Scan through a noun clause, leave a pointer to its starting location"
|
||||
|
||||
<ROUTINE CLAUSE (PTR VAL WRD "AUX" OFF NUM (ANDFLG <>) (FIRST?? T) NW (LW 0))
|
||||
<SET OFF <* <- ,P-NCN 1> 2>>
|
||||
<COND (<NOT <==? .VAL 0>>
|
||||
<COND (<NOT <EQUAL? .VAL 0>>
|
||||
<PUT ,P-ITBL <SET NUM <+ ,P-PREP1 .OFF>> .VAL>
|
||||
<PUT ,P-ITBL <+ .NUM 1> .WRD>
|
||||
<SET PTR <+ .PTR ,P-LEXELEN>>)
|
||||
(T <SETG P-LEN <+ ,P-LEN 1>>)>
|
||||
<COND (<0? ,P-LEN> <SETG P-NCN <- ,P-NCN 1>> <RETURN -1>)>
|
||||
<COND (<ZERO? ,P-LEN> <SETG P-NCN <- ,P-NCN 1>> <RETURN -1>)>
|
||||
<PUT ,P-ITBL <SET NUM <+ ,P-NC1 .OFF>> <REST ,P-LEXV <* .PTR 2>>>
|
||||
<COND (<EQUAL? <GET ,P-LEXV .PTR> ,W?THE ,W?A ,W?AN>
|
||||
<PUT ,P-ITBL .NUM <REST <GET ,P-ITBL .NUM> 4>>)>
|
||||
|
@ -305,10 +305,10 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<RETURN -1>)>
|
||||
<COND (<OR <SET WRD <GET ,P-LEXV .PTR>>
|
||||
<SET WRD <NUMBER? .PTR>>>
|
||||
<COND (<0? ,P-LEN> <SET NW 0>)
|
||||
<COND (<ZERO? ,P-LEN> <SET NW 0>)
|
||||
(T <SET NW <GET ,P-LEXV <+ .PTR ,P-LEXELEN>>>)>
|
||||
;<COND (<AND <==? .WRD ,W?OF>
|
||||
<==? <GET ,P-ITBL ,P-VERB> ,ACT?ACCUSE>>
|
||||
;<COND (<AND <EQUAL? .WRD ,W?OF>
|
||||
<EQUAL? <GET ,P-ITBL ,P-VERB> ,ACT?ACCUSE>>
|
||||
<PUT ,P-LEXV .PTR ,W?WITH>
|
||||
<SET WRD ,W?WITH>)>
|
||||
<COND ;(<AND <EQUAL? .WRD ,W?PERIOD>
|
||||
|
@ -316,7 +316,7 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<SET LW 0>)
|
||||
(<EQUAL? .WRD ,W?AND ,W?COMMA> <SET ANDFLG T>)
|
||||
(<EQUAL? .WRD ,W?ALL ,W?ONE ,W?BOTH>
|
||||
<COND (<==? .NW ,W?OF>
|
||||
<COND (<EQUAL? .NW ,W?OF>
|
||||
<SETG P-LEN <- ,P-LEN 1>>
|
||||
<SET PTR <+ .PTR ,P-LEXELEN>>)>)
|
||||
(<OR <EQUAL? .WRD ,W?THEN ,W?PERIOD>
|
||||
|
@ -339,7 +339,7 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
(<AND <WT? .WRD
|
||||
,PS?ADJECTIVE
|
||||
,P1?ADJECTIVE>
|
||||
<NOT <==? .NW 0>>
|
||||
<NOT <EQUAL? .NW 0>>
|
||||
<WT? .NW ,PS?OBJECT>>)
|
||||
(<AND <NOT .ANDFLG>
|
||||
<NOT <EQUAL? .NW ,W?BUT ,W?EXCEPT>>
|
||||
|
@ -375,7 +375,7 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<COND (<L? <SET CNT <- .CNT 1>> 0> <RETURN>)
|
||||
(T
|
||||
<SET CHR <GETB ,P-INBUF .BPTR>>
|
||||
<COND (<==? .CHR 58>
|
||||
<COND (<EQUAL? .CHR 58>
|
||||
<SET TIM .SUM>
|
||||
<SET SUM 0>)
|
||||
(<G? .SUM 10000> <RFALSE>)
|
||||
|
@ -400,19 +400,19 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<SETG P-OFLAG <>>
|
||||
<COND
|
||||
(<AND <NOT <ZERO? <SET VERB <GET ,P-ITBL ,P-VERB>>>>
|
||||
<NOT <==? .VERB <GET ,P-OTBL ,P-VERB>>>>
|
||||
<NOT <EQUAL? .VERB <GET ,P-OTBL ,P-VERB>>>>
|
||||
<RFALSE>)
|
||||
(<==? ,P-NCN 2>
|
||||
(<EQUAL? ,P-NCN 2>
|
||||
<RFALSE>)
|
||||
(<==? <GET ,P-OTBL ,P-NC1> 1>
|
||||
<COND (<OR <==? <SET TEMP <GET ,P-ITBL ,P-PREP1>>
|
||||
(<EQUAL? <GET ,P-OTBL ,P-NC1> 1>
|
||||
<COND (<OR <EQUAL? <SET TEMP <GET ,P-ITBL ,P-PREP1>>
|
||||
<GET ,P-OTBL ,P-PREP1>>
|
||||
<ZERO? .TEMP>>
|
||||
<PUT ,P-OTBL ,P-NC1 <GET ,P-ITBL ,P-NC1>>
|
||||
<PUT ,P-OTBL ,P-NC1L <GET ,P-ITBL ,P-NC1L>>)
|
||||
(T <RFALSE>)>)
|
||||
(<==? <GET ,P-OTBL ,P-NC2> 1>
|
||||
<COND (<OR <==? <SET TEMP <GET ,P-ITBL ,P-PREP1>>
|
||||
(<EQUAL? <GET ,P-OTBL ,P-NC2> 1>
|
||||
<COND (<OR <EQUAL? <SET TEMP <GET ,P-ITBL ,P-PREP1>>
|
||||
<GET ,P-OTBL ,P-PREP2>>
|
||||
<ZERO? .TEMP>>
|
||||
<PUT ,P-OTBL ,P-NC2 <GET ,P-ITBL ,P-NC1>>
|
||||
|
@ -421,12 +421,12 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
(T <RFALSE>)>)
|
||||
(,P-ACLAUSE
|
||||
<COND
|
||||
(<NOT <==? ,P-NCN 1>> <SETG P-ACLAUSE <>> <RFALSE>)
|
||||
(<NOT <EQUAL? ,P-NCN 1>> <SETG P-ACLAUSE <>> <RFALSE>)
|
||||
(T
|
||||
<SET BEG <GET ,P-ITBL ,P-NC1>>
|
||||
<SET END <GET ,P-ITBL ,P-NC1L>>
|
||||
<REPEAT ()
|
||||
<COND (<==? .BEG .END>
|
||||
<COND (<EQUAL? .BEG .END>
|
||||
<COND (.ADJ
|
||||
<ACLAUSE-WIN .ADJ>
|
||||
<RETURN>)
|
||||
|
@ -438,7 +438,7 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<NOT .ADJ>>
|
||||
<SET ADJ .WRD>)
|
||||
(<OR <BTST <GETB .WRD ,P-PSOFF> ,PS?OBJECT>
|
||||
<==? .WRD ,W?ONE>>
|
||||
<EQUAL? .WRD ,W?ONE>>
|
||||
<COND (<NOT <EQUAL? .WRD ,P-ANAM ,W?ONE>> <RFALSE>)
|
||||
(T
|
||||
<ACLAUSE-WIN .ADJ>
|
||||
|
@ -454,7 +454,7 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<ROUTINE ACLAUSE-WIN (ADJ)
|
||||
<SETG P-CCSRC ,P-OTBL>
|
||||
<CLAUSE-COPY ,P-ACLAUSE <+ ,P-ACLAUSE 1> .ADJ>
|
||||
<AND <NOT <==? <GET ,P-OTBL ,P-NC2> 0>>
|
||||
<AND <NOT <EQUAL? <GET ,P-OTBL ,P-NC2> 0>>
|
||||
<SETG P-NCN 2>>
|
||||
<SETG P-ACLAUSE <>>
|
||||
<RTRUE>>
|
||||
|
@ -524,14 +524,14 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<SET NUM <BAND <GETB .SYN ,P-SBITS> ,P-SONUMS>>
|
||||
<COND (<G? ,P-NCN .NUM> T)
|
||||
(<AND <NOT <L? .NUM 1>>
|
||||
<0? ,P-NCN>
|
||||
<ZERO? ,P-NCN>
|
||||
<OR <ZERO? <SET PREP <GET ,P-ITBL ,P-PREP1>>>
|
||||
<==? .PREP <GETB .SYN ,P-SPREP1>>>>
|
||||
<EQUAL? .PREP <GETB .SYN ,P-SPREP1>>>>
|
||||
<SET DRIVE1 .SYN>)
|
||||
(<==? <GETB .SYN ,P-SPREP1> <GET ,P-ITBL ,P-PREP1>>
|
||||
<COND (<AND <==? .NUM 2> <==? ,P-NCN 1>>
|
||||
(<EQUAL? <GETB .SYN ,P-SPREP1> <GET ,P-ITBL ,P-PREP1>>
|
||||
<COND (<AND <EQUAL? .NUM 2> <EQUAL? ,P-NCN 1>>
|
||||
<SET DRIVE2 .SYN>)
|
||||
(<==? <GETB .SYN ,P-SPREP2> <GET ,P-ITBL ,P-PREP2>>
|
||||
(<EQUAL? <GETB .SYN ,P-SPREP2> <GET ,P-ITBL ,P-PREP2>>
|
||||
<SYNTAX-FOUND .SYN>
|
||||
<RTRUE>)>)>
|
||||
<COND (<DLESS? LEN 1>
|
||||
|
@ -559,13 +559,13 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
(<EQUAL? .VERB ,ACT?FIND ;,ACT?WHAT>
|
||||
<TELL "I can't answer that question." CR>
|
||||
<RFALSE>)
|
||||
(<NOT <==? ,WINNER ,PROTAGONIST>>
|
||||
(<NOT <EQUAL? ,WINNER ,PROTAGONIST>>
|
||||
<CANT-ORPHAN>)
|
||||
(T
|
||||
<ORPHAN .DRIVE1 .DRIVE2>
|
||||
<TELL "What do you want to ">
|
||||
<SET TMP <GET ,P-OTBL ,P-VERBN>>
|
||||
<COND (<==? .TMP 0> <TELL "tell">)
|
||||
<COND (<EQUAL? .TMP 0> <TELL "tell">)
|
||||
(<ZERO? <GETB ,P-VTBL 2>>
|
||||
<PRINTB <GET .TMP 0>>)
|
||||
(T
|
||||
|
@ -590,7 +590,7 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<REPEAT ()
|
||||
<COND (<IGRTR? CNT ,P-ITBLLEN> <RETURN>)
|
||||
(T <PUT ,P-OTBL .CNT <GET ,P-ITBL .CNT>>)>>
|
||||
<COND (<==? ,P-NCN 2> <CLAUSE-COPY ,P-NC2 ,P-NC2L>)>
|
||||
<COND (<EQUAL? ,P-NCN 2> <CLAUSE-COPY ,P-NC2 ,P-NC2L>)>
|
||||
<COND (<NOT <L? ,P-NCN 1>> <CLAUSE-COPY ,P-NC1 ,P-NC1L>)>
|
||||
<COND (.D1
|
||||
<PUT ,P-OTBL ,P-PREP1 <GETB .D1 ,P-SPREP1>>
|
||||
|
@ -604,19 +604,19 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
|
||||
<ROUTINE BUFFER-PRINT (BEG END CP "AUX" (NOSP <>) WRD (FIRST?? T) (PN <>))
|
||||
<REPEAT ()
|
||||
<COND (<==? .BEG .END> <RETURN>)
|
||||
<COND (<EQUAL? .BEG .END> <RETURN>)
|
||||
(T
|
||||
<COND (.NOSP <SET NOSP <>>)
|
||||
(T <TELL " ">)>
|
||||
<COND (<==? <SET WRD <GET .BEG 0>> ,W?PERIOD>
|
||||
<COND (<EQUAL? <SET WRD <GET .BEG 0>> ,W?PERIOD>
|
||||
<SET NOSP T>)
|
||||
(T
|
||||
<COND (<AND .FIRST?? <NOT .PN> .CP>
|
||||
<TELL "the ">)>
|
||||
<COND (<OR ,P-OFLAG ,P-MERGED> <PRINTB .WRD>)
|
||||
(<AND <==? .WRD ,W?IT>
|
||||
(<AND <EQUAL? .WRD ,W?IT>
|
||||
<ACCESSIBLE? ,P-IT-OBJECT>
|
||||
;<==? ,P-IT-LOC ,HERE>>
|
||||
;<EQUAL? ,P-IT-LOC ,HERE>>
|
||||
<PRINTD ,P-IT-OBJECT>)
|
||||
(T
|
||||
<WORD-PRINT <GETB .BEG 2>
|
||||
|
@ -629,7 +629,7 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<WORD-PRINT <- <GETB .PTR 2> 1> <+ <GETB .PTR 3> 1>>>
|
||||
|
||||
<ROUTINE PREP-PRINT (PREP "AUX" WRD)
|
||||
<COND (<NOT <0? .PREP>>
|
||||
<COND (<NOT <ZERO? .PREP>>
|
||||
<TELL " ">
|
||||
<COND (<EQUAL? .PREP ,PR?THROUGH>
|
||||
<TELL "through">)
|
||||
|
@ -645,7 +645,7 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<REST ,P-OCLAUSE
|
||||
<+ <* <GET ,P-OCLAUSE ,P-MATCHLEN> ,P-LEXELEN> 2>>>
|
||||
<REPEAT ()
|
||||
<COND (<==? .BEG .END>
|
||||
<COND (<EQUAL? .BEG .END>
|
||||
<PUT ,P-OTBL
|
||||
.EPTR
|
||||
<REST ,P-OCLAUSE
|
||||
|
@ -653,7 +653,7 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
2>>>
|
||||
<RETURN>)
|
||||
(T
|
||||
<COND (<AND .INSRT <==? ,P-ANAM <GET .BEG 0>>>
|
||||
<COND (<AND .INSRT <EQUAL? ,P-ANAM <GET .BEG 0>>>
|
||||
<CLAUSE-ADD .INSRT>)>
|
||||
<CLAUSE-ADD <GET .BEG 0>>)>
|
||||
<SET BEG <REST .BEG ,P-WORDLEN>>>>
|
||||
|
@ -669,7 +669,7 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<SET SIZE <* <GET ,PREPOSITIONS 0> 2>>
|
||||
<REPEAT ()
|
||||
<COND (<IGRTR? CNT .SIZE> <RFALSE>)
|
||||
(<==? <GET ,PREPOSITIONS .CNT> .PREP>
|
||||
(<EQUAL? <GET ,PREPOSITIONS .CNT> .PREP>
|
||||
<RETURN <GET ,PREPOSITIONS <- .CNT 1>>>)>>>
|
||||
|
||||
<ROUTINE SYNTAX-FOUND (SYN)
|
||||
|
@ -679,19 +679,19 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<GLOBAL P-GWIMBIT 0>
|
||||
|
||||
<ROUTINE GWIM (GBIT LBIT PREP "AUX" OBJ)
|
||||
<COND (<==? .GBIT ,RLANDBIT>
|
||||
<COND (<EQUAL? .GBIT ,RLANDBIT>
|
||||
<RETURN ,ROOMS>)>
|
||||
<SETG P-GWIMBIT .GBIT>
|
||||
<SETG P-SLOCBITS .LBIT>
|
||||
<PUT ,P-MERGE ,P-MATCHLEN 0>
|
||||
<COND (<GET-OBJECT ,P-MERGE <>>
|
||||
<SETG P-GWIMBIT 0>
|
||||
<COND (<==? <GET ,P-MERGE ,P-MATCHLEN> 1>
|
||||
<COND (<EQUAL? <GET ,P-MERGE ,P-MATCHLEN> 1>
|
||||
<SET OBJ <GET ,P-MERGE 1>>
|
||||
<TELL "(">
|
||||
<COND (<NOT <0? .PREP>>
|
||||
<COND (<NOT <ZERO? .PREP>>
|
||||
<PRINTB <SET PREP <PREP-FIND .PREP>>>
|
||||
<COND (<==? .PREP ,W?OUT>
|
||||
<COND (<EQUAL? .PREP ,W?OUT>
|
||||
<TELL " of">)>
|
||||
<COND (<NOT <FSET? .OBJ ,NARTICLEBIT>>
|
||||
<TELL " the ">)
|
||||
|
@ -702,16 +702,16 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
(T <SETG P-GWIMBIT 0> <RFALSE>)>>
|
||||
|
||||
<ROUTINE SNARF-OBJECTS ("AUX" PTR)
|
||||
<COND (<NOT <==? <SET PTR <GET ,P-ITBL ,P-NC1>> 0>>
|
||||
<COND (<NOT <EQUAL? <SET PTR <GET ,P-ITBL ,P-NC1>> 0>>
|
||||
<SETG P-SLOCBITS <GETB ,P-SYNTAX ,P-SLOC1>>
|
||||
<OR <SNARFEM .PTR <GET ,P-ITBL ,P-NC1L> ,P-PRSO> <RFALSE>>
|
||||
<OR <0? <GET ,P-BUTS ,P-MATCHLEN>>
|
||||
<OR <ZERO? <GET ,P-BUTS ,P-MATCHLEN>>
|
||||
<SETG P-PRSO <BUT-MERGE ,P-PRSO>>>)>
|
||||
<COND (<NOT <==? <SET PTR <GET ,P-ITBL ,P-NC2>> 0>>
|
||||
<COND (<NOT <EQUAL? <SET PTR <GET ,P-ITBL ,P-NC2>> 0>>
|
||||
<SETG P-SLOCBITS <GETB ,P-SYNTAX ,P-SLOC2>>
|
||||
<OR <SNARFEM .PTR <GET ,P-ITBL ,P-NC2L> ,P-PRSI> <RFALSE>>
|
||||
<COND (<NOT <0? <GET ,P-BUTS ,P-MATCHLEN>>>
|
||||
<COND (<==? <GET ,P-PRSI ,P-MATCHLEN> 1>
|
||||
<COND (<NOT <ZERO? <GET ,P-BUTS ,P-MATCHLEN>>>
|
||||
<COND (<EQUAL? <GET ,P-PRSI ,P-MATCHLEN> 1>
|
||||
<SETG P-PRSO <BUT-MERGE ,P-PRSO>>)
|
||||
(T <SETG P-PRSI <BUT-MERGE ,P-PRSI>>)>)>)>
|
||||
<RTRUE>>
|
||||
|
@ -770,12 +770,12 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<PUT .TBL ,P-MATCHLEN 0>
|
||||
<SET WRD <GET .PTR 0>>
|
||||
<REPEAT ()
|
||||
<COND (<==? .PTR .EPTR> <RETURN <GET-OBJECT <OR .BUT .TBL>>>)
|
||||
<COND (<EQUAL? .PTR .EPTR> <RETURN <GET-OBJECT <OR .BUT .TBL>>>)
|
||||
(T
|
||||
<SET NW <GET .PTR ,P-LEXELEN>>
|
||||
<COND (<EQUAL? .WRD ,W?ALL ,W?BOTH>
|
||||
<SETG P-GETFLAGS ,P-ALL>
|
||||
<COND (<==? .NW ,W?OF>
|
||||
<COND (<EQUAL? .NW ,W?OF>
|
||||
<SET PTR <REST .PTR ,P-WORDLEN>>)>)
|
||||
(<EQUAL? .WRD ,W?BUT ,W?EXCEPT>
|
||||
<OR <GET-OBJECT <OR .BUT .TBL>> <RFALSE>>
|
||||
|
@ -784,7 +784,7 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
(<EQUAL? .WRD ,W?A ,W?ONE>
|
||||
<COND (<NOT ,P-ADJ>
|
||||
<SETG P-GETFLAGS ,P-ONE>
|
||||
<COND (<==? .NW ,W?OF>
|
||||
<COND (<EQUAL? .NW ,W?OF>
|
||||
<SET PTR <REST .PTR ,P-WORDLEN>>)>)
|
||||
(T
|
||||
<SETG P-NAM ,P-ONEOBJ>
|
||||
|
@ -796,8 +796,8 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
T)
|
||||
(<WT? .WRD ,PS?BUZZ-WORD>)
|
||||
(<EQUAL? .WRD ,W?AND ,W?COMMA>)
|
||||
(<==? .WRD ,W?OF>
|
||||
<COND (<0? ,P-GETFLAGS>
|
||||
(<EQUAL? .WRD ,W?OF>
|
||||
<COND (<ZERO? ,P-GETFLAGS>
|
||||
<SETG P-GETFLAGS ,P-INHIBIT>)>)
|
||||
(<AND <SET WV <WT? .WRD ,PS?ADJECTIVE ,P1?ADJECTIVE>>
|
||||
<ADJ-CHECK .WRD>>
|
||||
|
@ -806,7 +806,7 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
(<WT? .WRD ,PS?OBJECT ,P1?OBJECT>
|
||||
<SETG P-NAM .WRD>
|
||||
<SETG P-ONEOBJ .WRD>)>)>
|
||||
<COND (<NOT <==? .PTR .EPTR>>
|
||||
<COND (<NOT <EQUAL? .PTR .EPTR>>
|
||||
<SET PTR <REST .PTR ,P-WORDLEN>>
|
||||
<SET WRD .NW>)>>>
|
||||
|
||||
|
@ -850,12 +850,12 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<SETG P-ADJ <>>)>
|
||||
<COND (<AND <NOT ,P-NAM>
|
||||
<NOT ,P-ADJ>
|
||||
<NOT <==? ,P-GETFLAGS ,P-ALL>>
|
||||
<0? ,P-GWIMBIT>>
|
||||
<NOT <EQUAL? ,P-GETFLAGS ,P-ALL>>
|
||||
<ZERO? ,P-GWIMBIT>>
|
||||
<COND (.VRB
|
||||
<TELL ,NOUN-MISSING CR>)>
|
||||
<RFALSE>)>
|
||||
<COND (<OR <NOT <==? ,P-GETFLAGS ,P-ALL>> <0? ,P-SLOCBITS>>
|
||||
<COND (<OR <NOT <EQUAL? ,P-GETFLAGS ,P-ALL>> <ZERO? ,P-SLOCBITS>>
|
||||
<SETG P-SLOCBITS -1>)>
|
||||
<SETG P-TABLE .TBL>
|
||||
<PROG ()
|
||||
|
@ -877,16 +877,16 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<SET LEN <- <GET .TBL ,P-MATCHLEN> .TLEN>>
|
||||
<COND (<BTST ,P-GETFLAGS ,P-ALL> ;<AND * <NOT <EQUAL? .LEN 0>>>)
|
||||
(<AND <BTST ,P-GETFLAGS ,P-ONE>
|
||||
<NOT <0? .LEN>>>
|
||||
<COND (<NOT <==? .LEN 1>>
|
||||
<NOT <ZERO? .LEN>>>
|
||||
<COND (<NOT <EQUAL? .LEN 1>>
|
||||
<PUT .TBL 1 <GET .TBL <RANDOM .LEN>>>
|
||||
<TELL "(How about the ">
|
||||
<PRINTD <GET .TBL 1>>
|
||||
<TELL "?)" CR>)>
|
||||
<PUT .TBL ,P-MATCHLEN 1>)
|
||||
(<OR <G? .LEN 1>
|
||||
<AND <0? .LEN> <NOT <==? ,P-SLOCBITS -1>>>>
|
||||
<COND (<==? ,P-SLOCBITS -1>
|
||||
<AND <ZERO? .LEN> <NOT <EQUAL? ,P-SLOCBITS -1>>>>
|
||||
<COND (<EQUAL? ,P-SLOCBITS -1>
|
||||
<SETG P-SLOCBITS .XBITS>
|
||||
<SET OLEN .LEN>
|
||||
<PUT .TBL
|
||||
|
@ -894,9 +894,9 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<- <GET .TBL ,P-MATCHLEN> .LEN>>
|
||||
<AGAIN>)
|
||||
(T
|
||||
<COND (<0? .LEN> <SET LEN .OLEN>)>
|
||||
<COND (<ZERO? .LEN> <SET LEN .OLEN>)>
|
||||
<COND (<AND ;.VRB ;".VRB added 8/14/84 by JW"
|
||||
<NOT <==? ,WINNER ,PROTAGONIST>>>
|
||||
<NOT <EQUAL? ,WINNER ,PROTAGONIST>>>
|
||||
<CANT-ORPHAN>
|
||||
;<SETG P-NAM <>>
|
||||
;<SETG P-ADJ <>>
|
||||
|
@ -904,7 +904,7 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
(<AND .VRB ,P-NAM>
|
||||
<WHICH-PRINT .TLEN .LEN .TBL>
|
||||
<SETG P-ACLAUSE
|
||||
<COND (<==? .TBL ,P-PRSO> ,P-NC1)
|
||||
<COND (<EQUAL? .TBL ,P-PRSO> ,P-NC1)
|
||||
(T ,P-NC2)>>
|
||||
<SETG P-AADJ ,P-ADJ>
|
||||
<SETG P-ANAM ,P-NAM>
|
||||
|
@ -915,7 +915,7 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<SETG P-NAM <>>
|
||||
<SETG P-ADJ <>>
|
||||
<RFALSE>)>)>
|
||||
<COND (<AND <0? .LEN>
|
||||
<COND (<AND <ZERO? .LEN>
|
||||
.GCHECK>
|
||||
<COND (.VRB
|
||||
;<SETG P-SLOCBITS .XBITS>
|
||||
|
@ -936,7 +936,7 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<SETG P-NAM <>>
|
||||
<SETG P-ADJ <>>
|
||||
<RFALSE>)
|
||||
(<0? .LEN>
|
||||
(<ZERO? .LEN>
|
||||
<SET GCHECK T>
|
||||
<AGAIN>)>
|
||||
<SETG P-SLOCBITS .XBITS>
|
||||
|
@ -1013,7 +1013,7 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<SET RLEN .LEN>
|
||||
<TELL "Which">
|
||||
<COND (<OR ,P-OFLAG ,P-MERGED> <TELL " "> <PRINTB ,P-NAM>)
|
||||
(<==? .TBL ,P-PRSO>
|
||||
(<EQUAL? .TBL ,P-PRSO>
|
||||
<CLAUSE-PRINT ,P-NC1 ,P-NC1L <>>)
|
||||
(T <CLAUSE-PRINT ,P-NC2 ,P-NC2L <>>)>
|
||||
<TELL " do you mean, ">
|
||||
|
@ -1021,8 +1021,8 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<SET TLEN <+ .TLEN 1>>
|
||||
<SET OBJ <GET .TBL .TLEN>>
|
||||
<TELL "the " D .OBJ>
|
||||
<COND (<==? .LEN 2>
|
||||
<COND (<NOT <==? .RLEN 2>> <TELL ",">)>
|
||||
<COND (<EQUAL? .LEN 2>
|
||||
<COND (<NOT <EQUAL? .RLEN 2>> <TELL ",">)>
|
||||
<TELL " or ">)
|
||||
(<G? .LEN 2> <TELL ", ">)>
|
||||
<COND (<L? <SET LEN <- .LEN 1>> 1>
|
||||
|
@ -1042,7 +1042,7 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<SET RMGL <- </ <PTSIZE .RMG> 4> 1>>
|
||||
<SET CNT 0>
|
||||
<REPEAT ()
|
||||
<COND (<==? ,P-NAM <GET .RMG <* .CNT 2>>>
|
||||
<COND (<EQUAL? ,P-NAM <GET .RMG <* .CNT 2>>>
|
||||
<SETG LAST-PSEUDO-LOC ,HERE>
|
||||
<PUTP ,PSEUDO-OBJECT
|
||||
,P?ACTION
|
||||
|
@ -1054,12 +1054,12 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<OBJ-FOUND ,PSEUDO-OBJECT .TBL>
|
||||
<RETURN>)
|
||||
(<IGRTR? CNT .RMGL> <RETURN>)>>)>
|
||||
<COND (<==? <GET .TBL ,P-MATCHLEN> .LEN>
|
||||
<COND (<EQUAL? <GET .TBL ,P-MATCHLEN> .LEN>
|
||||
<SETG P-SLOCBITS -1>
|
||||
<SETG P-TABLE .TBL>
|
||||
<DO-SL ,GLOBAL-OBJECTS 1 1>
|
||||
<SETG P-SLOCBITS .OBITS>
|
||||
;<COND (<AND <0? <GET .TBL ,P-MATCHLEN>>
|
||||
;<COND (<AND <ZERO? <GET .TBL ,P-MATCHLEN>>
|
||||
<EQUAL? ,PRSA ,V?LOOK-INSIDE ,V?SEARCH ,V?EXAMINE>>
|
||||
<DO-SL ,ROOMS 1 1>)>)>>
|
||||
|
||||
|
@ -1082,11 +1082,11 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<ROUTINE SEARCH-LIST (OBJ TBL LVL "AUX" FLS NOBJ)
|
||||
<COND (<SET OBJ <FIRST? .OBJ>>
|
||||
<REPEAT ()
|
||||
<COND (<AND <NOT <==? .LVL ,P-SRCBOT>>
|
||||
<COND (<AND <NOT <EQUAL? .LVL ,P-SRCBOT>>
|
||||
<GETPT .OBJ ,P?SYNONYM>
|
||||
<THIS-IT? .OBJ .TBL>>
|
||||
<OBJ-FOUND .OBJ .TBL>)>
|
||||
<COND (<AND <OR <NOT <==? .LVL ,P-SRCTOP>>
|
||||
<COND (<AND <OR <NOT <EQUAL? .LVL ,P-SRCTOP>>
|
||||
<FSET? .OBJ ,SEARCHBIT>
|
||||
<FSET? .OBJ ,SURFACEBIT>>
|
||||
<SET NOBJ <FIRST? .OBJ>>>
|
||||
|
@ -1173,7 +1173,7 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<SET LOSS 2>)>
|
||||
<COND (.LOSS
|
||||
<TELL "I can't use multiple ">
|
||||
<COND (<==? .LOSS 2> <TELL "in">)>
|
||||
<COND (<EQUAL? .LOSS 2> <TELL "in">)>
|
||||
<TELL "direct objects with \"">
|
||||
<SET TMP <GET ,P-ITBL ,P-VERBN>>
|
||||
<COND (<ZERO? .TMP> <TELL "tell">)
|
||||
|
@ -1190,12 +1190,12 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<COND (<NOT <L? .SIZE 0>> <SET CNT 0>)
|
||||
(ELSE <SET SIZE <GET .TBL 0>>)>
|
||||
<REPEAT ()
|
||||
<COND (<==? .ITM <GET .TBL .CNT>> <RTRUE>)
|
||||
<COND (<EQUAL? .ITM <GET .TBL .CNT>> <RTRUE>)
|
||||
(<IGRTR? CNT .SIZE> <RFALSE>)>>>
|
||||
|
||||
<ROUTINE ZMEMQB (ITM TBL SIZE "AUX" (CNT 0))
|
||||
<REPEAT ()
|
||||
<COND (<==? .ITM <GETB .TBL .CNT>> <RTRUE>)
|
||||
<COND (<EQUAL? .ITM <GETB .TBL .CNT>> <RTRUE>)
|
||||
(<IGRTR? CNT .SIZE> <RFALSE>)>>>
|
||||
|
||||
<GLOBAL ALWAYS-LIT <>>
|
||||
|
@ -1213,7 +1213,7 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<PUT ,P-MERGE ,P-MATCHLEN 0>
|
||||
<SETG P-TABLE ,P-MERGE>
|
||||
<SETG P-SLOCBITS -1>
|
||||
<COND (<==? .OHERE .RM>
|
||||
<COND (<EQUAL? .OHERE .RM>
|
||||
<DO-SL ,WINNER 1 1>
|
||||
<COND (<AND <NOT <EQUAL? ,WINNER ,PLAYER>>
|
||||
<IN? ,PLAYER .RM>>
|
||||
|
@ -1226,13 +1226,13 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
|
||||
;<ROUTINE PRSO-PRINT ("AUX" PTR)
|
||||
<COND (<OR ,P-MERGED
|
||||
<==? <GET <SET PTR <GET ,P-ITBL ,P-NC1>> 0> ,W?IT>>
|
||||
<EQUAL? <GET <SET PTR <GET ,P-ITBL ,P-NC1>> 0> ,W?IT>>
|
||||
<TELL " " D ,PRSO>)
|
||||
(T <BUFFER-PRINT .PTR <GET ,P-ITBL ,P-NC1L> <>>)>>
|
||||
|
||||
;<ROUTINE PRSI-PRINT ("AUX" PTR)
|
||||
<COND (<OR ,P-MERGED
|
||||
<==? <GET <SET PTR <GET ,P-ITBL ,P-NC2>> 0> ,W?IT>>
|
||||
<EQUAL? <GET <SET PTR <GET ,P-ITBL ,P-NC2>> 0> ,W?IT>>
|
||||
<TELL " " D ,PRSO>)
|
||||
(T <BUFFER-PRINT .PTR <GET ,P-ITBL ,P-NC2L> <>>)>>
|
||||
|
||||
|
@ -1249,6 +1249,6 @@ with 'P-'. Local variables are not restricted in any way."
|
|||
<OR <NOT <SET SYNS <GETPT .OBJ ,P?ADJECTIVE>>>
|
||||
<NOT <ZMEMQB ,P-ADJ .SYNS <- <PTSIZE .SYNS> 1>>>>>
|
||||
<RFALSE>)
|
||||
(<AND <NOT <0? ,P-GWIMBIT>> <NOT <FSET? .OBJ ,P-GWIMBIT>>>
|
||||
(<AND <NOT <ZERO? ,P-GWIMBIT>> <NOT <FSET? .OBJ ,P-GWIMBIT>>>
|
||||
<RFALSE>)>
|
||||
<RTRUE>>
|
26
sorcerer.errors
Normal file
26
sorcerer.errors
Normal file
|
@ -0,0 +1,26 @@
|
|||
Assembling SORCERER.ZAP.5 on Thursday, April 2, 1987 15:18:03
|
||||
Release(last was 18): 0
|
||||
|
||||
64 Inserting SORCERERDAT.ZAP.5 (23895 bytes)
|
||||
23959 Inserting MISC.ZAP.5 (1629 bytes)
|
||||
25588 Inserting GPARSER.ZAP.5 (7076 bytes)
|
||||
32664 Inserting SYNTAX.ZAP.5 (0 bytes)
|
||||
32664 Inserting VERBS.ZAP.6 (23662 bytes)
|
||||
56326 Inserting GLOBALS.ZAP.5 (8411 bytes)
|
||||
64737 Inserting GUILD.ZAP.5 (5972 bytes)
|
||||
70709 Inserting BELBOZ.ZAP.5 (8556 bytes)
|
||||
79265 Inserting FORT.ZAP.5 (1914 bytes)
|
||||
81179 Inserting PARK.ZAP.5 (5823 bytes)
|
||||
87002 Inserting MAZE.ZAP.5 (3647 bytes)
|
||||
90649 Inserting COAL.ZAP.5 (6216 bytes)
|
||||
96865 Inserting END.ZAP.6 (6754 bytes)
|
||||
103619 Inserting SORCERERSTR.ZAP.5 (18599 bytes)
|
||||
255 objects.
|
||||
207 globals.
|
||||
1013 word vocabulary.
|
||||
|
||||
122218 bytes (120K).
|
||||
22853 bytes of preload.
|
||||
11974 bytes of impure.
|
||||
|
||||
Outputting symbol tables
|
1145
sorcerer.record
Normal file
1145
sorcerer.record
Normal file
File diff suppressed because it is too large
Load diff
44
sorcerer.xzap
Normal file
44
sorcerer.xzap
Normal file
|
@ -0,0 +1,44 @@
|
|||
|
||||
.INSERT "SORCERERFREQ"
|
||||
.INSERT "SORCERERDAT" ; DATA IS IN THIS FILE
|
||||
|
||||
|
||||
.INSERT "MISC"
|
||||
|
||||
|
||||
.INSERT "GPARSER"
|
||||
|
||||
|
||||
.INSERT "SYNTAX"
|
||||
|
||||
|
||||
.INSERT "VERBS"
|
||||
|
||||
|
||||
.INSERT "GLOBALS"
|
||||
|
||||
|
||||
.INSERT "GUILD"
|
||||
|
||||
|
||||
.INSERT "BELBOZ"
|
||||
|
||||
|
||||
.INSERT "FORT"
|
||||
|
||||
|
||||
.INSERT "PARK"
|
||||
|
||||
|
||||
.INSERT "MAZE"
|
||||
|
||||
|
||||
.INSERT "COAL"
|
||||
|
||||
|
||||
.INSERT "END"
|
||||
|
||||
|
||||
.INSERT "SORCERERSTR"
|
||||
|
||||
.END
|
42
sorcerer.zap
Normal file
42
sorcerer.zap
Normal file
|
@ -0,0 +1,42 @@
|
|||
|
||||
.INSERT "SORCERERDAT" ; DATA IS IN THIS FILE
|
||||
|
||||
.INSERT "MISC"
|
||||
|
||||
|
||||
.INSERT "GPARSER"
|
||||
|
||||
|
||||
.INSERT "SYNTAX"
|
||||
|
||||
|
||||
.INSERT "VERBS"
|
||||
|
||||
|
||||
.INSERT "GLOBALS"
|
||||
|
||||
|
||||
.INSERT "GUILD"
|
||||
|
||||
|
||||
.INSERT "BELBOZ"
|
||||
|
||||
|
||||
.INSERT "FORT"
|
||||
|
||||
|
||||
.INSERT "PARK"
|
||||
|
||||
|
||||
.INSERT "MAZE"
|
||||
|
||||
|
||||
.INSERT "COAL"
|
||||
|
||||
|
||||
.INSERT "END"
|
||||
|
||||
|
||||
.INSERT "SORCERERSTR"
|
||||
|
||||
.END
|
10
sorcerer.zil
10
sorcerer.zil
|
@ -12,24 +12,20 @@ OFF!-INITIAL
|
|||
ENABLE!-INITIAL
|
||||
DISABLE!-INITIAL
|
||||
|
||||
<COND (<GASSIGNED? MUDDLE>
|
||||
<BLOAT 90000 0 0 3300 0 0 0 0 0 256>)>
|
||||
|
||||
<SNAME "SORCERER">
|
||||
|
||||
<SETG ZORK-NUMBER 5>
|
||||
|
||||
<SET REDEFINE T>
|
||||
|
||||
<OR <GASSIGNED? ZILCH>
|
||||
<SETG WBREAKS <STRING !\" !,WBREAKS>>>
|
||||
|
||||
<OR <GASSIGNED? INSERT-CRUFTY>
|
||||
<DEFINE INSERT-CRUFTY (STR) <INSERT-FILE .STR T>>>
|
||||
|
||||
<COND (<GASSIGNED? PREDGEN>
|
||||
<ID 0>)>
|
||||
|
||||
<INSERT-FILE "MISC" T>
|
||||
<INSERT-FILE "PARSER" T>
|
||||
<INSERT-FILE "GPARSER" T>
|
||||
<INSERT-FILE "SYNTAX" T>
|
||||
<INSERT-FILE "VERBS" T>
|
||||
<INSERT-FILE "GLOBALS" T>
|
||||
|
|
BIN
sorcerer.zip
BIN
sorcerer.zip
Binary file not shown.
15991
sorcererdat.zap
Normal file
15991
sorcererdat.zap
Normal file
File diff suppressed because it is too large
Load diff
200
sorcererfreq.xzap
Normal file
200
sorcererfreq.xzap
Normal file
|
@ -0,0 +1,200 @@
|
|||
.FSTR FSTR?1,"the " ;1964 983
|
||||
.FSTR FSTR?2,"The " ;858 287
|
||||
.FSTR FSTR?3,", " ;759 760
|
||||
.FSTR FSTR?4,"You " ;726 243
|
||||
.FSTR FSTR?5,"and " ;704 353
|
||||
.FSTR FSTR?6,"you " ;550 276
|
||||
.FSTR FSTR?7,"of " ;509 510
|
||||
.FSTR FSTR?8,"your " ;459 154
|
||||
.FSTR FSTR?9,". " ;419 420
|
||||
.FSTR FSTR?10,"is " ;407 408
|
||||
.FSTR FSTR?11,"to " ;378 379
|
||||
.FSTR FSTR?12,"with " ;297 100
|
||||
.FSTR FSTR?13,"can't " ;290 59
|
||||
.FSTR FSTR?14,"from " ;264 89
|
||||
.FSTR FSTR?15,"that " ;261 88
|
||||
.FSTR FSTR?16,"are " ;246 124
|
||||
.FSTR FSTR?17,"spell " ;228 58
|
||||
.FSTR FSTR?18,"into " ;219 74
|
||||
.FSTR FSTR?19,"This " ;208 53
|
||||
.FSTR FSTR?20,"in " ;192 193
|
||||
.FSTR FSTR?21,"There " ;155 32
|
||||
.FSTR FSTR?22,"have " ;153 52
|
||||
.FSTR FSTR?23,"for " ;148 75
|
||||
.FSTR FSTR?24,"about " ;140 36
|
||||
.FSTR FSTR?25,"this " ;135 46
|
||||
.FSTR FSTR?26,"Your " ;132 34
|
||||
.FSTR FSTR?27,"already " ;126 22
|
||||
.FSTR FSTR?28,"It's " ;125 26
|
||||
.FSTR FSTR?29,"which " ;124 32
|
||||
.FSTR FSTR?30,"A " ;120 121
|
||||
.FSTR FSTR?31,"There's " ;120 16
|
||||
.FSTR FSTR?32,"Unfortunately" ;120 11
|
||||
.FSTR FSTR?33,"around " ;115 24
|
||||
.FSTR FSTR?34,"seems " ;112 29
|
||||
.FSTR FSTR?35,"leads " ;104 27
|
||||
.FSTR FSTR?36,"It " ;102 52
|
||||
.FSTR FSTR?37,"through " ;102 18
|
||||
.FSTR FSTR?38,"Guild " ;100 21
|
||||
.FSTR FSTR?39,"Enchanters " ;100 11
|
||||
.FSTR FSTR?40,"You're " ;98 15
|
||||
.FSTR FSTR?41,"but " ;96 49
|
||||
.FSTR FSTR?42,"nothing " ;96 17
|
||||
.FSTR FSTR?43,"spell" ;93 32
|
||||
.FSTR FSTR?44,"small " ;92 24
|
||||
.FSTR FSTR?45,"center " ;90 19
|
||||
.FSTR FSTR?46,"Belboz " ;90 16
|
||||
.FSTR FSTR?47,"river " ;88 23
|
||||
.FSTR FSTR?48,"here" ;84 43
|
||||
.FSTR FSTR?49,"as " ;83 84
|
||||
.FSTR FSTR?50,"Enchanters" ;81 10
|
||||
.FSTR FSTR?51,"out " ;80 41
|
||||
.FSTR FSTR?52,"gnome " ;80 21
|
||||
.FSTR FSTR?53,"moment " ;80 17
|
||||
.FSTR FSTR?54,"before " ;80 17
|
||||
.FSTR FSTR?55,"Circle " ;78 14
|
||||
.FSTR FSTR?56,"can " ;76 39
|
||||
.FSTR FSTR?57,"like " ;75 26
|
||||
.FSTR FSTR?58,"an " ;72 73
|
||||
.FSTR FSTR?59,"its " ;72 37
|
||||
.FSTR FSTR?60,"room " ;72 25
|
||||
.FSTR FSTR?61,"would " ;72 19
|
||||
.FSTR FSTR?62,"ancient " ;72 13
|
||||
.FSTR FSTR?63,"Enchanter" ;72 10
|
||||
.FSTR FSTR?64,"scroll " ;70 15
|
||||
.FSTR FSTR?65,"don't " ;70 15
|
||||
.FSTR FSTR?66,"begins " ;70 15
|
||||
.FSTR FSTR?67,"on " ;69 70
|
||||
.FSTR FSTR?68,"down " ;69 24
|
||||
.FSTR FSTR?69,"light " ;68 18
|
||||
.FSTR FSTR?70,"large " ;68 18
|
||||
.FSTR FSTR?71,"it " ;66 67
|
||||
.FSTR FSTR?72,"coal " ;66 23
|
||||
.FSTR FSTR?73,"several " ;66 12
|
||||
.FSTR FSTR?74,"Underground " ;66 7
|
||||
.FSTR FSTR?75,"you" ;65 66
|
||||
.FSTR FSTR?76,"! " ;65 66
|
||||
.FSTR FSTR?77,"potion " ;65 14
|
||||
.FSTR FSTR?78,"Belboz" ;65 14
|
||||
.FSTR FSTR?79,"across " ;65 14
|
||||
.FSTR FSTR?80,"has " ;64 33
|
||||
.FSTR FSTR?81,"water " ;64 17
|
||||
.FSTR FSTR?82,"moment" ;64 17
|
||||
.FSTR FSTR?83,"looks " ;64 17
|
||||
.FSTR FSTR?84,"lies " ;63 22
|
||||
.FSTR FSTR?85,"probably " ;63 10
|
||||
.FSTR FSTR?86,"that" ;62 32
|
||||
.FSTR FSTR?87,"not " ;62 32
|
||||
.FSTR FSTR?88,"by " ;61 62
|
||||
.FSTR FSTR?89,"too " ;60 31
|
||||
.FSTR FSTR?90,"his " ;60 31
|
||||
.FSTR FSTR?91,"here " ;60 21
|
||||
.FSTR FSTR?92,"zorkmid " ;60 11
|
||||
.FSTR FSTR?93,"without " ;60 11
|
||||
.FSTR FSTR?94,"at " ;58 59
|
||||
.FSTR FSTR?95,"over " ;57 20
|
||||
.FSTR FSTR?96,"one " ;56 29
|
||||
|
||||
|
||||
;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
|
364
sorcererstr.zap
Normal file
364
sorcererstr.zap
Normal file
|
@ -0,0 +1,364 @@
|
|||
|
||||
|
||||
; STRINGS ARE DEFINED HERE
|
||||
|
||||
STRBEG::
|
||||
|
||||
.GSTR STR?1,"Not Here"
|
||||
.GSTR STR?2,"Actor"
|
||||
.GSTR STR?3,"Room (M-BEG)"
|
||||
.GSTR STR?4,"Preaction"
|
||||
.GSTR STR?5,"PRSI"
|
||||
.GSTR STR?6,"Container"
|
||||
.GSTR STR?7,"PRSO"
|
||||
.GSTR STR?8,"beginning to tire"
|
||||
.GSTR STR?9,"feeling tired"
|
||||
.GSTR STR?10,"getting more and more tired"
|
||||
.GSTR STR?11,"worn out"
|
||||
.GSTR STR?12,"dead tired"
|
||||
.GSTR STR?13,"so tired you can barely concentrate"
|
||||
.GSTR STR?14,"moving only on your last reserves of strength"
|
||||
.GSTR STR?15,"practically asleep"
|
||||
.GSTR STR?16,"unable to keep your eyes open for more than a few moments at a time"
|
||||
.GSTR STR?17,"about to keel over from exhaustion"
|
||||
.GSTR STR?18,"leave the game"
|
||||
.GSTR STR?19,"restart"
|
||||
.GSTR STR?20,"Charlatan"
|
||||
.GSTR STR?21,"Parlor Magician"
|
||||
.GSTR STR?22,"Novice Enchanter"
|
||||
.GSTR STR?23,"Intermediate Enchanter"
|
||||
.GSTR STR?24,"Senior Enchanter"
|
||||
.GSTR STR?25,"Expert Enchanter"
|
||||
.GSTR STR?26,"Member of the Circle of Enchanters"
|
||||
.GSTR STR?27,"Sorcerer"
|
||||
.GSTR STR?28,"Leader of the Circle of Enchanters"
|
||||
.GSTR STR?29," a transcript of interaction with SORCERER."
|
||||
.GSTR STR?30,"attack"
|
||||
.GSTR STR?31,"Biting"
|
||||
.GSTR STR?32,"drop"
|
||||
.GSTR STR?33,"Hello."
|
||||
.GSTR STR?34,"Good day."
|
||||
.GSTR STR?35,"Nice weather we've been having lately."
|
||||
.GSTR STR?36,"Good-bye."
|
||||
.GSTR STR?37,"Kicking"
|
||||
.GSTR STR?38,"kill"
|
||||
.GSTR STR?39,"This was not a safe place to try jumping. You should have looked before you leaped."
|
||||
.GSTR STR?40,"Trying to break"
|
||||
.GSTR STR?41,"Pushing"
|
||||
.GSTR STR?42,"Playing in this way with"
|
||||
.GSTR STR?43,"Fiddling with"
|
||||
.GSTR STR?44,"Just as you doze off, a wall of water smashes over you!"
|
||||
.GSTR STR?45,"The vilstu potion wears off as you sleep, and you awaken clawing frantically at your chest."
|
||||
.GSTR STR?46,"Before you fall asleep you pass out from the bad air."
|
||||
.GSTR STR?47,"You awake in the middle of the night to find a hellhound gnawing on you."
|
||||
.GSTR STR?48,"Your eyes are barely closed before the snake reaches you."
|
||||
.GSTR STR?49,"You awake to find snakes and beetles crawling all over you."
|
||||
.GSTR STR?50,"Unfortunately, you roll over in the middle of the night. Kaboom!!"
|
||||
.GSTR STR?51,"Locusts pick your bones clean while you sleep."
|
||||
.GSTR STR?52,"During the night the river bank collapses beneath you, throwing you into the turbulent waters."
|
||||
.GSTR STR?53,"You have a nightmare about a ferocious dorn beast. When it begins gnawing on you, you realize that it isn't a dream at all."
|
||||
.GSTR STR?54,"Amazing how difficult it is to sleep while swimming (and vice versa)."
|
||||
.GSTR STR?55,"throw"
|
||||
.GSTR STR?56,"Ooops! You overdid it a little."
|
||||
.GSTR STR?57,"Waving"
|
||||
.GSTR STR?58,"once"
|
||||
.GSTR STR?59,"twice"
|
||||
.GSTR STR?60,"thrice"
|
||||
.GSTR STR?61,"four times"
|
||||
.GSTR STR?62,"many times"
|
||||
.GSTR STR?63,"You materialize in a royal tomb somewhere. Before being devoured by rats, you notice a well-decayed corpse nearby."
|
||||
.GSTR STR?64,"You appear in a strange room. Framed diplomas and wand racks adorn the walls, and a stuffed owl is perched above a trophy case. An incredibly old man with a long white beard spots you. ""Fertilize!"" he cries, pointing a slightly bent wand at you. You turn into a pile of bat guano, a fitting end for a trespasser."
|
||||
.GSTR STR?65,"You appear in the woods behind the Guild Hall. The servants (who should be doing their daily chores) are lazing about, drinking ale and betting on games of Gabber Tumper. To prevent you from reporting their goofing off, they cut your throat. You just can't get good help these days."
|
||||
.GSTR STR?66,"You appear on the lawn of a large estate. A domesticated wolf, foaming saliva, is chasing the messenger across the lawn. With graceful agility, the messenger jumps aside, and the wolf sinks its rabid teeth into you instead."
|
||||
.GSTR STR?67,"You materialize in the middle of a powerful thaumaturgical experiment. A Guildmaster stands nearby, but before he can react you have turned into a large and rather ugly mushroom."
|
||||
.GSTR STR?68,"Your spell book begins to glow softly. "
|
||||
.GSTR STR?69," The gnome looks livid. ""Very funny! Have you seen this one?"" He incants a brief spell, and you turn into a bowl of petunias (which eventually wilt)."
|
||||
.GSTR STR?70,"Unfortunately, bats make poor swimmers. Glug, glug."
|
||||
.GSTR STR?71,"."
|
||||
.GSTR STR?72,"a dried-up river bed, full of sharp rocks and muddy puddles. A dark cave beckons."
|
||||
.GSTR STR?73,"a field surrounded by fortified ramparts. A tattered flag flies atop a tall pole."
|
||||
.GSTR STR?74,"a brightly lit room. A tree fills the room, its branches twinkling with gold and silver."
|
||||
.GSTR STR?75,"a glittering midway filled with garish lights and honky-tonk music, surrounded by a spidery wooden structure."
|
||||
.GSTR STR?76,"a startling location of transparent walls, twinkling with reflected light."
|
||||
.GSTR STR?77,"a small room with a slanted roof, covered with black dust. The room is bathed in orange light."
|
||||
.GSTR STR?78,"a door of the whitest wood, opening slowly to reveal the face of Belboz, which quickly melts into a frightening visage of unspeakable malevolence."
|
||||
.GSTR STR?79,"a heated debate among the Guildmasters of the land, in the ancient Guild Hall at Borphee."
|
||||
.GSTR STR?80,"a pile of pure-white blocks, engraved with runes of power. Each block has a word written on it."
|
||||
.GSTR STR?81,"A hideous creature with slavering fangs lurks up and, before you can move, begins feasting!"
|
||||
.GSTR STR?82,"Oh, no! Something lurked up and devoured you!"
|
||||
.GSTR STR?83," doesn't do anything."
|
||||
.GSTR STR?84," accomplishes nothing."
|
||||
.GSTR STR?85," has no desirable effect."
|
||||
.GSTR STR?86,"No spell would help with that!"
|
||||
.GSTR STR?87,"It would take more magic than you've got!"
|
||||
.GSTR STR?88,"You can't be serious."
|
||||
.GSTR STR?89,"You must have had a silliness spell cast upon you."
|
||||
.GSTR STR?90,"You're not holding"
|
||||
.GSTR STR?91," "
|
||||
.GSTR STR?92," "
|
||||
.GSTR STR?93," "
|
||||
.GSTR STR?94," "
|
||||
.GSTR STR?95," "
|
||||
.GSTR STR?96,"F"
|
||||
.GSTR STR?97,"bat"
|
||||
.GSTR STR?98,"Done."
|
||||
.GSTR STR?99,"The pool evaporates, to the annoyance of a multi-tentacled denizen, who proceeds to take out its anger on you."
|
||||
.GSTR STR?100,"water"
|
||||
.GSTR STR?101,"Belboz is lying here, motionless but not asleep. He seems to be in some sort of trance."
|
||||
.GSTR STR?102,"skydiving near the mountains of Gurth. Not having a parachute, your descent is considerably faster"
|
||||
.GSTR STR?103,"scuba diving in the Sea of Mithicus. Before you can drown, a ferocious sea lion devours you"
|
||||
.GSTR STR?104,"sharpening her bullfighting skills. The crowd cheers wildly as the bull gores you with its horns"
|
||||
.GSTR STR?105,"shopping in the marketplace. A horse-drawn chariot runs you down, trampling you beneath dozens of hooves"
|
||||
.GSTR STR?106,"crossing the bridge over Razor Gorge between town and the Guild Hall. Unfortunately, you didn't quite make the bridge, and plummet onto nasty rocks below"
|
||||
.GSTR STR?107,"praying in the town's temple. Angered by your sacrilegious violation of the ceremony, the priests skewer you with several handy sacred ornaments"
|
||||
.GSTR STR?108,"You appear on a road in a far-off province called Cambridge. As you begin choking on the polluted air, a mugger stabs you in the back with a knife. A moment later, a wild-eyed motorist plows over you."
|
||||
.GSTR STR?109,"write a magic spell into a spell book"
|
||||
.GSTR STR?110,"cause something to give off light"
|
||||
.GSTR STR?111,"open even locked or enchanted objects"
|
||||
.GSTR STR?112,"mind probe"
|
||||
.GSTR STR?113,"fly like a bird"
|
||||
.GSTR STR?114,"The izyuk spell wears off. Unfortunately, this room of the maze has no floor."
|
||||
.GSTR STR?115,"cause liquids to become dry"
|
||||
.GSTR STR?116,"view the future"
|
||||
.GSTR STR?117,"Borphee Infotaters Incorporated"
|
||||
.GSTR STR?118,"SpellBound"
|
||||
.GSTR STR?119,"SoftSpel"
|
||||
.GSTR STR?120,"International Business Magic"
|
||||
.GSTR STR?121,"Spell Shack"
|
||||
.GSTR STR?122,"United Thaumaturgy"
|
||||
.GSTR STR?123,"Smoothscroll Draughtsmen"
|
||||
.GSTR STR?124,"Frobozz Magic Spell Company"
|
||||
.GSTR STR?125,"Fibbsbozza"
|
||||
.GSTR STR?126,"Magicland"
|
||||
.GSTR STR?127,"Frobozz Magic Potion Company"
|
||||
.GSTR STR?128,"You turn into a spot of moss"
|
||||
.GSTR STR?129,"Your left ear turns into a carnivorous toad and devours your brain"
|
||||
.GSTR STR?130,"Your entire body, starting from the toes and moving upward, turns into gelatin"
|
||||
.GSTR STR?131,"Certain parts of your anatomy, including your pulmonary artery and adrenal gland, suddenly teleport seven feet to the west"
|
||||
.GSTR STR?132,"You dream of being pursued through a dank cavern. Something is behind you, something horrible that you can't turn to face. It gets closer and closer, and you can feel its hot breath on your neck."
|
||||
.GSTR STR?133,"You dream of an idyllic scene in the country, a picnic of wood-sprites and dryads."
|
||||
.GSTR STR?134,"You dream of dancing penguins in formal dress. One has a particularly nice tuxedo and a cane with a gold top."
|
||||
.GSTR STR?135,"You dream of a river, slow and muddy. Great grey hippopotami sport there, bellowing and splashing, and twitching their ears."
|
||||
.GSTR STR?136,"You pass out from lack of food and water."
|
||||
.GSTR STR?137,"a bit"
|
||||
.GSTR STR?138,"somewhat"
|
||||
.GSTR STR?139,"quite"
|
||||
.GSTR STR?140,"very"
|
||||
.GSTR STR?141,"extremely"
|
||||
.GSTR STR?142,"incredibly"
|
||||
.GSTR STR?143,"dangerously"
|
||||
.GSTR STR?144,"This is your chamber in the Hall of the Guild of Enchanters, with a doorway to the west. A private chamber is a great privilege, especially for an Enchanter as young as yourself, but how many Enchanters can say they defeated the infamous Krill?"
|
||||
.GSTR STR?145,"Your bed occupies the far corner of the room."
|
||||
.GSTR STR?146,"Pacing back and forth on a perch in the corner is Belboz's prized pet parrot, native to the jungles of Miznia."
|
||||
.GSTR STR?147,"Pollibar want a cracker!"
|
||||
.GSTR STR?148,"Now where can I hide this key?"
|
||||
.GSTR STR?149,"You should never have let down your mindshield, you doddering old Enchanter."
|
||||
.GSTR STR?150,"This tea is cold! Get me another cup."
|
||||
.GSTR STR?151,"Where did I leave my spectacles?"
|
||||
.GSTR STR?152,"Belboz, the Circle is waiting for you."
|
||||
.GSTR STR?153,"The personal journal of Belboz the Necromancer is lying here."
|
||||
.GSTR STR?154,"This is the room of Frobar the Enchanter. There isn't much here in the way of furnishings, Frobar being a pretty dull kind of guy."
|
||||
.GSTR STR?155,"Helistar is one of the foremost members of the Circle, and this is her private chamber."
|
||||
.GSTR STR?156,"Among Helistar's possessions is a scroll, new and shiny."
|
||||
.GSTR STR?157,"provide for your own resurrection"
|
||||
.GSTR STR?158,"This is a sparsely furnished living area for the servants of the Guild. None are in sight; presumably they are out doing their daily errands. You can leave to the southwest."
|
||||
.GSTR STR?159,"This is a large hall where the Guild's young apprentices live and study as they strive to achieve a seat on the Circle. You think back to the days when you occupied these quarters. The apprentices are gone, having accompanied Frobar into town to shop. You can leave to the southeast."
|
||||
.GSTR STR?160,"Tacked to the doorframe of your room is a note, hurriedly scribbled on parchment."
|
||||
.GSTR STR?161,"""I have taken the apprentices into town to shop for the Guild picnic. I tried rousing you, but you seemed deep asleep. By the way, have you seen Belboz anywhere? It's not like him to leave without telling someone -- but then, he's been acting pretty odd of late.
|
||||
|
||||
-- Frobar"""
|
||||
.GSTR STR?162,"The first tenet states that Enchanters may never use their talents to aid evil. The second points out that an Enchanter's duty is to the Guild and to the Kingdom, not to the individual. Lesser tenets include rules for conducting votes at meetings, guidelines for passing dishes at Guild banquets, and penalties for revealing the Guild's secret handshake."
|
||||
.GSTR STR?163,"This is the entrance lobby of the Guild Hall. Befitting the status and wealth of the Guild, the lobby is finished with polished Antharian marble, inlaid with intricate patterns of silver leaf. To the north is a wide arch, and smaller openings flank the area on the eastern and western sides, as well as the northeastern and northwestern corners. A narrow stair leads downward. Through another arch to the south, you can see the entrance steps and the main road into town."
|
||||
.GSTR STR?164,"A tiny warning nymph appears, floating in the air next to your ear. ""There's no one else here,"" it reminds you, ""so you'd better not leave just now. Bye!"" It winks at you before vanishing."
|
||||
.GSTR STR?165,"Affixed to the southern arch is an ornate brass receptacle, intended for use by messengers."
|
||||
.GSTR STR?166,"An orange vial, labelled in tiny letters, is lying here."
|
||||
.GSTR STR?167,". Unfortunately, coal gas is a poor substitute for oxygen."
|
||||
.GSTR STR?168,"This is a study chamber for members of the Guild. Usually, there would be several elder Enchanters patiently training novices, but no one is here at the moment. The only exit is west.
|
||||
Lying open on a stand in one corner is a heavy volume, probably a copy of the Encyclopedia Frobizzica."
|
||||
.GSTR STR?169,"It would take days to read the entire encyclopedia. A better idea would be to read about specific persons or things."
|
||||
.GSTR STR?170,"The servants have been lax lately, for a scroll is lying among the dust in the corner."
|
||||
.GSTR STR?171,"cause plants to wilt"
|
||||
.GSTR STR?172,"This is a closet for storage. The only exit is east."
|
||||
.GSTR STR?173,"Among the provisions here is a small ochre-colored vial, closed and labelled with tiny lettering."
|
||||
.GSTR STR?174,"The calendar is for the current year, 957 GUE, and bears many stunning pictures: the marble mines of Antharia, the sand dunes of the Kovalli Desert, ancient Fort Griffspotter, and the giant infotater factories of Borphee. A legend reads ""Best wishes for a leak-less year, from the Accardi Plumbers Guild."""
|
||||
.GSTR STR?175,"You are in the basement of the Guild Hall. A steep, narrow stair leads upward from the southwest corner."
|
||||
.GSTR STR?176,"bloodworm"
|
||||
.GSTR STR?177,"brogmoid"
|
||||
.GSTR STR?178,"dorn"
|
||||
.GSTR STR?179,"dryad"
|
||||
.GSTR STR?180,"grue"
|
||||
.GSTR STR?181,"hellhound"
|
||||
.GSTR STR?182,"kobold"
|
||||
.GSTR STR?183,"nabiz"
|
||||
.GSTR STR?184,"orc"
|
||||
.GSTR STR?185,"rotgrub"
|
||||
.GSTR STR?186,"surmin"
|
||||
.GSTR STR?187,"yipple"
|
||||
.GSTR STR?188,"At the far end of the cellar, draped in cobwebs, is a large trunk. At each corner of its lid is a button: a black button with a picture of a star, a gray button depicting the moon, a red button illustrated with a bloody knife, and a purple button engraved with a royal crown. In the center of the lid is a white button picturing a dove in flight."
|
||||
.GSTR STR?189,"transport caster to someone else's location"
|
||||
.GSTR STR?190,"
|
||||
Suddenly, seemingly from nowhere, a bolt of lightning strikes you in the center of your chest..."
|
||||
.GSTR STR?191,"You are on a path through a blighted forest. The trees are sickly, and there is no undergrowth at all. One tree here looks climbable. The path, which ends here, continues to the northeast."
|
||||
.GSTR STR?192,"
|
||||
The hellhound reaches you and tears you apart with its powerful teeth."
|
||||
.GSTR STR?193,"
|
||||
The snake begins wrapping itself around your torso, squeezing the life out of you..."
|
||||
.GSTR STR?194,"To the west, a path enters the blighted woods, which stretch out of sight. A signpost stands beside another path leading north, and to the east is a wide meadow. At the base of the signpost is a slimy hole leading down."
|
||||
.GSTR STR?195,"A tall fence blocks your way."
|
||||
.GSTR STR?196,"This is a flat and featureless dirt path leading north and south."
|
||||
.GSTR STR?197,"The forest is too dense to enter here."
|
||||
.GSTR STR?198,"Kaboom!!!..."
|
||||
.GSTR STR?199,"You have entered a shadowy pit full of nooks and crannies. From every direction you hear the hissing of vipers and the irregular clicking of giant beetles. Light spills down from above, and a small crack leads further downward into darkness."
|
||||
.GSTR STR?200,"
|
||||
Suddenly, the pit comes alive as dozens of vipers strike and thousands of giant beetles pour from their hiding places."
|
||||
.GSTR STR?201,"This is a moist room whose walls are thick with moss and lichens. A small hole leads up and a rocky passage leads south."
|
||||
.GSTR STR?202,"Uh, oh. They taste poisonous."
|
||||
.GSTR STR?203,"
|
||||
The locusts swarm over you and pick you clean to the bones."
|
||||
.GSTR STR?204,"Undergrowth prevents travel along the bank."
|
||||
.GSTR STR?205,"Oops! A section of the bank gives way and you tumble into the river. The current dashes you against the rocks."
|
||||
.GSTR STR?206,"You fly across the river's surface. Suddenly, a downdraft plunges you into the swirling rapids!"
|
||||
.GSTR STR?207,"A wall of water comes rushing down the river bed! You are smashed into jelly against the rocks."
|
||||
.GSTR STR?208,"You are on the bed of an evaporated river. Fish splash helplessly in tiny puddles. The bed leads northwest and southeast. A climb up the southwest bank is possible. To the northeast is a dark cave, hollowed out by years of rushing water."
|
||||
.GSTR STR?209,"The river bed to the northwest is a pool covered with algae and other scum. The bed to the southeast is slightly drier. The banks are too tall and steep to climb here."
|
||||
.GSTR STR?210," Suddenly, powerful tentacles lash out and drag you under the surface."
|
||||
.GSTR STR?211,"The river bed ends here at a steep cliff, where the river once plunged over a waterfall. Below the falls, in the distance, is a large sea, covered with haze. The bed continues northwest, but the banks here are unclimbable. Atop the southwestern bank stands a proud fortress."
|
||||
.GSTR STR?212,"Brilliant move."
|
||||
.GSTR STR?213,"Entering that swirling, turbulent pool looks very dangerous."
|
||||
.GSTR STR?214,"Lying in the corner, in a pile of bat guano, is a scroll."
|
||||
.GSTR STR?215,"turn caster into a bat"
|
||||
.GSTR STR?216,"Unfortunately, this room of the maze has no floor."
|
||||
.GSTR STR?217,"You are immediately set upon by alligators and piranhas."
|
||||
.GSTR STR?218,"You are amongst the ruins of an ancient castle. A winding stairway leads up to a crumbling turret, and a dark passage leads downward. A path heads through the rubble to the west."
|
||||
.GSTR STR?219,"This is the only turret of the castle still standing. It affords a marvelous view of a meadow to the west, and beyond that a twisted forest. To the north is a mighty fortress which stands atop a cliff where a turbulent river pours into an ocean. The ocean stretches out of sight to the east. A spiralling staircase leads downward."
|
||||
.GSTR STR?220,"This is a large and well-equipped torture chamber. These were very popular in castles of several centuries ago, but are somewhat out of fashion now. There are exits to the west and north."
|
||||
.GSTR STR?221,"Sitting near one of the torture devices is an indigo vial, labelled in tiny letters."
|
||||
.GSTR STR?222,"This is the dark and dank dungeon of the ruined castle. There's probably a torture chamber nearby. You can go east, northeast, or upward. A small opening leads down as well."
|
||||
.GSTR STR?223,"In the center of the room is a deep pit filled with countless bones, an indication of the brutality of dungeon life. There are exits south and southwest. High above you is a small opening in the ceiling."
|
||||
.GSTR STR?224,"Do you really want to add your bones to the others in the pit?"
|
||||
.GSTR STR?225,"The results are too hideous to describe."
|
||||
.GSTR STR?226,"This is a wide road winding away to the east and west, perhaps a relic of the Great Underground Empire you read about in history class. A passage leads up to the north."
|
||||
.GSTR STR?227,"You have reached a toll gate which spans the highway."
|
||||
.GSTR STR?228,"The gate flies open, but the gnome immediately slams it shut again. ""Trying to gate crash, huh? We have an answer for scofflaws like you. Hey, Tholl!"" A troll lumbers out of the toll booth. ""This is Tholl the Toll Troll. Tholl, remove this cheat."" Tholl approaches and slices you neatly in half with his axe."
|
||||
.GSTR STR?229,"As you enter, you stumble over a sleeping troll. With stunning reflexes, he grabs a battle axe and minces you."
|
||||
.GSTR STR?230,"""You again! You've interrupted my nap for the last time! THOLL!!"" A huge troll lumbers out of the toll booth and tears you into itsy-bitsy pieces."
|
||||
.GSTR STR?231,"A store lies to the south from this section of the east-west road. There is a sign over the entrance."
|
||||
.GSTR STR?232,"This is an appliance store, apparently abandoned. The entrance lies to the north."
|
||||
.GSTR STR?233,"The waxer short circuits in the water, electrocuting you and several nearby fishies."
|
||||
.GSTR STR?234,"The road curves here, heading east and southwest."
|
||||
.GSTR STR?235,"You are at the northeastern rim of a gigantic crater, the result of some ancient explosion. A wide underground highway, which ends at the crater's edge, leads northeast."
|
||||
.GSTR STR?236,"This is a strip of land to the east of a gaping chasm. You might try jumping across, but I'd advise against it. A wide crater lies to the east."
|
||||
.GSTR STR?237,"This is a featureless tunnel, narrowing to the west. To the east is a deep gorge, probably too wide to jump across."
|
||||
.GSTR STR?238,"Too bad. Didn't quite make it."
|
||||
.GSTR STR?239,"The tunnel turns a corner here. You could go either north or east."
|
||||
.GSTR STR?240,"This is a tall room flooded with light from an unseen source. The only exit is south."
|
||||
.GSTR STR?241,"Growing in the center of the room is a tree, thick with foliage. As though to disprove the ancient adage, every branch, bow, and twig has a zorkmid coin growing on it."
|
||||
.GSTR STR?242,"This is a meandering north-south tunnel. A side passage leads to the southwest."
|
||||
.GSTR STR?243,"The dragon comes to life again! He spews a tremendous gout of flame right at you!"
|
||||
.GSTR STR?244,"You are at the entrance to Fort Griffspotter, which lies to the east. A trail leads along the river bank to the northwest."
|
||||
.GSTR STR?245,"You are at the center of a level field inside the fort. Entrances to rooms around the perimeter lie in several directions."
|
||||
.GSTR STR?246,"If you want to climb the flagpole, just say so."
|
||||
.GSTR STR?247,"Once the armory for the fort, this room has been picked clean by vandals and soldiers of fortune. Exit north or northeast."
|
||||
.GSTR STR?248,"This was a barracks for the battalion stationed in this fort. You could leave to the south, or to the southeast."
|
||||
.GSTR STR?249,"This is a battlement with a view of a river to the north and an ocean to the east. Openings northwest, west, and southwest lead to other parts of the fort."
|
||||
.GSTR STR?250,"A magnificent cast-iron cannon stands atop the battlement. Its wide, shallow barrel points toward the ocean, as though daring enemy ships to approach."
|
||||
.GSTR STR?251,"augment the power of certain spells"
|
||||
.GSTR STR?252,"This looks like the entrance to a run-down amusement park, no longer gaudy with lights and glitter. A sign above the entrance proclaims ""Welcome to Bozbarland - The Entertainment Capital of the Empire."" The park lies to the west and a tunnel leads northeast."
|
||||
.GSTR STR?253,"A gnome, dressed in flashy attire, stands here looking impatient."
|
||||
.GSTR STR?254,"You are at the eastern end of a long midway. The park entrance lies to the east, and rides lie to the north and south."
|
||||
.GSTR STR?255,"Entrances lead north, west and south, and the rest of the midway lies to the east."
|
||||
.GSTR STR?256,"You feel a cold breath on your shoulder. You whirl around, but there is nothing there."
|
||||
.GSTR STR?257,"Something slimy brushes across your face."
|
||||
.GSTR STR?258,"An unseen door creaks slowly open."
|
||||
.GSTR STR?259,"Something slithers across your foot."
|
||||
.GSTR STR?260,"You feel a strange shiver in your chest, almost as though something had passed through your body."
|
||||
.GSTR STR?261,"From several directions comes a sound like rattling chains."
|
||||
.GSTR STR?262,"A long silence is suddenly broken by a piercing scream!"
|
||||
.GSTR STR?263,"A glowing apparition sails by, briefly illuminating a spiral staircase and wooden balcony."
|
||||
.GSTR STR?264,"A deep-throated chuckle echoes about the room."
|
||||
.GSTR STR?265,"A roller coaster car zooms past, almost knocking you over!"
|
||||
.GSTR STR?266,"Bad time to leave the log boat. The flume is fast and rough."
|
||||
.GSTR STR?267,"Dumb idea. Your body ricochets off several wooden supports as it plummets to the ground."
|
||||
.GSTR STR?268,"This is a huge tent filled with hectic noise, blinking lights, and the smell of frying food. Near the exit is a game booth lined with prizes. The concept of the game seems to be bashing cute little mechanical bunnies with a rubber ball as they hop around a little artificial meadow."
|
||||
.GSTR STR?269,"A hawker stands within the booth, studying you through half-closed eyes."
|
||||
.GSTR STR?270,"You appear in an amusement park game booth. The point of the game is to pierce balloons with darts. Speaking of points, you are suddenly pierced by 37 flying darts."
|
||||
.GSTR STR?271,"You miss the rabbit by a mile!"
|
||||
.GSTR STR?272,"Your throw is way off!"
|
||||
.GSTR STR?273,"The rabbit hops obliviously as your throw sails far off target!"
|
||||
.GSTR STR?274,"bring life to inanimate objects"
|
||||
.GSTR STR?275,"This is a large, plush room, slightly neglected."
|
||||
.GSTR STR?276,"Standing on one side of the room is an odd machine, with a three-section display and a large lever on the side."
|
||||
.GSTR STR?277,"Ping! Ping! Ping! Ping! Ping! Ping!
|
||||
An unbelievable torrent of zorkmid coins pours out of the machine -- far more than the machine could possibly contain! You are buried and crushed under the huge mass of coins."
|
||||
.GSTR STR?278,"pot of gold"
|
||||
.GSTR STR?279,"clove of garlic"
|
||||
.GSTR STR?280,"noisome stew"
|
||||
.GSTR STR?281,"hot pepper sandwich"
|
||||
.GSTR STR?282,"The underground road ends here. A hovel, carved into the rock, lies to the east. To the north, wide marble stairs lead upward."
|
||||
.GSTR STR?283,"This is a small underground hovel. On the far wall is a small fireplace, long unused."
|
||||
.GSTR STR?284,"This is a large entrance hall, paved with polished stone. Large doorways lead north and south."
|
||||
.GSTR STR?285,"Standing in the center of the hall is a life-sized statue. An inscription at the base is in a familiar language."
|
||||
.GSTR STR?286,"There is a marble statue here, in a strikingly life-like pose of pompous bellicosity."
|
||||
.GSTR STR?287,"""I, Duncanthrax, King of Quendor and all its subjugated outlands, invite you to sample the delights of my Glass Labyrinth."""
|
||||
.GSTR STR?288,"Through a breathtaking archway of glass to the east is an area glistening with reflected light. Another exit leads south."
|
||||
.GSTR STR?289,"Please use compass directions here."
|
||||
.GSTR STR?290,"Unfortunately, this section of the glass maze has no floor."
|
||||
.GSTR STR?291,"The maze opens here onto a tiny outdoor plateau, completely surrounded by towering cliffs. The only way out is back through the dazzling archway of glass to the west.
|
||||
Near the glass arch is a small rectangular brick structure. The center of the structure is a hole about a foot wide, leading down into darkness."
|
||||
.GSTR STR?292,"You couldn't even fly over these cliffs."
|
||||
.GSTR STR?293,"The opening in the brick structure is too small for humans or even bats."
|
||||
.GSTR STR?294,"exorcise an inhabiting presence"
|
||||
.GSTR STR?295,"A somewhat splattered corpse is sprawled across the floor."
|
||||
.GSTR STR?296,"The corpse comes to life just long enough to fry you."
|
||||
.GSTR STR?297,"The dorn beast fries your brain with its hypnotic gaze and begins secreting digestive juices."
|
||||
.GSTR STR?298,"The walls and ceiling of this room are covered with soot and held up by timbers which don't look very sturdy. A winding tunnel leads north. From the east comes a sulfurous odor."
|
||||
.GSTR STR?299,"Part of the ceiling collapses onto you."
|
||||
.GSTR STR?300,"This is obviously the heart of a large coal mine, illuminated by a wall-mounted lamp. The bottom of a metal coal chute is visible at the north end of the room. Another chute continues downward at the southern end. A large coal bin is overflowing, and the floor is completely covered with lumps of coal. A passage leads east, but a western passage is blocked by rubble."
|
||||
.GSTR STR?301,"Finally, the shortage of oxygen gets to you."
|
||||
.GSTR STR?302,"Although your clothes are much cleaner and less torn, the stranger looks virtually like your own twin!"
|
||||
.GSTR STR?303,"On the eastern wall is a heavy door with a dial set into it. There is a sign on the door. Another exit leads west, and a wall-mounted lamp provides illumination. The floor is deeply covered with lumps of coal."
|
||||
.GSTR STR?304,"""See the foreman for the current combination.
|
||||
|
||||
(signed)
|
||||
Ernie Flathead, Manager
|
||||
GUE Coal Mine #502"""
|
||||
.GSTR STR?305,"The door swings open as a loud alarm sounds. Laser beams criss-cross the room, glinting off the blades of the thousand flying daggers. A hundred well-armed and vicious kobolds rush into the room, swinging battle axes."
|
||||
.GSTR STR?306,"Lying in one corner is a coil of rope."
|
||||
.GSTR STR?307,"You are at the bottom of an air shaft which looks climbable. A heavy door leads west."
|
||||
.GSTR STR?308,"You are deep inside a large coal mine, at the top of an air shaft. You could descend into the shaft; passages in many directions lead further into the mine."
|
||||
.GSTR STR?309,"Lying near the mouth of one passage is a wooden timber, probably left over from the construction of the mine."
|
||||
.GSTR STR?310,"You are in a winding tunnel in a large coal mine. Passages lead off in many directions."
|
||||
.GSTR STR?311,"You are at the western end of the coal mine. A metal chute leads downward."
|
||||
.GSTR STR?312,"This small room has a slanted roof, presumably due to the coal chute which passes overhead. You can reenter the chute to the east."
|
||||
.GSTR STR?313,"shield a mind from an evil spirit"
|
||||
.GSTR STR?314,"travel temporally"
|
||||
.GSTR STR?315,"This is a narrow beach between a small cove to the east and tall cliffs to the west. The shore curves to the southeast and northeast. A metal chute leads up into the cliff."
|
||||
.GSTR STR?316,"There's a tall cliff there."
|
||||
.GSTR STR?317,"Entering the ocean is certain death."
|
||||
.GSTR STR?318,"Certain death."
|
||||
.GSTR STR?319,"This is the floor of a cove off the turbulent ocean to the east. The ground slopes upward to the north, west, and south. Light filters down from the surface of the water."
|
||||
.GSTR STR?320,"You run out of air and drown."
|
||||
.GSTR STR?321,"Nestled among some coral is a clump of stunningly beautiful spenseweeds, waving slowly in the currents of the lagoon."
|
||||
.GSTR STR?322,"
|
||||
""!!! FROBOZZ MAGIC GRUE REPELLENT !!!
|
||||
|
||||
Instructions for use: Apply liberally to creature to be protected. Duration of effect is unpredictable. Use only in place of death!
|
||||
|
||||
(No warranty expressed or implied)"""
|
||||
.GSTR STR?323,"The river is too wide to cross."
|
||||
.GSTR STR?324,"Your attack is somewhat quixotic as the vines wrap around and tear you to pieces."
|
||||
.GSTR STR?325,"The vines encircle you and tear you limb from limb."
|
||||
.GSTR STR?326,"This is a low, shadowy cave leading east to west. The rocky walls are scarred with deep claw marks."
|
||||
.GSTR STR?327,"The grues lurk toward you! Your last sight is a hundred slavering fangs."
|
||||
.GSTR STR?328,"Suddenly, you are set upon by countless slavering fangs!"
|
||||
.GSTR STR?329,"This cavern is of extraordinary size, but nevertheless crowded with powerful-looking machinery. You recognize a breeder for producing millions of the mutated grues you just passed. Other devices seem designed to aid the forces of evil while sapping magic powers of Enchanters everywhere.
|
||||
|
||||
At the far end of the cavern are three closed doors: a black marble door leading to the northwest, a shiny silver door heading due west, and a door of bleached white wood to the southwest."
|
||||
.GSTR STR?330,"A field of energy leaps forth, reducing you to a pile of smoldering ash."
|
||||
.GSTR STR?331,"The very walls of this room seem to soak up all light, so it seems as though you're floating in the center of an infinite void."
|
||||
.GSTR STR?332,"This room is filled with blinding light that stabs at your eyes."
|
||||
.GSTR STR?333,"An acrid stench fills this small room, which is obviously a control center for the evil experiments in the cavern outside."
|
||||
.GSTR STR?334,"An invisible force stops you."
|
||||
.GSTR STR?335,"Hanging on the wall is a heavy dagger, its handle encrusted with diamonds."
|
||||
|
||||
.ENDI
|
2
syntax.zap
Normal file
2
syntax.zap
Normal file
|
@ -0,0 +1,2 @@
|
|||
|
||||
.ENDI
|
|
@ -2,6 +2,8 @@
|
|||
SORCERER
|
||||
(c) Copyright 1984 Infocom, Inc. All Rights Reserved."
|
||||
|
||||
<BUZZ AGAIN G OOPS>
|
||||
|
||||
<BUZZ A AN THE IS ARE AM AND OF THEN ALL ONE BUT EXCEPT \. \, \" YES NO Y
|
||||
PRY PLEASE HERE SOME>
|
||||
|
||||
|
@ -69,8 +71,8 @@
|
|||
|
||||
;"subtitle real verbs"
|
||||
|
||||
<SYNTAX AGAIN = V-AGAIN>
|
||||
<SYNONYM AGAIN G>
|
||||
;<SYNTAX AGAIN = V-AGAIN>
|
||||
;<SYNONYM AGAIN G>
|
||||
|
||||
<SYNTAX ANSWER = V-ANSWER>
|
||||
<SYNTAX ANSWER OBJECT = V-REPLY>
|
||||
|
|
94
verbs.zil
94
verbs.zil
|
@ -21,7 +21,7 @@
|
|||
|
||||
<ROUTINE V-SUPER-BRIEF ()
|
||||
<SETG SUPER-BRIEF T>
|
||||
<TELL "Super-brief descriptions." CR>>
|
||||
<TELL "Superbrief descriptions." CR>>
|
||||
|
||||
<ROUTINE V-DIAGNOSE ("AUX" (BOTH <>))
|
||||
<COND (<L? ,AWAKE 0>
|
||||
|
@ -231,7 +231,7 @@ Release ">
|
|||
|
||||
;"subtitle real verbs"
|
||||
|
||||
<ROUTINE V-AGAIN ("AUX" OBJ)
|
||||
;<ROUTINE V-AGAIN ("AUX" OBJ)
|
||||
<COND (<NOT ,L-PRSA>
|
||||
<ANYMORE>)
|
||||
(<AND <NOT <EQUAL? ,HERE ,LAST-PSEUDO-LOC>>
|
||||
|
@ -1634,7 +1634,7 @@ refreshing your mind. Time passes as you snore blissfully." CR>)>
|
|||
(T
|
||||
<TELL "There's nothing to swim in!" CR>)>>
|
||||
|
||||
<ROUTINE PRE-TAKE ()
|
||||
<ROUTINE PRE-TAKE ("AUX" (L <LOC ,PRSO>))
|
||||
<COND (,FWEEPED
|
||||
<BATTY>)
|
||||
(<IN? ,PRSO ,PROTAGONIST>
|
||||
|
@ -1643,19 +1643,21 @@ refreshing your mind. Time passes as you snore blissfully." CR>)>
|
|||
(T
|
||||
<TELL "You already have it." CR>)>)
|
||||
(<AND <FSET? ,PRSO ,SPELLBIT>
|
||||
<FSET? <LOC ,PRSO> ,SCROLLBIT>
|
||||
<ACCESSIBLE? <LOC ,PRSO>>>
|
||||
<PERFORM ,V?TAKE <LOC ,PRSO>>
|
||||
.L
|
||||
<FSET? .L ,SCROLLBIT>
|
||||
<ACCESSIBLE? .L>>
|
||||
<PERFORM ,V?TAKE .L>
|
||||
<RTRUE>)
|
||||
(<AND <FSET? <LOC ,PRSO> ,CONTBIT>
|
||||
<NOT <FSET? <LOC ,PRSO> ,OPENBIT>>>
|
||||
(<AND .L
|
||||
<FSET? .L ,CONTBIT>
|
||||
<NOT <FSET? .L ,OPENBIT>>>
|
||||
<TELL "You can't reach that." CR>
|
||||
<RTRUE>)
|
||||
(,PRSI
|
||||
<COND (<EQUAL? ,PRSO ,ME>
|
||||
<PERFORM ,V?DROP ,PRSI>
|
||||
<RTRUE>)
|
||||
(<AND <NOT <EQUAL? ,PRSI <LOC ,PRSO>>>
|
||||
(<AND <NOT <EQUAL? ,PRSI .L>>
|
||||
<NOT <EQUAL? ,PRSI ,BELBOZ-DESK>>>
|
||||
<TELL "But">
|
||||
<ARTICLE ,PRSO T>
|
||||
|
@ -1949,30 +1951,26 @@ incapable of understanding or initiating any." CR>
|
|||
|
||||
;"subtitle magic-related verbs"
|
||||
|
||||
<ROUTINE PRE-CAST ("AUX" MEM? SPELL SCROLL)
|
||||
<SET SPELL
|
||||
<COND (<VERB? GNUSTO> ,GNUSTO-SPELL)
|
||||
(<VERB? FROTZ> ,FROTZ-SPELL)
|
||||
(<VERB? REZROV> ,REZROV-SPELL)
|
||||
(<VERB? IZYUK> ,IZYUK-SPELL)
|
||||
(<VERB? AIMFIZ> ,AIMFIZ-SPELL)
|
||||
(<VERB? FWEEP> ,FWEEP-SPELL)
|
||||
(<VERB? SWANZO> ,SWANZO-SPELL)
|
||||
(<VERB? GOLMAC> ,GOLMAC-SPELL)
|
||||
(<VERB? VARDIK> ,VARDIK-SPELL)
|
||||
(<VERB? PULVER> ,PULVER-SPELL)
|
||||
(<VERB? MEEF> ,MEEF-SPELL)
|
||||
(<VERB? VEZZA> ,VEZZA-SPELL)
|
||||
(<VERB? GASPAR> ,GASPAR-SPELL)
|
||||
(<VERB? YOMIN> ,YOMIN-SPELL)
|
||||
(<VERB? YONK> ,YONK-SPELL)
|
||||
(<VERB? MALYON> ,MALYON-SPELL)
|
||||
(T
|
||||
<TELL "Bug #55" CR>
|
||||
<RTRUE>)>>
|
||||
<ROUTINE PRE-CAST ("AUX" SPELL SCROLL)
|
||||
<COND (,PERFORMING-SPELL
|
||||
<SETG PERFORMING-SPELL <>>
|
||||
<RFALSE>)>
|
||||
<SET SPELL <COND (<VERB? GNUSTO> ,GNUSTO-SPELL)
|
||||
(<VERB? FROTZ> ,FROTZ-SPELL)
|
||||
(<VERB? REZROV> ,REZROV-SPELL)
|
||||
(<VERB? IZYUK> ,IZYUK-SPELL)
|
||||
(<VERB? AIMFIZ> ,AIMFIZ-SPELL)
|
||||
(<VERB? FWEEP> ,FWEEP-SPELL)
|
||||
(<VERB? SWANZO> ,SWANZO-SPELL)
|
||||
(<VERB? GOLMAC> ,GOLMAC-SPELL)
|
||||
(<VERB? VARDIK> ,VARDIK-SPELL)
|
||||
(<VERB? PULVER> ,PULVER-SPELL)
|
||||
(<VERB? MEEF> ,MEEF-SPELL)
|
||||
(<VERB? VEZZA> ,VEZZA-SPELL)
|
||||
(<VERB? GASPAR> ,GASPAR-SPELL)
|
||||
(<VERB? YOMIN> ,YOMIN-SPELL)
|
||||
(<VERB? YONK> ,YONK-SPELL)
|
||||
(<VERB? MALYON> ,MALYON-SPELL)>>
|
||||
<COND (<OR <EQUAL? .SPELL ,PRSO>
|
||||
<AND <EQUAL? <LOC .SPELL> ,PRSO>
|
||||
<NOT <EQUAL? <LOC .SPELL> ,SPELL-BOOK>>>>
|
||||
|
@ -1980,8 +1978,10 @@ incapable of understanding or initiating any." CR>
|
|||
"As you must remember from Thaumaturgy 101, you cannot cast a spell upon
|
||||
itself, or upon the scroll it is written on." CR>
|
||||
<RTRUE>)
|
||||
(<FSET? <LOC .SPELL> ,MUNGBIT>
|
||||
<TELL "The spell no longer readable." CR>
|
||||
(<AND <FSET? <LOC .SPELL> ,MUNGBIT>
|
||||
<NOT <ALWAYS-MEMORIZED .SPELL>>
|
||||
<EQUAL? <GETP .SPELL ,P?COUNT> 0>>
|
||||
<TELL "The spell is no longer readable." CR>
|
||||
<RTRUE>)
|
||||
(<FSET? <LOC .SPELL> ,SCROLLBIT>
|
||||
<SET SCROLL <LOC .SPELL>>
|
||||
|
@ -1991,33 +1991,31 @@ itself, or upon the scroll it is written on." CR>
|
|||
<RFALSE>)>
|
||||
<MOVE .SCROLL ,DIAL> ;"in case moby-search wants it"
|
||||
<TELL
|
||||
"As you cast the spell, the " D .SCROLL " vanishes!" CR>
|
||||
"As you cast the spell, the " D .SCROLL " vanishes!" CR CR>
|
||||
<PUTP .SPELL ,P?COUNT 1>)
|
||||
(<OR <FSET? .SPELL ,TOUCHBIT>
|
||||
<IN? .SCROLL ,HERE>>
|
||||
<TELL
|
||||
"You don't have the " D .SPELL " memorized, nor do you have the scroll
|
||||
on which it is written." CR>
|
||||
"You don't have the " D .SPELL " memorized, nor do you have
|
||||
the scroll on which it is written." CR>
|
||||
<RTRUE>)
|
||||
(T
|
||||
<TELL
|
||||
"The " D .SPELL " is not committed to memory, and you haven't seen any scroll
|
||||
on which it is written." CR>
|
||||
<RTRUE>)>)>
|
||||
<SET MEM? <GETP .SPELL ,P?COUNT>>
|
||||
<COND (,FWEEPED
|
||||
<TELL
|
||||
"When you attempt to incant the " D .SPELL ", all that comes out is
|
||||
a high-pitched squeak!" CR>)
|
||||
(<EQUAL? .SPELL ,GNUSTO-SPELL ,REZROV-SPELL ,FROTZ-SPELL>
|
||||
<RFALSE> ;"Always memorized")
|
||||
(<EQUAL? .MEM? 0>
|
||||
<TELL
|
||||
"You don't have the " D .SPELL " committed to memory!" CR>
|
||||
"When you attempt to incant the " D .SPELL
|
||||
", all that comes out is a high-pitched squeak!" CR>)
|
||||
(<ALWAYS-MEMORIZED .SPELL>
|
||||
<RFALSE>)
|
||||
(<EQUAL? <GETP .SPELL ,P?COUNT> 0>
|
||||
<THIS-IS-IT .SPELL>
|
||||
<RTRUE>)
|
||||
<TELL
|
||||
"You don't have the " D .SPELL " committed to memory!" CR>)
|
||||
(T
|
||||
<PUTP .SPELL ,P?COUNT <- .MEM? 1>>
|
||||
<PUTP .SPELL ,P?COUNT <- <GETP .SPELL ,P?COUNT> 1>>
|
||||
<SETG SPELL-ROOM <+ ,SPELL-ROOM 1>>
|
||||
<RFALSE>)>>
|
||||
|
||||
|
@ -3013,7 +3011,7 @@ drop dead again." CR>
|
|||
<SETG P-IT-OBJECT .OBJ>
|
||||
;<SETG P-IT-LOC ,HERE>>
|
||||
|
||||
<ROUTINE ACCESSIBLE? (OBJ "AUX" (L <LOC .OBJ>)) ;"can player TOUCH object?"
|
||||
;<ROUTINE ACCESSIBLE? (OBJ "AUX" (L <LOC .OBJ>)) ;"can player TOUCH object?"
|
||||
;"revised 5/2/84 by SEM and SWG"
|
||||
<COND (<FSET? .OBJ ,INVISIBLE>
|
||||
<RFALSE>)
|
||||
|
@ -3049,7 +3047,7 @@ drop dead again." CR>
|
|||
(T
|
||||
<RFALSE>)>>
|
||||
|
||||
<ROUTINE META-LOC (OBJ)
|
||||
;<ROUTINE META-LOC (OBJ)
|
||||
<REPEAT ()
|
||||
<COND (<NOT .OBJ>
|
||||
<RFALSE>)
|
||||
|
@ -3264,7 +3262,7 @@ drop dead again." CR>
|
|||
<ROUTINE POOR-LISTENERS ()
|
||||
<TELL "Sleeping gnomes make poor listeners." CR>>
|
||||
|
||||
<ROUTINE ANYMORE ()
|
||||
;<ROUTINE ANYMORE ()
|
||||
<TELL "You can't see that anymore." CR>>
|
||||
|
||||
<ROUTINE SETTLE-ONTO-BRANCH ()
|
||||
|
|
Loading…
Reference in a new issue