extern.h revision 1.13 1 1.13 roy /* $NetBSD: extern.h,v 1.13 2010/02/03 15:34:38 roy Exp $ */
2 1.1 christos
3 1.3 christos /*-
4 1.3 christos * Copyright (c) 1997 The NetBSD Foundation, Inc.
5 1.3 christos * All rights reserved.
6 1.3 christos *
7 1.3 christos * This code is derived from software contributed to The NetBSD Foundation
8 1.3 christos * by Christos Zoulas.
9 1.1 christos *
10 1.1 christos * Redistribution and use in source and binary forms, with or without
11 1.1 christos * modification, are permitted provided that the following conditions
12 1.1 christos * are met:
13 1.1 christos * 1. Redistributions of source code must retain the above copyright
14 1.1 christos * notice, this list of conditions and the following disclaimer.
15 1.1 christos * 2. Redistributions in binary form must reproduce the above copyright
16 1.1 christos * notice, this list of conditions and the following disclaimer in the
17 1.1 christos * documentation and/or other materials provided with the distribution.
18 1.1 christos *
19 1.3 christos * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
20 1.3 christos * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
21 1.3 christos * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22 1.3 christos * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
23 1.3 christos * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 1.3 christos * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 1.3 christos * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 1.3 christos * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 1.3 christos * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 1.3 christos * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 1.3 christos * POSSIBILITY OF SUCH DAMAGE.
30 1.1 christos */
31 1.1 christos #ifndef _EXTERN_H_
32 1.1 christos #define _EXTERN_H_
33 1.5 wiz #include <stdarg.h>
34 1.1 christos #include <stdio.h>
35 1.1 christos
36 1.1 christos /* alloc.c */
37 1.6 jsm long *alloc(unsigned);
38 1.1 christos
39 1.1 christos /* hack.apply.c */
40 1.6 jsm int doapply(void);
41 1.6 jsm int holetime(void);
42 1.6 jsm void dighole(void);
43 1.1 christos
44 1.1 christos /* hack.bones.c */
45 1.6 jsm void savebones(void);
46 1.6 jsm int getbones(void);
47 1.1 christos
48 1.1 christos /* hack.c */
49 1.6 jsm void unsee(void);
50 1.6 jsm void seeoff(int);
51 1.6 jsm void domove(void);
52 1.6 jsm int dopickup(void);
53 1.6 jsm void pickup(int);
54 1.6 jsm void lookaround(void);
55 1.6 jsm int monster_nearby(void);
56 1.6 jsm int rroom(int, int);
57 1.6 jsm int cansee(xchar, xchar);
58 1.6 jsm int sgn(int);
59 1.6 jsm void setsee(void);
60 1.6 jsm void nomul(int);
61 1.6 jsm int abon(void);
62 1.6 jsm int dbon(void);
63 1.6 jsm void losestr(int);
64 1.6 jsm void losehp(int, const char *);
65 1.6 jsm void losehp_m(int, struct monst *);
66 1.6 jsm void losexp(void);
67 1.6 jsm int inv_weight(void);
68 1.6 jsm long newuexp(void);
69 1.1 christos
70 1.1 christos /* hack.cmd.c */
71 1.6 jsm void rhack(const char *);
72 1.6 jsm int movecmd(int);
73 1.6 jsm int getdir(boolean);
74 1.6 jsm void confdir(void);
75 1.6 jsm int finddir(void);
76 1.6 jsm int isroom(int, int);
77 1.6 jsm int isok(int, int);
78 1.1 christos
79 1.1 christos /* hack.do.c */
80 1.6 jsm int dodrop(void);
81 1.6 jsm void dropx(struct obj *);
82 1.6 jsm int doddrop(void);
83 1.6 jsm int dodown(void);
84 1.6 jsm int doup(void);
85 1.6 jsm void goto_level(int, boolean);
86 1.6 jsm int donull(void);
87 1.6 jsm int dopray(void);
88 1.6 jsm int dothrow(void);
89 1.6 jsm struct obj *splitobj(struct obj *, int);
90 1.6 jsm void more_experienced(int, int);
91 1.6 jsm void set_wounded_legs(long, int);
92 1.6 jsm void heal_legs(void);
93 1.1 christos
94 1.1 christos /* hack.do_name.c */
95 1.6 jsm coord getpos(int, const char *);
96 1.6 jsm int do_mname(void);
97 1.6 jsm int ddocall(void);
98 1.6 jsm void docall(struct obj *);
99 1.6 jsm char *monnam(struct monst *);
100 1.6 jsm char *Monnam(struct monst *);
101 1.6 jsm char *amonnam(struct monst *, const char *);
102 1.6 jsm char *Amonnam(struct monst *, const char *);
103 1.6 jsm char *Xmonnam(struct monst *);
104 1.1 christos
105 1.1 christos /* hack.do_wear.c */
106 1.6 jsm int doremarm(void);
107 1.6 jsm int doremring(void);
108 1.6 jsm int armoroff(struct obj *);
109 1.6 jsm int doweararm(void);
110 1.6 jsm int dowearring(void);
111 1.6 jsm void ringoff(struct obj *);
112 1.6 jsm void find_ac(void);
113 1.6 jsm void glibr(void);
114 1.6 jsm struct obj *some_armor(void);
115 1.6 jsm void corrode_armor(void);
116 1.1 christos
117 1.1 christos /* hack.dog.c */
118 1.6 jsm void makedog(void);
119 1.6 jsm void losedogs(void);
120 1.6 jsm void keepdogs(void);
121 1.6 jsm void fall_down(struct monst *);
122 1.6 jsm int dog_move(struct monst *, int);
123 1.6 jsm int inroom(xchar, xchar);
124 1.6 jsm int tamedog(struct monst *, struct obj *);
125 1.1 christos
126 1.1 christos /* hack.eat.c */
127 1.6 jsm void init_uhunger(void);
128 1.6 jsm int doeat(void);
129 1.6 jsm void gethungry(void);
130 1.6 jsm void morehungry(int);
131 1.6 jsm void lesshungry(int);
132 1.6 jsm int poisonous(struct obj *);
133 1.1 christos
134 1.1 christos /* hack.end.c */
135 1.6 jsm int dodone(void);
136 1.6 jsm void done1(int);
137 1.6 jsm void done_in_by(struct monst *);
138 1.6 jsm void done(const char *);
139 1.6 jsm void clearlocks(void);
140 1.13 roy void hang_up(int) __attribute__((__noreturn__));
141 1.6 jsm char *eos(char *);
142 1.6 jsm void charcat(char *, int);
143 1.6 jsm void prscore(int, char **);
144 1.1 christos
145 1.1 christos /* hack.engrave.c */
146 1.6 jsm int sengr_at(const char *, xchar, xchar);
147 1.6 jsm void u_wipe_engr(int);
148 1.6 jsm void wipe_engr_at(xchar, xchar, xchar);
149 1.6 jsm void read_engr_at(int, int);
150 1.6 jsm void make_engr_at(int, int, const char *);
151 1.6 jsm int doengrave(void);
152 1.6 jsm void save_engravings(int);
153 1.6 jsm void rest_engravings(int);
154 1.1 christos
155 1.1 christos /* hack.fight.c */
156 1.6 jsm int hitmm(struct monst *, struct monst *);
157 1.6 jsm void mondied(struct monst *);
158 1.6 jsm int fightm(struct monst *);
159 1.6 jsm int thitu(int, int, const char *);
160 1.6 jsm boolean hmon(struct monst *, struct obj *, int);
161 1.6 jsm int attack(struct monst *);
162 1.1 christos
163 1.1 christos /* hack.invent.c */
164 1.6 jsm struct obj *addinv(struct obj *);
165 1.6 jsm void useup(struct obj *);
166 1.6 jsm void freeinv(struct obj *);
167 1.6 jsm void delobj(struct obj *);
168 1.6 jsm void freeobj(struct obj *);
169 1.6 jsm void freegold(struct gold *);
170 1.6 jsm void deltrap(struct trap *);
171 1.6 jsm struct monst *m_at(int, int);
172 1.6 jsm struct obj *o_at(int, int);
173 1.6 jsm struct obj *sobj_at(int, int, int);
174 1.6 jsm int carried(struct obj *);
175 1.6 jsm int carrying(int);
176 1.6 jsm struct obj *o_on(unsigned int, struct obj *);
177 1.6 jsm struct trap *t_at(int, int);
178 1.6 jsm struct gold *g_at(int, int);
179 1.6 jsm struct obj *getobj(const char *, const char *);
180 1.6 jsm int ggetobj(const char *, int (*fn)(struct obj *), int);
181 1.6 jsm int askchain(struct obj *, char *, int, int (*)(struct obj *),
182 1.6 jsm int (*)(struct obj *), int);
183 1.6 jsm void prinv(struct obj *);
184 1.6 jsm int ddoinv(void);
185 1.6 jsm int dotypeinv(void);
186 1.6 jsm int dolook(void);
187 1.6 jsm void stackobj(struct obj *);
188 1.6 jsm int doprgold(void);
189 1.6 jsm int doprwep(void);
190 1.6 jsm int doprarm(void);
191 1.6 jsm int doprring(void);
192 1.6 jsm int digit(int);
193 1.1 christos
194 1.1 christos /* hack.ioctl.c */
195 1.6 jsm void getioctls(void);
196 1.6 jsm void setioctls(void);
197 1.6 jsm int dosuspend(void);
198 1.1 christos
199 1.1 christos /* hack.lev.c */
200 1.6 jsm void savelev(int, xchar);
201 1.9 lukem void bwrite(int, const void *, size_t);
202 1.6 jsm void saveobjchn(int, struct obj *);
203 1.6 jsm void savemonchn(int, struct monst *);
204 1.6 jsm void getlev(int, int, xchar);
205 1.6 jsm void mread(int, char *, unsigned);
206 1.6 jsm void mklev(void);
207 1.1 christos
208 1.1 christos /* hack.main.c */
209 1.6 jsm void glo(int);
210 1.6 jsm void askname(void);
211 1.6 jsm void impossible(const char *, ...)
212 1.1 christos __attribute__((__format__(__printf__, 1, 2)));
213 1.6 jsm void stop_occupation(void);
214 1.1 christos
215 1.1 christos /* hack.makemon.c */
216 1.6 jsm struct monst *makemon(const struct permonst *, int, int);
217 1.6 jsm coord enexto(xchar, xchar);
218 1.6 jsm int goodpos(int, int);
219 1.6 jsm void rloc(struct monst *);
220 1.6 jsm struct monst *mkmon_at(int, int, int);
221 1.1 christos
222 1.1 christos /* hack.mhitu.c */
223 1.6 jsm int mhitu(struct monst *);
224 1.6 jsm int hitu(struct monst *, int);
225 1.1 christos
226 1.1 christos /* hack.mklev.c */
227 1.12 dholland struct mkroom;
228 1.6 jsm void makelevel(void);
229 1.6 jsm void mktrap(int, int, struct mkroom *);
230 1.1 christos
231 1.1 christos /* hack.mkmaze.c */
232 1.6 jsm void makemaz(void);
233 1.6 jsm coord mazexy(void);
234 1.1 christos
235 1.1 christos /* hack.mkobj.c */
236 1.6 jsm struct obj *mkobj_at(int, int, int);
237 1.6 jsm void mksobj_at(int, int, int);
238 1.6 jsm struct obj *mkobj(int);
239 1.6 jsm struct obj *mksobj(int);
240 1.6 jsm int letter(int);
241 1.6 jsm int weight(struct obj *);
242 1.6 jsm void mkgold(long, int, int);
243 1.1 christos
244 1.1 christos /* hack.mkshop.c */
245 1.6 jsm void mkshop(void);
246 1.6 jsm void mkzoo(int);
247 1.6 jsm void mkswamp(void);
248 1.1 christos
249 1.1 christos /* hack.mon.c */
250 1.6 jsm void movemon(void);
251 1.6 jsm void justswld(struct monst *, const char *);
252 1.6 jsm void youswld(struct monst *, int, int, const char *);
253 1.6 jsm int dochug(struct monst *);
254 1.6 jsm int m_move(struct monst *, int);
255 1.6 jsm int mfndpos(struct monst *, coord[9 ], int[9 ], int);
256 1.6 jsm int dist(int, int);
257 1.6 jsm void poisoned(const char *, const char *);
258 1.6 jsm void mondead(struct monst *);
259 1.6 jsm void replmon(struct monst *, struct monst *);
260 1.6 jsm void relmon(struct monst *);
261 1.6 jsm void monfree(struct monst *);
262 1.6 jsm void unstuck(struct monst *);
263 1.6 jsm void killed(struct monst *);
264 1.6 jsm void kludge(const char *, const char *);
265 1.6 jsm void rescham(void);
266 1.6 jsm int newcham(struct monst *, const struct permonst *);
267 1.6 jsm void mnexto(struct monst *);
268 1.6 jsm void setmangry(struct monst *);
269 1.6 jsm int canseemon(struct monst *);
270 1.1 christos
271 1.1 christos /* hack.monst.c */
272 1.1 christos
273 1.1 christos /* hack.o_init.c */
274 1.6 jsm int letindex(int);
275 1.6 jsm void init_objects(void);
276 1.6 jsm int probtype(int);
277 1.6 jsm void oinit(void);
278 1.6 jsm void savenames(int);
279 1.6 jsm void restnames(int);
280 1.6 jsm int dodiscovered(void);
281 1.1 christos
282 1.1 christos /* hack.objnam.c */
283 1.6 jsm char *typename(int);
284 1.6 jsm char *xname(struct obj *);
285 1.6 jsm char *doname(struct obj *);
286 1.11 dholland void setan(const char *, char *, size_t);
287 1.6 jsm char *aobjnam(struct obj *, const char *);
288 1.6 jsm char *Doname(struct obj *);
289 1.6 jsm struct obj *readobjnam(char *);
290 1.1 christos
291 1.1 christos /* hack.options.c */
292 1.6 jsm void initoptions(void);
293 1.6 jsm int doset(void);
294 1.1 christos
295 1.1 christos /* hack.pager.c */
296 1.6 jsm int dowhatis(void);
297 1.6 jsm void set_whole_screen(void);
298 1.6 jsm int readnews(void);
299 1.6 jsm void set_pager(int);
300 1.6 jsm int page_line(const char *);
301 1.6 jsm void cornline(int, const char *);
302 1.6 jsm int dohelp(void);
303 1.6 jsm int dosh(void);
304 1.1 christos
305 1.1 christos /* hack.potion.c */
306 1.6 jsm int dodrink(void);
307 1.6 jsm void pluslvl(void);
308 1.6 jsm void strange_feeling(struct obj *, const char *);
309 1.6 jsm void potionhit(struct monst *, struct obj *);
310 1.6 jsm void potionbreathe(struct obj *);
311 1.6 jsm int dodip(void);
312 1.1 christos
313 1.1 christos /* hack.pri.c */
314 1.6 jsm void swallowed(void);
315 1.6 jsm void panic(const char *, ...)
316 1.1 christos __attribute__((__format__(__printf__, 1, 2)));
317 1.6 jsm void atl(int, int, int);
318 1.6 jsm void on_scr(int, int);
319 1.6 jsm void tmp_at(schar, schar);
320 1.6 jsm void Tmp_at(schar, schar);
321 1.6 jsm void setclipped(void) __attribute__((__noreturn__));
322 1.6 jsm void at(xchar, xchar, int);
323 1.6 jsm void prme(void);
324 1.6 jsm int doredraw(void);
325 1.6 jsm void docrt(void);
326 1.6 jsm void docorner(int, int);
327 1.6 jsm void curs_on_u(void);
328 1.6 jsm void pru(void);
329 1.6 jsm void prl(int, int);
330 1.6 jsm char news0(xchar, xchar);
331 1.6 jsm void newsym(int, int);
332 1.6 jsm void mnewsym(int, int);
333 1.6 jsm void nosee(int, int);
334 1.6 jsm void prl1(int, int);
335 1.6 jsm void nose1(int, int);
336 1.6 jsm int vism_at(int, int);
337 1.6 jsm void pobj(struct obj *);
338 1.6 jsm void unpobj(struct obj *);
339 1.6 jsm void seeobjs(void);
340 1.6 jsm void seemons(void);
341 1.6 jsm void pmon(struct monst *);
342 1.6 jsm void unpmon(struct monst *);
343 1.6 jsm void nscr(void);
344 1.6 jsm void bot(void);
345 1.6 jsm void mstatusline(struct monst *);
346 1.6 jsm void cls(void);
347 1.1 christos
348 1.1 christos /* hack.read.c */
349 1.6 jsm int doread(void);
350 1.6 jsm void litroom(boolean);
351 1.1 christos
352 1.1 christos /* hack.rip.c */
353 1.6 jsm void outrip(void);
354 1.1 christos
355 1.1 christos /* hack.rumors.c */
356 1.6 jsm void outrumor(void);
357 1.1 christos
358 1.1 christos /* hack.save.c */
359 1.6 jsm int dosave(void);
360 1.6 jsm int dorecover(int);
361 1.6 jsm struct obj *restobjchn(int);
362 1.6 jsm struct monst *restmonchn(int);
363 1.1 christos
364 1.1 christos /* hack.search.c */
365 1.6 jsm int findit(void);
366 1.6 jsm int dosearch(void);
367 1.6 jsm int doidtrap(void);
368 1.6 jsm void wakeup(struct monst *);
369 1.6 jsm void seemimic(struct monst *);
370 1.1 christos
371 1.1 christos /* hack.shk.c */
372 1.6 jsm void obfree(struct obj *, struct obj *);
373 1.6 jsm void paybill(void);
374 1.6 jsm char *shkname(struct monst *);
375 1.6 jsm void shkdead(struct monst *);
376 1.6 jsm void replshk(struct monst *, struct monst *);
377 1.6 jsm int inshop(void);
378 1.6 jsm int dopay(void);
379 1.1 christos struct bill_x;
380 1.6 jsm void addtobill(struct obj *);
381 1.6 jsm void splitbill(struct obj *, struct obj *);
382 1.6 jsm void subfrombill(struct obj *);
383 1.6 jsm int doinvbill(int);
384 1.6 jsm int shkcatch(struct obj *);
385 1.6 jsm int shk_move(struct monst *);
386 1.6 jsm void shopdig(int);
387 1.6 jsm int online(int, int);
388 1.6 jsm int follower(struct monst *);
389 1.1 christos
390 1.1 christos /* hack.shknam.c */
391 1.6 jsm void findname(char *, int);
392 1.1 christos
393 1.1 christos /* hack.steal.c */
394 1.6 jsm long somegold(void);
395 1.6 jsm void stealgold(struct monst *);
396 1.6 jsm int steal(struct monst *);
397 1.6 jsm void mpickobj(struct monst *, struct obj *);
398 1.6 jsm int stealamulet(struct monst *);
399 1.6 jsm void relobj(struct monst *, int);
400 1.1 christos
401 1.1 christos /* hack.termcap.c */
402 1.6 jsm void startup(void);
403 1.13 roy void startscreen(void);
404 1.13 roy void endscreen(void);
405 1.6 jsm void curs(int, int);
406 1.6 jsm void cl_end(void);
407 1.13 roy void clearscreen(void);
408 1.6 jsm void home(void);
409 1.6 jsm void standoutbeg(void);
410 1.6 jsm void standoutend(void);
411 1.6 jsm void backsp(void);
412 1.13 roy void sound_bell(void);
413 1.6 jsm void delay_output(void);
414 1.6 jsm void cl_eos(void);
415 1.1 christos
416 1.1 christos /* hack.timeout.c */
417 1.6 jsm void timeout(void);
418 1.1 christos
419 1.1 christos /* hack.topl.c */
420 1.6 jsm int doredotopl(void);
421 1.6 jsm void remember_topl(void);
422 1.6 jsm void addtopl(const char *);
423 1.6 jsm void more(void);
424 1.6 jsm void cmore(const char *);
425 1.6 jsm void clrlin(void);
426 1.6 jsm void pline(const char *, ...)
427 1.1 christos __attribute__((__format__(__printf__, 1, 2)));
428 1.6 jsm void vpline(const char *, va_list)
429 1.4 jsm __attribute__((__format__(__printf__, 1, 0)));
430 1.6 jsm void putsym(int);
431 1.6 jsm void putstr(const char *);
432 1.1 christos
433 1.1 christos /* hack.track.c */
434 1.6 jsm void initrack(void);
435 1.6 jsm void settrack(void);
436 1.6 jsm coord *gettrack(int, int);
437 1.1 christos
438 1.1 christos /* hack.trap.c */
439 1.6 jsm struct trap *maketrap(int, int, int);
440 1.6 jsm void dotrap(struct trap *);
441 1.6 jsm int mintrap(struct monst *);
442 1.6 jsm void selftouch(const char *);
443 1.6 jsm void float_up(void);
444 1.6 jsm void float_down(void);
445 1.6 jsm void tele(void);
446 1.6 jsm int dotele(void);
447 1.6 jsm void placebc(int);
448 1.6 jsm void unplacebc(void);
449 1.6 jsm void level_tele(void);
450 1.6 jsm void drown(void);
451 1.1 christos
452 1.1 christos /* hack.tty.c */
453 1.6 jsm void gettty(void);
454 1.6 jsm void settty(const char *);
455 1.6 jsm void setftty(void);
456 1.6 jsm void error(const char *, ...)
457 1.1 christos __attribute__((__format__(__printf__, 1, 2),__noreturn__));
458 1.6 jsm void getlin(char *);
459 1.6 jsm void getret(void);
460 1.6 jsm void cgetret(const char *);
461 1.6 jsm void xwaitforspace(const char *);
462 1.6 jsm char *parse(void);
463 1.6 jsm char readchar(void);
464 1.6 jsm void end_of_input(void) __attribute__((__noreturn__));
465 1.1 christos
466 1.1 christos /* hack.u_init.c */
467 1.6 jsm void u_init(void);
468 1.1 christos struct trobj;
469 1.6 jsm void plnamesuffix(void);
470 1.1 christos
471 1.1 christos /* hack.unix.c */
472 1.6 jsm void setrandom(void);
473 1.6 jsm int getyear(void);
474 1.10 ginsbach char *getdatestr(void);
475 1.6 jsm int phase_of_the_moon(void);
476 1.6 jsm int night(void);
477 1.6 jsm int midnight(void);
478 1.6 jsm void gethdate(char *);
479 1.6 jsm int uptodate(int);
480 1.6 jsm void getlock(void);
481 1.6 jsm void getmailstatus(void);
482 1.6 jsm void ckmailstatus(void);
483 1.6 jsm void newmail(void);
484 1.6 jsm void mdrush(struct monst *, boolean);
485 1.6 jsm void readmail(void);
486 1.6 jsm void regularize(char *);
487 1.1 christos
488 1.1 christos /* hack.vault.c */
489 1.6 jsm void setgd(void);
490 1.6 jsm int gd_move(void);
491 1.6 jsm void gddead(void);
492 1.6 jsm void replgd(struct monst *, struct monst *);
493 1.6 jsm void invault(void);
494 1.1 christos
495 1.1 christos /* hack.version.c */
496 1.6 jsm int doversion(void);
497 1.1 christos
498 1.1 christos /* hack.wield.c */
499 1.6 jsm void setuwep(struct obj *);
500 1.6 jsm int dowield(void);
501 1.6 jsm void corrode_weapon(void);
502 1.6 jsm int chwepon(struct obj *, int);
503 1.1 christos
504 1.1 christos /* hack.wizard.c */
505 1.6 jsm void amulet(void);
506 1.6 jsm int wiz_hit(struct monst *);
507 1.6 jsm void inrange(struct monst *);
508 1.1 christos
509 1.1 christos /* hack.worm.c */
510 1.1 christos #ifndef NOWORM
511 1.6 jsm int getwn(struct monst *);
512 1.6 jsm void initworm(struct monst *);
513 1.6 jsm void worm_move(struct monst *);
514 1.6 jsm void worm_nomove(struct monst *);
515 1.6 jsm void wormdead(struct monst *);
516 1.6 jsm void wormhit(struct monst *);
517 1.6 jsm void wormsee(unsigned);
518 1.1 christos struct wseg;
519 1.6 jsm void pwseg(struct wseg *);
520 1.6 jsm void cutworm(struct monst *, xchar, xchar, uchar);
521 1.1 christos #endif
522 1.1 christos
523 1.1 christos /* hack.worn.c */
524 1.6 jsm void setworn(struct obj *, long);
525 1.6 jsm void setnotworn(struct obj *);
526 1.1 christos
527 1.1 christos /* hack.zap.c */
528 1.6 jsm int dozap(void);
529 1.6 jsm const char *exclam(int);
530 1.6 jsm void hit(const char *, struct monst *, const char *);
531 1.6 jsm void miss(const char *, struct monst *);
532 1.6 jsm struct monst *bhit(int, int, int, int,
533 1.1 christos void (*)(struct monst *, struct obj *),
534 1.1 christos int (*)(struct obj *, struct obj *),
535 1.6 jsm struct obj *);
536 1.6 jsm struct monst *boomhit(int, int);
537 1.6 jsm void buzz(int, xchar, xchar, int, int);
538 1.6 jsm void fracture_rock(struct obj *);
539 1.1 christos
540 1.1 christos /* rnd.c */
541 1.6 jsm int rn1(int, int);
542 1.6 jsm int rn2(int);
543 1.6 jsm int rnd(int);
544 1.6 jsm int d(int, int);
545 1.1 christos #endif /* _EXTERN_H_ */
546