]> github.com/historicalsource and other repositories - zork1.git/blob - gglobals.zil
Update README.md
[zork1.git] / gglobals.zil
1                         "Generic GLOBALS file for
2                             The ZORK Trilogy
3                        started on 7/28/83 by MARC"
4
5 "SUBTITLE GLOBAL OBJECTS"
6
7 <OBJECT GLOBAL-OBJECTS
8         (FLAGS RMUNGBIT INVISIBLE TOUCHBIT SURFACEBIT TRYTAKEBIT
9                OPENBIT SEARCHBIT TRANSBIT ONBIT RLANDBIT FIGHTBIT
10                STAGGERED WEARBIT)>
11
12 <OBJECT LOCAL-GLOBALS
13         (IN GLOBAL-OBJECTS)
14         (SYNONYM ZZMGCK)
15         (DESCFCN PATH-OBJECT)
16         (GLOBAL GLOBAL-OBJECTS)
17         (ADVFCN 0)
18         (FDESC "F")
19         (LDESC "F")
20         (PSEUDO "FOOBAR" V-WALK)
21         (CONTFCN 0)
22         (VTYPE 1)
23         (SIZE 0)
24         (CAPACITY 0)>
25
26 ;"Yes, this synonym for LOCAL-GLOBALS needs to exist... sigh"
27
28 <OBJECT ROOMS
29         (IN TO ROOMS)>
30
31 <OBJECT INTNUM
32         (IN GLOBAL-OBJECTS)
33         (SYNONYM INTNUM)
34         (FLAGS TOOLBIT)
35         (DESC "number")>
36
37 <OBJECT PSEUDO-OBJECT
38         (IN LOCAL-GLOBALS)
39         (DESC "pseudo")
40         (ACTION CRETIN-FCN)>
41
42 <OBJECT IT
43         (IN GLOBAL-OBJECTS)
44         (SYNONYM IT THEM HER HIM)
45         (DESC "random object")
46         (FLAGS NDESCBIT TOUCHBIT)>
47
48 <OBJECT NOT-HERE-OBJECT
49         (DESC "such thing" ;"[not here]")
50         (ACTION NOT-HERE-OBJECT-F)>
51
52 <ROUTINE NOT-HERE-OBJECT-F ("AUX" TBL (PRSO? T) OBJ)
53          ;"This COND is game independent (except the TELL)"
54          <COND (<AND <EQUAL? ,PRSO ,NOT-HERE-OBJECT>
55                      <EQUAL? ,PRSI ,NOT-HERE-OBJECT>>
56                 <TELL "Those things aren't here!" CR>
57                 <RTRUE>)
58                (<EQUAL? ,PRSO ,NOT-HERE-OBJECT>
59                 <SET TBL ,P-PRSO>)
60                (T
61                 <SET TBL ,P-PRSI>
62                 <SET PRSO? <>>)>
63          ;"Here is the default 'cant see any' printer"
64          <SETG P-CONT <>>
65          <SETG QUOTE-FLAG <>>
66          <COND (<EQUAL? ,WINNER ,PLAYER>
67                 <TELL "You can't see any ">
68                 <NOT-HERE-PRINT .PRSO?>
69                 <TELL " here!" CR>)
70                (T
71                 <TELL "The " D ,WINNER " seems confused. \"I don't see any ">
72                 <NOT-HERE-PRINT .PRSO?>
73                 <TELL " here!\"" CR>)>
74          <RTRUE>>
75
76 <ROUTINE NOT-HERE-PRINT (PRSO?)
77  <COND (,P-OFLAG
78         <COND (,P-XADJ <PRINTB ,P-XADJN>)>
79         <COND (,P-XNAM <PRINTB ,P-XNAM>)>)
80        (.PRSO?
81         <BUFFER-PRINT <GET ,P-ITBL ,P-NC1> <GET ,P-ITBL ,P-NC1L> <>>)
82        (T
83         <BUFFER-PRINT <GET ,P-ITBL ,P-NC2> <GET ,P-ITBL ,P-NC2L> <>>)>>
84
85 <ROUTINE NULL-F ("OPTIONAL" A1 A2)
86          <RFALSE>>
87
88 /^L
89
90 "Objects shared by all three Zorks go here"
91
92 <GLOBAL LOAD-MAX 100>
93
94 <GLOBAL LOAD-ALLOWED 100>
95
96 <OBJECT BLESSINGS
97         (IN GLOBAL-OBJECTS)
98         (SYNONYM BLESSINGS GRACES)
99         (DESC "blessings")
100         (FLAGS NDESCBIT)>
101
102 <OBJECT STAIRS
103         (IN LOCAL-GLOBALS)
104         (SYNONYM STAIRS STEPS STAIRCASE STAIRWAY)
105         (ADJECTIVE STONE DARK MARBLE FORBIDDING STEEP)
106         (DESC "stairs")
107         (FLAGS NDESCBIT CLIMBBIT)
108         (ACTION STAIRS-F)>
109
110 <ROUTINE STAIRS-F ()
111          <COND (<VERB? THROUGH>
112                 <TELL
113 "You should say whether you want to go up or down." CR>)>>
114
115 <OBJECT SAILOR
116         (IN GLOBAL-OBJECTS)
117         (SYNONYM SAILOR FOOTPAD AVIATOR)
118         (DESC "sailor")
119         (FLAGS NDESCBIT)
120         (ACTION SAILOR-FCN)>
121
122 <ROUTINE SAILOR-FCN ()
123           <COND (<VERB? TELL>
124                  <SETG P-CONT <>>
125                  <SETG QUOTE-FLAG <>>
126                  <TELL "You can't talk to the sailor that way." CR>)
127                 (<VERB? EXAMINE>
128                  %<COND (<==? ,ZORK-NUMBER 3>
129                          '<COND (<NOT <FSET? ,VIKING-SHIP ,INVISIBLE>>
130                                  <TELL
131 "He looks like a sailor." CR>
132                                  <RTRUE>)>)
133                         (ELSE T)>
134                  <TELL
135 "There is no sailor to be seen." CR>)
136                 (<VERB? HELLO>
137                  <SETG HS <+ ,HS 1>>
138                  %<COND (<==? ,ZORK-NUMBER 3>
139                          '<COND (<NOT <FSET? ,VIKING-SHIP ,INVISIBLE>>
140                                  <TELL
141 "The seaman looks up and maneuvers the boat toward shore. He cries out \"I
142 have waited three ages for someone to say those words and save me from
143 sailing this endless ocean. Please accept this gift. You may find it
144 useful!\" He throws something which falls near you in the sand, then sails
145 off toward the west, singing a lively, but somewhat uncouth, sailor song." CR>
146                                  <FSET ,VIKING-SHIP ,INVISIBLE>
147                                  <MOVE ,VIAL ,HERE>)
148                                 (<==? ,HERE ,FLATHEAD-OCEAN>
149                                  <COND (,SHIP-GONE
150                                         <TELL "Nothing happens anymore." CR>)
151                                        (T
152                                         <TELL "Nothing happens yet." CR>)>)
153                                 (T <TELL "Nothing happens here." CR>)>)
154                         (T
155                          '<COND (<0? <MOD ,HS 20>>
156                                  <TELL
157 "You seem to be repeating yourself." CR>)
158                                 (<0? <MOD ,HS 10>>
159                                  <TELL
160 "I think that phrase is getting a bit worn out." CR>)
161                                 (T
162                                  <TELL "Nothing happens here." CR>)>)>)>>
163
164 <OBJECT GROUND
165         (IN GLOBAL-OBJECTS)
166         (SYNONYM GROUND SAND DIRT FLOOR)
167         (DESC "ground")
168         (ACTION GROUND-FUNCTION)>
169
170 <ROUTINE GROUND-FUNCTION ()
171          <COND (<AND <VERB? PUT PUT-ON>
172                      <EQUAL? ,PRSI ,GROUND>>
173                 <PERFORM ,V?DROP ,PRSO>
174                 <RTRUE>)
175                %<COND (<==? ,ZORK-NUMBER 1>
176                        '(<EQUAL? ,HERE ,SANDY-CAVE>
177                          <SAND-FUNCTION>))
178                       (T
179                        '(<NULL-F>
180                          <RFALSE>))>
181                (<VERB? DIG>
182                 <TELL "The ground is too hard for digging here." CR>)>>
183
184 <OBJECT GRUE
185         (IN GLOBAL-OBJECTS)
186         (SYNONYM GRUE)
187         (ADJECTIVE LURKING SINISTER HUNGRY SILENT)
188         (DESC "lurking grue")
189         (ACTION GRUE-FUNCTION)>
190
191 <ROUTINE GRUE-FUNCTION ()
192     <COND (<VERB? EXAMINE>
193            <TELL
194 "The grue is a sinister, lurking presence in the dark places of the
195 earth. Its favorite diet is adventurers, but its insatiable
196 appetite is tempered by its fear of light. No grue has ever been
197 seen by the light of day, and few have survived its fearsome jaws
198 to tell the tale." CR>)
199           (<VERB? FIND>
200            <TELL
201 "There is no grue here, but I'm sure there is at least one lurking
202 in the darkness nearby. I wouldn't let my light go out if I were
203 you!" CR>)
204           (<VERB? LISTEN>
205            <TELL
206 "It makes no sound but is always lurking in the darkness nearby." CR>)>>
207
208 <OBJECT LUNGS
209         (IN GLOBAL-OBJECTS)
210         (SYNONYM LUNGS AIR MOUTH BREATH)
211         (DESC "blast of air")
212         (FLAGS NDESCBIT)>
213
214 <OBJECT ME
215         (IN GLOBAL-OBJECTS)
216         (SYNONYM ME MYSELF SELF CRETIN)
217         (DESC "you")
218         (FLAGS ACTORBIT)
219         (ACTION CRETIN-FCN)>
220
221 <ROUTINE CRETIN-FCN ()
222          <COND (<VERB? TELL>
223                 <SETG P-CONT <>>
224                 <SETG QUOTE-FLAG <>>
225                 <TELL
226 "Talking to yourself is said to be a sign of impending mental collapse." CR>)
227                (<AND <VERB? GIVE>
228                      <EQUAL? ,PRSI ,ME>>
229                 <PERFORM ,V?TAKE ,PRSO>
230                 <RTRUE>)
231                (<VERB? MAKE>
232                 <TELL "Only you can do that." CR>)
233                (<VERB? DISEMBARK>
234                 <TELL "You'll have to do that on your own." CR>)
235                (<VERB? EAT>
236                 <TELL "Auto-cannibalism is not the answer." CR>)
237                (<VERB? ATTACK MUNG>
238                 <COND (<AND ,PRSI <FSET? ,PRSI ,WEAPONBIT>>
239                        <JIGS-UP "If you insist.... Poof, you're dead!">)
240                       (T
241                        <TELL "Suicide is not the answer." CR>)>)
242                (<VERB? THROW>
243                 <COND (<==? ,PRSO ,ME>
244                        <TELL
245 "Why don't you just walk like normal people?" CR>)>)
246                (<VERB? TAKE>
247                 <TELL "How romantic!" CR>)
248                (<VERB? EXAMINE>
249                 <COND %<COND (<==? ,ZORK-NUMBER 1>
250                               '(<EQUAL? ,HERE <LOC ,MIRROR-1> <LOC ,MIRROR-2>>
251                                 <TELL
252 "Your image in the mirror looks tired." CR>))
253                              (<==? ,ZORK-NUMBER 3>
254                               '(,INVIS
255                                 <TELL
256 "A good trick, as you are currently invisible." CR>))
257                              (T
258                               '(<NULL-F> <RTRUE>))>
259                       (T
260                        %<COND (<==? ,ZORK-NUMBER 3>
261                                '<TELL
262 "What you can see looks pretty much as usual, sorry to say." CR>)
263                               (ELSE
264                                '<TELL
265 "That's difficult unless your eyes are prehensile." CR>)>)>)>>
266
267 <OBJECT ADVENTURER
268         (SYNONYM ADVENTURER)
269         (DESC "cretin")
270         (FLAGS NDESCBIT INVISIBLE SACREDBIT ACTORBIT)
271         (STRENGTH 0)
272         (ACTION 0)>
273
274 <OBJECT PATHOBJ
275         (IN GLOBAL-OBJECTS)
276         (SYNONYM TRAIL PATH)
277         (ADJECTIVE FOREST NARROW LONG WINDING)
278         (DESC "passage")
279         (FLAGS NDESCBIT)
280         (ACTION PATH-OBJECT)>
281
282 <ROUTINE PATH-OBJECT ()
283          <COND (<VERB? TAKE FOLLOW>
284                 <TELL "You must specify a direction to go." CR>)
285                (<VERB? FIND>
286                 <TELL "I can't help you there...." CR>)
287                (<VERB? DIG>
288                 <TELL "Not a chance." CR>)>>
289
290 <OBJECT ZORKMID
291         (IN GLOBAL-OBJECTS)
292         (SYNONYM ZORKMID)
293         (DESC "zorkmid")
294         (ACTION ZORKMID-FUNCTION)>
295
296 <ROUTINE ZORKMID-FUNCTION ()
297     <COND (<VERB? EXAMINE>
298            <TELL
299 "The zorkmid is the unit of currency of the Great Underground Empire." CR>)
300           (<VERB? FIND>
301            <TELL
302 "The best way to find zorkmids is to go out and look for them." CR>)>>
303
304 <OBJECT HANDS
305         (IN GLOBAL-OBJECTS)
306         (SYNONYM PAIR HANDS HAND)
307         (ADJECTIVE BARE)
308         (DESC "pair of hands")
309         (FLAGS NDESCBIT TOOLBIT)>