-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathglobals.zap
263 lines (217 loc) · 5.61 KB
/
globals.zap
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
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
.FUNCT CANT-USE,PTR,BUF,?TMP1
SET 'QUOTE-FLAG,FALSE-VALUE
SET 'P-OFLAG,FALSE-VALUE
PRINTI "[This story can't understand the word """
MUL PTR,2 >BUF
ADD P-LEXV,BUF
GETB STACK,2 >?TMP1
ADD P-LEXV,BUF
GETB STACK,3
CALL WORD-PRINT,?TMP1,STACK
PRINTR """ when you use it that way.]"
.FUNCT DONT-UNDERSTAND
PRINTR "[That sentence didn't make sense. Please reword it or try something else.]"
.FUNCT NOT-IN-SENTENCE,STR
PRINTI "[There aren't "
PRINT STR
PRINTR " in that sentence!]"
.FUNCT LIGHTS-F
FSET? HERE,OUTDOORSBIT /?THN6
FSET? HERE,CAVEBIT /?THN6
EQUAL? HERE,CRAWL-SPACE-NORTH,CRAWL-SPACE-SOUTH,FIRST-SECRET-ROOM /?THN6
EQUAL? HERE,FIREPLACE,CHIMNEY-1,CHIMNEY-2 /?THN6
EQUAL? HERE,CHIMNEY-3 \?ELS5
?THN6: CALL CANT-SEE-ANY,LIGHTS
RSTACK
?ELS5: EQUAL? PRSA,V?LAMP-ON \FALSE
PRINTR "You flip the switch but nothing happens. It seems the light bulbs are missing."
.FUNCT GROUND-F
CALL GETTING-INTO?
ZERO? STACK \?THN6
EQUAL? PRSA,V?LOOK-BEHIND \?ELS5
?THN6: CALL PICK-ONE,YUKS
PRINT STACK
CRLF
RTRUE
?ELS5: EQUAL? PRSA,V?LOOK-UNDER \?ELS9
PRINTR "Nothing but dirt."
?ELS9: CALL HURT?,GROUND
ZERO? STACK \?THN12
CALL MOVING?,GROUND
ZERO? STACK /?ELS11
?THN12: CALL SAY-THE,GROUND
PRINTR " is not affected."
?ELS11: CALL TALKING-TO?,GROUND
ZERO? STACK \?THN16
EQUAL? PRSA,V?YELL \FALSE
?THN16: PRINTI "Talking to"
CALL TPRINT,GROUND
CALL SIGN-OF-COLLAPSE
RETURN 2
.FUNCT MAZE-HOLE-F
EQUAL? PRSA,V?LOOK-INSIDE \FALSE
PRINTR "There's nothing but dirt in the hole."
.FUNCT WALLS-F
FSET? HERE,OUTDOORSBIT \?ELS5
CALL CANT-SEE-ANY,WALLS
RETURN 2
?ELS5: CALL GETTING-INTO?
ZERO? STACK \?THN10
EQUAL? PRSA,V?LOOK-BEHIND \?ELS9
?THN10: CALL PICK-ONE,YUKS
PRINT STACK
CRLF
RTRUE
?ELS9: EQUAL? PRSA,V?LOOK-UNDER \?ELS13
PRINTR "There's a floor there."
?ELS13: CALL HURT?,WALLS
ZERO? STACK \?THN16
CALL MOVING?,WALLS
ZERO? STACK /?ELS15
?THN16: EQUAL? PRSA,V?THROW \?CND18
EQUAL? PRSO,FINCH /FALSE
?CND18: CALL SAY-THE,WALLS
PRINTR " is not affected."
?ELS15: CALL TALKING-TO?,WALLS
ZERO? STACK \?THN25
EQUAL? PRSA,V?YELL \?ELS24
?THN25: PRINTI "Talking to walls"
CALL SIGN-OF-COLLAPSE
RETURN 2
?ELS24: EQUAL? PRSA,V?EXAMINE /FALSE
CALL YOU-DONT-NEED,WALLS
RETURN 2
.FUNCT CEILING-F
FSET? HERE,OUTDOORSBIT \?ELS5
CALL CANT-SEE-ANY,CEILING
RETURN 2
?ELS5: EQUAL? PRSA,V?LOOK-UNDER \FALSE
CALL V-LOOK
RTRUE
.FUNCT HANDS-F
EQUAL? PRSA,V?PUT \FALSE
EQUAL? PRSO,HANDS \FALSE
CALL PERFORM,V?REACH-IN,PRSI
RTRUE
.FUNCT YOUR-FEET-F
EQUAL? PRSA,V?PUT \FALSE
EQUAL? PRSI,SKIS \FALSE
CALL PERFORM,V?WEAR,SKIS
RTRUE
.FUNCT ME-F,CONTEXT=0,OLIT
EQUAL? PRSA,V?ALARM \?ELS5
PRINTR "You're already wide awake."
?ELS5: CALL TALKING-TO?,ME
ZERO? STACK \?THN8
EQUAL? PRSA,V?YELL \?ELS7
?THN8: CALL TALK-TO-SELF
RETURN 2
?ELS7: EQUAL? PRSA,V?LISTEN \?ELS13
PRINT YOU-CANT
PRINTR "help doing that."
?ELS13: EQUAL? PRSA,V?GIVE \?ELS15
EQUAL? PRSI,ME \?ELS15
CALL ULTIMATELY-IN?,PRSO
ZERO? STACK /?ELS20
PRINTR "You already have it."
?ELS20: CALL PERFORM,V?TAKE,PRSO
RTRUE
?ELS15: EQUAL? PRSA,V?KILL \?ELS24
PRINTR "Desperate? Call the Samaritans."
?ELS24: EQUAL? PRSA,V?FIND \?ELS26
PRINTR "You're right here!"
?ELS26: CALL HURT?,ME
ZERO? STACK /FALSE
PRINTR "Punishing yourself that way won't help matters."
.FUNCT TALK-TO-SELF
PRINTI "Talking to yourself"
CALL SIGN-OF-COLLAPSE
CALL PCLEAR
RSTACK
.FUNCT SIGN-OF-COLLAPSE
PRINTR " is said to be a sign of impending mental collapse."
.FUNCT GLOBAL-ROOM-F
EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE,V?LOOK \?ELS5
CALL V-LOOK
RTRUE
?ELS5: EQUAL? PRSA,V?EXIT,V?DROP,V?ENTER \?ELS7
CALL V-WALK-AROUND
RSTACK
?ELS7: EQUAL? PRSA,V?SEARCH \?ELS9
PRINTR "You find nothing new."
?ELS9: EQUAL? PRSA,V?WALK-AROUND \FALSE
PRINTR "Walking around the area reveals nothing new.
(If you want to go somewhere, just type a direction.)"
.FUNCT CANT-SEE-ANY,THING=0,STRING?=0
CALL YOU-CANT-SEE
ZERO? STRING? /?ELS3
PRINT THING
JUMP ?CND1
?ELS3: ZERO? THING /?ELS6
FSET? THING,NARTICLEBIT /?CND8
PRINTI "any "
?CND8: CALL DPRINT,THING
JUMP ?CND1
?ELS6: PRINTI "that"
?CND1: PRINTR " here!"
.FUNCT YOU-CANT-SEE
SET 'CLOCK-WAIT,TRUE-VALUE
CALL PCLEAR
PRINT YOU-CANT
PRINTI "see "
RTRUE
.FUNCT YOU-ALREADY
PRINTR "You already did that."
.FUNCT HOW?
PRINTR "How do you intend to do that?"
.FUNCT PRESUMABLY-YOU-WANT-TO,STR,THING=0
PRINT I-ASSUME
PRINTC 32
PRINT STR
PRINTC 32
ZERO? THING /?ELS3
CALL DPRINT,THING
JUMP ?CND1
?ELS3: PRINTI "it"
?CND1: PRINTR ".]"
.FUNCT NOT-LIKELY,THING,STR
PRINTI "It"
CALL PICK-ONE,LIKELIES
PRINT STACK
PRINTI " that"
CALL TPRINT,THING
PRINTC 32
PRINT STR
PRINTR "."
.FUNCT YOUD-HAVE-TO,STR,THING
PRINTI "You'd have to "
PRINT STR
CALL TPRINT,THING
PRINTR " to do that."
.FUNCT WINDOW-F
EQUAL? PRSA,V?LOOK-INSIDE \?ELS5
EQUAL? HERE,PROJECTION-BOOTH \?ELS5
PRINTR "Uncle Buddy's screening room isn't packing in much of a crowd tonight. A viewing screen dominates the room."
?ELS5: EQUAL? PRSA,V?LOOK-INSIDE \?ELS9
EQUAL? HERE,DINING-ROOM \?ELS9
GRTR? MOVES,535 /?ELS14
PRINTI "By the moonlight you can see the outline of"
JUMP ?CND12
?ELS14: PRINTI "You can see"
?CND12: PRINTR " Aunt Hildegarde's lush garden."
?ELS9: EQUAL? PRSA,V?LOOK-INSIDE \?ELS18
PRINTI "You see the "
EQUAL? HERE,SCREENING-ROOM \?ELS21
PRINTI "projection booth of"
JUMP ?CND19
?ELS21: FSET? HERE,OUTDOORSBIT \?ELS23
PRINTI "interior of"
JUMP ?CND19
?ELS23: PRINTI "grounds outside"
?CND19: PRINTR " Uncle Buddy's house."
?ELS18: EQUAL? PRSA,V?OPEN \?ELS27
EQUAL? HERE,PROJECTION-BOOTH,SCREENING-ROOM /?ELS27
PRINTR "That would let in all the smog!"
?ELS27: EQUAL? PRSA,V?ENTER,V?CLOSE \FALSE
PRINTR "The window isn't open."
.ENDI