-
Notifications
You must be signed in to change notification settings - Fork 27
/
jester.zabstr
222 lines (221 loc) · 10.6 KB
/
jester.zabstr
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
<BEGIN-SEGMENT 0>
<OBJECT JESTER (DESC "jester") (DESCFCN JESTER-F) (SYNONYM JESTER JESTERS JOKER
MAN) (FLAGS ACTORBIT SEARCHBIT CONTBIT OPENBIT ANIMATEDBIT) (ACTION JESTER-F)>
<DEFINE-ROUTINE JESTER-F>
<BEGIN-SEGMENT CASTLE>
<DEFINE-ROUTINE J-ENTRY>
<GLOBAL MID-NAME-NUM <>>
<CONSTANT MID-NAMES <PTABLE "Hideoz" "Bivotar" "Urgwitz" "Foofoonap" "Elderbar"
"Goozums" "Syovar" "Buck" "Spike" "Zippy" "Magglebar" "Barfoo">>
<END-SEGMENT>
<BEGIN-SEGMENT 0>
<CONSTANT MID-NAME-WORDS <PTABLE <VOC "HIDEOZ" NOUN> <VOC "BIVOTAR" NOUN> <VOC
"URGWITZ" NOUN> <VOC "FOOFOONAP" NOUN> <VOC "ELDERBAR" NOUN> <VOC "GOOZUMS"
NOUN> <VOC "SYOVAR" NOUN> <VOC "BUCK" NOUN> <VOC "SPIKE" NOUN> <VOC "ZIPPY"
NOUN> <VOC "MAGGLEBAR" NOUN> <VOC "BARFOO" NOUN>>>
<OBJECT MID-NAME (LOC GLOBAL-OBJECTS) (DESC "middle name") (SYNONYM HIDEOZ
BIVOTAR URGWITZ FOOFOONAP ELDERBAR GOOZUMS SYOVAR BUCK SPIKE ZIPPY MAGGLEBAR
BARFOO) (ACTION MID-NAME-F)>
<DEFINE-ROUTINE MID-NAME-F>
<OBJECT OTHER-J-NAMES (LOC GLOBAL-OBJECTS) (DESC "jester's name") (SYNONYM
BARBAZZO FERNAP) (ACTION OTHER-J-NAMES-F)>
<DEFINE-ROUTINE OTHER-J-NAMES-F>
<OBJECT J-POCKET (LOC JESTER) (DESC "jester's pocket") (SYNONYM POCKET) (
ADJECTIVE HIS JESTER\'S) (OWNER JESTER) (FLAGS NDESCBIT) (ACTION J-GARMENT-F)>
<OBJECT J-HAT (LOC JESTER) (DESC "jester's hat") (SYNONYM HAT BELL BELLS) (
ADJECTIVE HIS JESTER\'S SMALL GAUDY) (OWNER JESTER) (FLAGS NDESCBIT) (GENERIC
G-HAT-F) (ACTION J-GARMENT-F)>
<OBJECT J-SHOE (LOC JESTER) (DESC "jester's shoe") (SYNONYM SHOE) (ADJECTIVE
HIS JESTER\'S) (OWNER JESTER) (FLAGS NDESCBIT) (ACTION J-GARMENT-F)>
<DEFINE-ROUTINE J-GARMENT-F>
<OBJECT J-SUIT (LOC JESTER) (DESC "jester's suit") (SYNONYM SUIT) (ADJECTIVE
GREEN SKIN-TIGHT) (OWNER JESTER) (FLAGS NDESCBIT)>
<DEFINE-ROUTINE I-JESTER>
<DEFINE-ROUTINE J-EXITS>
<DEFINE-ROUTINE BEYOND-LAKE?>
<GLOBAL J-APPEAR-PROB 0>
<GLOBAL DO-J <>>
<DEFINE-ROUTINE REMOVE-J>
<DEFINE-ROUTINE DONT-CRY>
<GLOBAL J-INQ-SCENE <>>
<GLOBAL J-ON-RAFT <>>
<GLOBAL FUNNY-PAPER-PROB 20>
<GLOBAL SLATE-PROB 33>
<GLOBAL SCROLL-PROB 33>
<GLOBAL GUESSES 0>
<GLOBAL ALLIGATOR <>>
<DEFINE-ROUTINE I-UNALLIGATOR>
<GLOBAL SUFFOCATE-COUNTER 0>
<DEFINE-ROUTINE I-SUFFOCATE>
<DEFINE-ROUTINE I-FUNNY-PAPER>
<DEFINE-ROUTINE I-REMOVE-FUNNY-PAPER>
<OBJECT FUNNY-PAPER (LOC LOCAL-GLOBALS) (DESC "funny paper") (SYNONYM PAPER
PIECE NEWSPAPER COMICS) (ADJECTIVE COLORFUL FUNNY) (FLAGS TAKEBIT BURNBIT
READBIT) (SIZE 2) (ACTION FUNNY-PAPER-F)>
<DEFINE-ROUTINE FUNNY-PAPER-F>
<OBJECT BEDBUG (DESC "giant bedbug") (SYNONYM BUG BEDBUG) (ADJECTIVE LARGE BED)
(ACTION BEDBUG-F)>
<DEFINE-ROUTINE BEDBUG-F>
<OBJECT CLOWN-NOSE (DESC "red clown nose") (SYNONYM NOSE) (ADJECTIVE RED CLOWN)
(FLAGS WEARBIT TAKEBIT) (SIZE 2) (ACTION CLOWN-NOSE-F)>
<DEFINE-ROUTINE CLOWN-NOSE-F>
<OBJECT SLATE (LOC LOCAL-GLOBALS) (DESC "dusty slate") (SYNONYM SLATE) (
ADJECTIVE DUSTY SMALL SILLY OLD) (FLAGS READBIT TAKEBIT) (ACTION SLATE-F)>
<GLOBAL STUMP-X 0>
<GLOBAL STUMP-Y 0>
<DEFINE-ROUTINE SLATE-F>
<OBJECT SCROLL (LOC LOCAL-GLOBALS) (DESC "scroll") (SYNONYM SCROLL PAPER) (
FLAGS READBIT TAKEBIT BURNBIT) (SIZE 2) (ACTION SCROLL-F)>
<DEFINE-ROUTINE SCROLL-F>
<END-SEGMENT>
<BEGIN-SEGMENT CASTLE>
<OBJECT SHELL-TABLE (DESC "small table") (SYNONYM TABLE) (ADJECTIVE SMALL) (
FLAGS SURFACEBIT CONTBIT OPENBIT SEARCHBIT)>
<OBJECT LEFT-SHELL (LOC SHELL-TABLE) (DESC "left shell") (SYNONYM SHELL) (
ADJECTIVE LEFT FIRST) (ACTION SHELL-F)>
<OBJECT CENTER-SHELL (LOC SHELL-TABLE) (DESC "center shell") (SYNONYM SHELL) (
ADJECTIVE CENTER MIDDLE SECOND) (ACTION SHELL-F)>
<OBJECT RIGHT-SHELL (LOC SHELL-TABLE) (DESC "right shell") (SYNONYM SHELL) (
ADJECTIVE RIGHT THIRD) (ACTION SHELL-F)>
<DEFINE-ROUTINE SHELL-F>
<DEFINE-ROUTINE ANOTHER-SHELL-GAME>
<DEFINE-ROUTINE SEE-BILL?>
<OBJECT ZORKMID-BILL (LOC LOCAL-GLOBALS) (DESC "zorkmid bill") (SYNONYM BILL
MONEY) (ADJECTIVE ZORKMID) (FLAGS TAKEBIT BURNBIT READBIT MAGICBIT) (SIZE 1) (
VALUE 0) (TEXT "The denomination of the bill is 100,000 zorkmids. Only one such bill
was ever printed, and that was at the personal request of J. Pierpont
Flathead.")>
<ROOM JESTERS-QUARTERS (LOC ROOMS) (REGION "Flatheadia") (DESC
"Jester's Quarters") (DOWN TO SERVANTS-QUARTERS) (OUT TO SERVANTS-QUARTERS) (
NORTH TO WEIRD IF LARGE-DOOR IS OPEN) (SOUTH PER SMALL-DOOR-ENTER-F) (FLAGS
RLANDBIT) (SYNONYM QUARTERS) (OWNER JESTER) (GLOBAL STAIRS LARGE-DOOR
SMALL-DOOR) (MAP-LOC <PTABLE MAIN-MAP-NUM MAP-GEN-Y-4 MAP-GEN-X-10>) (ICON
J-QUARTER-ICON) (ACTION JESTERS-QUARTERS-F)>
<DEFINE-ROUTINE JESTERS-QUARTERS-F>
<DEFINE-ROUTINE SMALL-DOOR-ENTER-F>
<OBJECT LARGE-DOOR (LOC LOCAL-GLOBALS) (DESC "large arched door") (SYNONYM DOOR
) (ADJECTIVE LARGE ARCHED) (FLAGS DOORBIT) (GENERIC G-J-DOOR-F) (ACTION
LARGE-DOOR-F)>
<DEFINE-ROUTINE LARGE-DOOR-F>
<DEFINE-ROUTINE G-J-DOOR-F>
<OBJECT SMALL-DOOR (LOC LOCAL-GLOBALS) (DESC "small louvered door") (SYNONYM
DOOR) (ADJECTIVE SMALL SOUTH LOUVERED) (FLAGS NDESCBIT) (GENERIC G-J-DOOR-F) (
ACTION SMALL-DOOR-F)>
<DEFINE-ROUTINE SMALL-DOOR-F>
<OBJECT T-OF-B (OWNER T-OF-B) (DESC "Tower of Bozbar") (SYNONYM TOWER BOZBAR) (
FLAGS CONTBIT OPENBIT SEARCHBIT) (RESEARCH
"The Tower of Bozbar, an ancient game of unknown origin, consists of three pegs
and a pile of weights. The goal is to move the pile from one peg to another,
moving one weight at a time, with the constraint that no weight can ever be
placed atop a smaller weight. Many people say that the Tower of Bozbar is a
superb method of mental relaxation. [Obviously, none of these people have ever
played Zork Zero.]")>
<OBJECT LEFT-PEG (LOC T-OF-B) (DESC "left peg") (SYNONYM PEG POST) (ADJECTIVE
FIRST LEFT) (FLAGS NDESCBIT CONTBIT OPENBIT SEARCHBIT)>
<OBJECT CENTER-PEG (LOC T-OF-B) (DESC "center peg") (SYNONYM PEG POST) (
ADJECTIVE SECOND CENTER MIDDLE) (FLAGS NDESCBIT CONTBIT OPENBIT SEARCHBIT)>
<OBJECT RIGHT-PEG (LOC T-OF-B) (DESC "right peg") (SYNONYM PEG POST) (ADJECTIVE
THIRD RIGHT) (FLAGS NDESCBIT CONTBIT OPENBIT SEARCHBIT)>
<OBJECT 1-WEIGHT (LOC CENTER-PEG) (DESC "1-ugh weight") (SYNONYM WEIGHT) (
ADJECTIVE 1-UGH) (FLAGS NDESCBIT) (SIZE 1) (ACTION WEIGHT-F)>
<OBJECT 2-WEIGHT (LOC CENTER-PEG) (DESC "2-ugh weight") (SYNONYM WEIGHT) (
ADJECTIVE 2-UGH) (FLAGS NDESCBIT) (SIZE 2) (ACTION WEIGHT-F)>
<OBJECT 3-WEIGHT (LOC CENTER-PEG) (DESC "3-ugh weight") (SYNONYM WEIGHT) (
ADJECTIVE 3-UGH) (FLAGS NDESCBIT) (SIZE 3) (ACTION WEIGHT-F)>
<OBJECT 4-WEIGHT (LOC CENTER-PEG) (DESC "4-ugh weight") (SYNONYM WEIGHT) (
ADJECTIVE 4-UGH) (FLAGS NDESCBIT) (SIZE 4) (ACTION WEIGHT-F)>
<OBJECT 5-WEIGHT (LOC CENTER-PEG) (DESC "5-ugh weight") (SYNONYM WEIGHT) (
ADJECTIVE 5-UGH) (FLAGS NDESCBIT) (SIZE 5) (ACTION WEIGHT-F)>
<OBJECT 6-WEIGHT (LOC CENTER-PEG) (DESC "6-ugh weight") (SYNONYM WEIGHT) (
ADJECTIVE 6-UGH) (FLAGS NDESCBIT) (SIZE 6) (ACTION WEIGHT-F)>
<DEFINE-ROUTINE WEIGHT-F>
<GLOBAL TOWER-BEATEN <>>
<GLOBAL TOWER-CHANGED <>>
<DEFINE-ROUTINE TOWER-MODE>
<DEFINE-ROUTINE B-MOUSE-PEG-PICK>
<DEFINE-ROUTINE B-MOUSE-WEIGHT-PICK>
<DEFINE-ROUTINE TOWER-WIN-CHECK>
<DEFINE-ROUTINE SET-PEG-TABLE>
<DEFINE-ROUTINE NOT-TOP-WEIGHT>
<DEFINE-ROUTINE MOVE-WEIGHT>
<DEFINE-ROUTINE CRUSH-WEIGHT>
<DEFINE-ROUTINE B-SAVE>
<DEFINE-ROUTINE B-RESTORE>
<CONSTANT B-X-TBL <TABLE <> <> <>>>
<CONSTANT B-Y-TBL <TABLE <> <> <> <> <> <>>>
<CONSTANT TOWER-UNDO-TABLE <TABLE 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0>>
<CONSTANT LEFT-PEG-TABLE <TABLE 0 0 0 0 0 0>>
<CONSTANT CENTER-PEG-TABLE <TABLE 6-WEIGHT 5-WEIGHT 4-WEIGHT 3-WEIGHT 2-WEIGHT
1-WEIGHT>>
<CONSTANT RIGHT-PEG-TABLE <TABLE 0 0 0 0 0 0>>
<CONSTANT B-PICSET-TBL <TABLE B-RESTORE-PEG 1-WEIGHT 2-WEIGHT 3-WEIGHT 4-WEIGHT
5-WEIGHT 6-WEIGHT 0>>
<DEFINE-ROUTINE DRAW-TOWER>
<DEFINE-ROUTINE DRAW-PEG>
<DEFINE-ROUTINE SET-B-PIC>
<ROOM WEIRD (LOC ROOMS) (REGION "Flatheadia") (DESC "Weird Passageway") (SOUTH
TO JESTERS-QUARTERS IF LARGE-DOOR IS OPEN) (NORTH PER WEIRD-EXIT-F) (WEST PER
WEIRD-EXIT-F) (EAST PER WEIRD-EXIT-F) (FLAGS RLANDBIT) (GLOBAL LARGE-DOOR) (
MAP-LOC <PTABLE MAIN-MAP-NUM MAP-GEN-Y-3 MAP-GEN-X-10>) (ACTION WEIRD-F)>
<DEFINE-ROUTINE WEIRD-EXIT-F>
<DEFINE-ROUTINE WEIRD-ENTER-F>
<DEFINE-ROUTINE WEIRD-F>
<ROOM PYRAMID (LOC ROOMS) (REGION "Flatheadia") (DESC "Pyramid Room") (SOUTH
PER WEIRD-ENTER-F) (OUT PER WEIRD-ENTER-F) (FLAGS RLANDBIT) (VALUE 7) (MAP-LOC
<PTABLE MAIN-MAP-NUM MAP-GEN-Y-2 MAP-GEN-X-10>) (ICON PYRAMID-ICON) (ACTION
PYRAMID-F)>
<BEGIN-SEGMENT 0>
<OBJECT GOGGLES (LOC PYRAMID) (OWNER GOGGLES) (DESC "pair of goggles") (PLURAL
"goggles") (SYNONYM GOGGLES PAIR ETCHING) (FLAGS PLURALBIT TAKEBIT WEARBIT
TRANSBIT) (ACTION GOGGLES-F)>
<DEFINE-ROUTINE GOGGLES-F>
<DEFINE-ROUTINE DISCOVER-X-RAY>
<GLOBAL DONT-KNOW-ABOUT-XRAY T>
<OBJECT CRATE (LOC PYRAMID) (DESC "crate") (LDESC
"Sitting in the corner is a wooden shipping crate with some writing
stencilled across the top.") (SYNONYM CRATE WRITING) (ADJECTIVE WOODEN SHIPPING
STENCILLED) (FLAGS READBIT BURNBIT CONTBIT SEARCHBIT TAKEBIT) (CAPACITY 100) (
OWNER CRATE) (SIZE 80) (TEXT
"\"1000 Clown Noses, Red|
Frobozz Magic Clown Nose Company\"")>
<END-SEGMENT>
<BEGIN-SEGMENT CASTLE>
<ROOM PYRAMID-R (LOC ROOMS) (REGION "Flatheadia") (DESC "Pyramid Room") (WEST
PER WEIRD-ENTER-F) (OUT PER WEIRD-ENTER-F) (FLAGS RLANDBIT) (VALUE 7) (MAP-LOC
<PTABLE MAIN-MAP-NUM MAP-GEN-Y-3 MAP-GEN-X-11>) (ICON PYRAMID-ICON) (ACTION
PYRAMID-F)>
<OBJECT MANUSCRIPT (LOC PYRAMID-R) (DESC "manuscript") (SYNONYM MANUSCRIPT) (
FLAGS READBIT TAKEBIT BURNBIT MAGICBIT) (VALUE 12) (TEXT
"The manuscript is entitled \"On the Discoloration of Roadside Slush.\" You
try reading it, but keep dozing off on the third or fourth word.")>
<ROOM PYRAMID-L (LOC ROOMS) (REGION "Flatheadia") (DESC "Pyramid Room") (EAST
PER WEIRD-ENTER-F) (OUT PER WEIRD-ENTER-F) (FLAGS RLANDBIT) (VALUE 7) (MAP-LOC
<PTABLE MAIN-MAP-NUM MAP-GEN-Y-3 MAP-GEN-X-9>) (ICON PYRAMID-ICON) (ACTION
PYRAMID-F)>
<DEFINE-ROUTINE PYRAMID-F>
<BEGIN-SEGMENT 0>
<OBJECT CUP (LOC PYRAMID-L) (DESC "cup") (SYNONYM CUP) (FLAGS TAKEBIT CONTBIT
SEARCHBIT OPENBIT) (ACTION CUP-F)>
<DEFINE-ROUTINE CUP-F>
<END-SEGMENT>
<BEGIN-SEGMENT CASTLE>
<OBJECT POTION (LOC CUP) (DESC "magic potion") (SYNONYM POTION POTIONS LIQUID)
(ADJECTIVE MAGIC YELLOW-GREEN) (FLAGS NARTICLEBIT) (RESEARCH
"\"Potions are the most accessible form of magic for the masses, since
they are simply drunk like water. No lessons in complicated spell-casting
are required.\"") (ACTION POTION-F)>
<END-SEGMENT>
<BEGIN-SEGMENT 0>
<GLOBAL POTION-GULPS 4>
<GLOBAL PLANT-TALKER <>>
<DEFINE-ROUTINE POTION-F>
<DEFINE-ROUTINE I-POTION>
<DEFINE-ROUTINE PLANT-STUNNED>
<END-SEGMENT>
<BEGIN-SEGMENT FENSHIRE>
<OBJECT COOKPOT (DESC "cookpot") (SYNONYM COOKPOT POT) (FLAGS CONTBIT OPENBIT
SEARCHBIT) (CAPACITY 50) (ACTION COOKPOT-F)>
<DEFINE-ROUTINE COOKPOT-F>
<OBJECT COOKFIRE (DESC "cookfire") (SYNONYM COOKFIRE FIRE) (FLAGS FLAMEBIT)>
<END-SEGMENT>