extern.h revision 1.10 1 1.10 ginsbach /* $NetBSD: extern.h,v 1.10 2009/05/06 02:59:12 ginsbach 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.6 jsm long *enlarge(char *, unsigned);
39 1.1 christos
40 1.1 christos /* hack.apply.c */
41 1.6 jsm int doapply(void);
42 1.6 jsm int holetime(void);
43 1.6 jsm void dighole(void);
44 1.1 christos
45 1.1 christos /* hack.bones.c */
46 1.6 jsm void savebones(void);
47 1.6 jsm int getbones(void);
48 1.1 christos
49 1.1 christos /* hack.c */
50 1.6 jsm void unsee(void);
51 1.6 jsm void seeoff(int);
52 1.6 jsm void domove(void);
53 1.6 jsm void movobj(struct obj *, int, int);
54 1.6 jsm int dopickup(void);
55 1.6 jsm void pickup(int);
56 1.6 jsm void lookaround(void);
57 1.6 jsm int monster_nearby(void);
58 1.6 jsm int rroom(int, int);
59 1.6 jsm int cansee(xchar, xchar);
60 1.6 jsm int sgn(int);
61 1.6 jsm void setsee(void);
62 1.6 jsm void nomul(int);
63 1.6 jsm int abon(void);
64 1.6 jsm int dbon(void);
65 1.6 jsm void losestr(int);
66 1.6 jsm void losehp(int, const char *);
67 1.6 jsm void losehp_m(int, struct monst *);
68 1.6 jsm void losexp(void);
69 1.6 jsm int inv_weight(void);
70 1.6 jsm int inv_cnt(void);
71 1.6 jsm long newuexp(void);
72 1.1 christos
73 1.1 christos /* hack.cmd.c */
74 1.6 jsm void rhack(const char *);
75 1.6 jsm int doextcmd(void);
76 1.6 jsm char lowc(int);
77 1.6 jsm char unctrl(int);
78 1.6 jsm int movecmd(int);
79 1.6 jsm int getdir(boolean);
80 1.6 jsm void confdir(void);
81 1.6 jsm int finddir(void);
82 1.6 jsm int isroom(int, int);
83 1.6 jsm int isok(int, int);
84 1.1 christos
85 1.1 christos /* hack.do.c */
86 1.6 jsm int dodrop(void);
87 1.6 jsm void dropx(struct obj *);
88 1.6 jsm void dropy(struct obj *);
89 1.6 jsm int doddrop(void);
90 1.6 jsm int dodown(void);
91 1.6 jsm int doup(void);
92 1.6 jsm void goto_level(int, boolean);
93 1.6 jsm int donull(void);
94 1.6 jsm int dopray(void);
95 1.6 jsm int dothrow(void);
96 1.6 jsm struct obj *splitobj(struct obj *, int);
97 1.6 jsm void more_experienced(int, int);
98 1.6 jsm void set_wounded_legs(long, int);
99 1.6 jsm void heal_legs(void);
100 1.1 christos
101 1.1 christos /* hack.do_name.c */
102 1.6 jsm coord getpos(int, const char *);
103 1.6 jsm int do_mname(void);
104 1.6 jsm void do_oname(struct obj *);
105 1.6 jsm int ddocall(void);
106 1.6 jsm void docall(struct obj *);
107 1.6 jsm char *xmonnam(struct monst *, int);
108 1.6 jsm char *lmonnam(struct monst *);
109 1.6 jsm char *monnam(struct monst *);
110 1.6 jsm char *Monnam(struct monst *);
111 1.6 jsm char *amonnam(struct monst *, const char *);
112 1.6 jsm char *Amonnam(struct monst *, const char *);
113 1.6 jsm char *Xmonnam(struct monst *);
114 1.6 jsm char *visctrl(int);
115 1.1 christos
116 1.1 christos /* hack.do_wear.c */
117 1.6 jsm void off_msg(struct obj *);
118 1.6 jsm int doremarm(void);
119 1.6 jsm int doremring(void);
120 1.6 jsm int dorr(struct obj *);
121 1.6 jsm int cursed(struct obj *);
122 1.6 jsm int armoroff(struct obj *);
123 1.6 jsm int doweararm(void);
124 1.6 jsm int dowearring(void);
125 1.6 jsm void ringoff(struct obj *);
126 1.6 jsm void find_ac(void);
127 1.6 jsm void glibr(void);
128 1.6 jsm struct obj *some_armor(void);
129 1.6 jsm void corrode_armor(void);
130 1.1 christos
131 1.1 christos /* hack.dog.c */
132 1.6 jsm void makedog(void);
133 1.6 jsm void initedog(struct monst *);
134 1.6 jsm void losedogs(void);
135 1.6 jsm void keepdogs(void);
136 1.6 jsm void fall_down(struct monst *);
137 1.6 jsm int dogfood(struct obj *);
138 1.6 jsm int dog_move(struct monst *, int);
139 1.6 jsm int inroom(xchar, xchar);
140 1.6 jsm int tamedog(struct monst *, struct obj *);
141 1.1 christos
142 1.1 christos /* hack.eat.c */
143 1.6 jsm void init_uhunger(void);
144 1.6 jsm int opentin(void);
145 1.6 jsm int Meatdone(void);
146 1.6 jsm int doeat(void);
147 1.6 jsm void gethungry(void);
148 1.6 jsm void morehungry(int);
149 1.6 jsm void lesshungry(int);
150 1.6 jsm int unfaint(void);
151 1.6 jsm void newuhs(boolean);
152 1.6 jsm int poisonous(struct obj *);
153 1.6 jsm int eatcorpse(struct obj *);
154 1.1 christos
155 1.1 christos /* hack.end.c */
156 1.6 jsm int dodone(void);
157 1.6 jsm void done1(int);
158 1.6 jsm void done_intr(int);
159 1.6 jsm void done_hangup(int);
160 1.6 jsm void done_in_by(struct monst *);
161 1.6 jsm void done(const char *);
162 1.6 jsm void topten(void);
163 1.6 jsm void outheader(void);
164 1.1 christos struct toptenentry;
165 1.6 jsm int outentry(int, struct toptenentry *, int);
166 1.6 jsm char *itoa(int);
167 1.6 jsm const char *ordin(int);
168 1.6 jsm void clearlocks(void);
169 1.6 jsm void hangup(int) __attribute__((__noreturn__));
170 1.6 jsm char *eos(char *);
171 1.6 jsm void charcat(char *, int);
172 1.6 jsm void prscore(int, char **);
173 1.1 christos
174 1.1 christos /* hack.engrave.c */
175 1.6 jsm struct engr *engr_at(xchar, xchar);
176 1.6 jsm int sengr_at(const char *, xchar, xchar);
177 1.6 jsm void u_wipe_engr(int);
178 1.6 jsm void wipe_engr_at(xchar, xchar, xchar);
179 1.6 jsm void read_engr_at(int, int);
180 1.6 jsm void make_engr_at(int, int, const char *);
181 1.6 jsm int doengrave(void);
182 1.6 jsm void save_engravings(int);
183 1.6 jsm void rest_engravings(int);
184 1.6 jsm void del_engr(struct engr *);
185 1.1 christos
186 1.1 christos /* hack.fight.c */
187 1.6 jsm int hitmm(struct monst *, struct monst *);
188 1.6 jsm void mondied(struct monst *);
189 1.6 jsm void monstone(struct monst *);
190 1.6 jsm int fightm(struct monst *);
191 1.6 jsm int thitu(int, int, const char *);
192 1.6 jsm boolean hmon(struct monst *, struct obj *, int);
193 1.6 jsm int attack(struct monst *);
194 1.1 christos
195 1.1 christos /* hack.invent.c */
196 1.6 jsm struct obj *addinv(struct obj *);
197 1.6 jsm void useup(struct obj *);
198 1.6 jsm void freeinv(struct obj *);
199 1.6 jsm void delobj(struct obj *);
200 1.6 jsm void freeobj(struct obj *);
201 1.6 jsm void freegold(struct gold *);
202 1.6 jsm void deltrap(struct trap *);
203 1.6 jsm struct monst *m_at(int, int);
204 1.6 jsm struct obj *o_at(int, int);
205 1.6 jsm struct obj *sobj_at(int, int, int);
206 1.6 jsm int carried(struct obj *);
207 1.6 jsm int carrying(int);
208 1.6 jsm struct obj *o_on(unsigned int, struct obj *);
209 1.6 jsm struct trap *t_at(int, int);
210 1.6 jsm struct gold *g_at(int, int);
211 1.6 jsm struct obj *mkgoldobj(long);
212 1.6 jsm struct obj *getobj(const char *, const char *);
213 1.6 jsm int ckunpaid(struct obj *);
214 1.6 jsm int ggetobj(const char *, int (*fn)(struct obj *), int);
215 1.6 jsm int askchain(struct obj *, char *, int, int (*)(struct obj *),
216 1.6 jsm int (*)(struct obj *), int);
217 1.6 jsm char obj_to_let(struct obj *);
218 1.6 jsm void prinv(struct obj *);
219 1.6 jsm int ddoinv(void);
220 1.6 jsm void doinv(char *);
221 1.6 jsm int dotypeinv(void);
222 1.6 jsm int dolook(void);
223 1.6 jsm void stackobj(struct obj *);
224 1.6 jsm int merged(struct obj *, struct obj *, int);
225 1.6 jsm int countgold(void);
226 1.6 jsm int doprgold(void);
227 1.6 jsm int doprwep(void);
228 1.6 jsm int doprarm(void);
229 1.6 jsm int doprring(void);
230 1.6 jsm int digit(int);
231 1.1 christos
232 1.1 christos /* hack.ioctl.c */
233 1.6 jsm void getioctls(void);
234 1.6 jsm void setioctls(void);
235 1.6 jsm int dosuspend(void);
236 1.1 christos
237 1.1 christos /* hack.lev.c */
238 1.6 jsm void savelev(int, xchar);
239 1.9 lukem void bwrite(int, const void *, size_t);
240 1.6 jsm void saveobjchn(int, struct obj *);
241 1.6 jsm void savemonchn(int, struct monst *);
242 1.6 jsm void savegoldchn(int, struct gold *);
243 1.6 jsm void savetrapchn(int, struct trap *);
244 1.6 jsm void getlev(int, int, xchar);
245 1.6 jsm void mread(int, char *, unsigned);
246 1.6 jsm void mklev(void);
247 1.1 christos
248 1.1 christos /* hack.main.c */
249 1.6 jsm void glo(int);
250 1.6 jsm void askname(void);
251 1.6 jsm void impossible(const char *, ...)
252 1.1 christos __attribute__((__format__(__printf__, 1, 2)));
253 1.6 jsm void stop_occupation(void);
254 1.1 christos
255 1.1 christos /* hack.makemon.c */
256 1.6 jsm struct monst *makemon(const struct permonst *, int, int);
257 1.6 jsm coord enexto(xchar, xchar);
258 1.6 jsm int goodpos(int, int);
259 1.6 jsm void rloc(struct monst *);
260 1.6 jsm struct monst *mkmon_at(int, int, int);
261 1.1 christos
262 1.1 christos /* hack.mhitu.c */
263 1.6 jsm int mhitu(struct monst *);
264 1.6 jsm int hitu(struct monst *, int);
265 1.1 christos
266 1.1 christos /* hack.mklev.c */
267 1.6 jsm void makelevel(void);
268 1.6 jsm int makerooms(void);
269 1.6 jsm void addrs(int, int, int, int);
270 1.6 jsm void addrsx(int, int, int, int, boolean);
271 1.1 christos struct mkroom;
272 1.6 jsm int comp(const void *, const void *);
273 1.6 jsm coord finddpos(int, int, int, int);
274 1.6 jsm int okdoor(int, int);
275 1.6 jsm void dodoor(int, int, struct mkroom *);
276 1.6 jsm void dosdoor(int, int, struct mkroom *, int);
277 1.6 jsm int maker(schar, schar, schar, schar);
278 1.6 jsm void makecorridors(void);
279 1.6 jsm void join(int, int);
280 1.6 jsm void make_niches(void);
281 1.6 jsm void makevtele(void);
282 1.6 jsm void makeniche(boolean);
283 1.6 jsm void mktrap(int, int, struct mkroom *);
284 1.1 christos
285 1.1 christos /* hack.mkmaze.c */
286 1.6 jsm void makemaz(void);
287 1.6 jsm void walkfrom(int, int);
288 1.6 jsm void move(int *, int *, int);
289 1.6 jsm int okay(int, int, int);
290 1.6 jsm coord mazexy(void);
291 1.1 christos
292 1.1 christos /* hack.mkobj.c */
293 1.6 jsm struct obj *mkobj_at(int, int, int);
294 1.6 jsm void mksobj_at(int, int, int);
295 1.6 jsm struct obj *mkobj(int);
296 1.6 jsm struct obj *mksobj(int);
297 1.6 jsm int letter(int);
298 1.6 jsm int weight(struct obj *);
299 1.6 jsm void mkgold(long, int, int);
300 1.1 christos
301 1.1 christos /* hack.mkshop.c */
302 1.6 jsm void mkshop(void);
303 1.6 jsm void mkzoo(int);
304 1.6 jsm const struct permonst *morguemon(void);
305 1.6 jsm void mkswamp(void);
306 1.6 jsm int nexttodoor(int, int);
307 1.6 jsm int has_dnstairs(struct mkroom *);
308 1.6 jsm int has_upstairs(struct mkroom *);
309 1.6 jsm int isbig(struct mkroom *);
310 1.6 jsm int dist2(int, int, int, int);
311 1.6 jsm int sq(int);
312 1.1 christos
313 1.1 christos /* hack.mon.c */
314 1.6 jsm void movemon(void);
315 1.6 jsm void justswld(struct monst *, const char *);
316 1.6 jsm void youswld(struct monst *, int, int, const char *);
317 1.6 jsm int dochugw(struct monst *);
318 1.6 jsm int dochug(struct monst *);
319 1.6 jsm int m_move(struct monst *, int);
320 1.6 jsm void mpickgold(struct monst *);
321 1.6 jsm void mpickgems(struct monst *);
322 1.6 jsm int mfndpos(struct monst *, coord[9 ], int[9 ], int);
323 1.6 jsm int dist(int, int);
324 1.6 jsm void poisoned(const char *, const char *);
325 1.6 jsm void mondead(struct monst *);
326 1.6 jsm void replmon(struct monst *, struct monst *);
327 1.6 jsm void relmon(struct monst *);
328 1.6 jsm void monfree(struct monst *);
329 1.6 jsm void dmonsfree(void);
330 1.6 jsm void unstuck(struct monst *);
331 1.6 jsm void killed(struct monst *);
332 1.6 jsm void kludge(const char *, const char *);
333 1.6 jsm void rescham(void);
334 1.6 jsm int newcham(struct monst *, const struct permonst *);
335 1.6 jsm void mnexto(struct monst *);
336 1.6 jsm int ishuman(struct monst *);
337 1.6 jsm void setmangry(struct monst *);
338 1.6 jsm int canseemon(struct monst *);
339 1.1 christos
340 1.1 christos /* hack.monst.c */
341 1.1 christos
342 1.1 christos /* hack.o_init.c */
343 1.6 jsm int letindex(int);
344 1.6 jsm void init_objects(void);
345 1.6 jsm int probtype(int);
346 1.6 jsm void setgemprobs(void);
347 1.6 jsm void oinit(void);
348 1.6 jsm void savenames(int);
349 1.6 jsm void restnames(int);
350 1.6 jsm int dodiscovered(void);
351 1.6 jsm int interesting_to_discover(int);
352 1.1 christos
353 1.1 christos /* hack.objnam.c */
354 1.6 jsm char *strprepend(char *, char *);
355 1.6 jsm char *sitoa(int);
356 1.6 jsm char *typename(int);
357 1.6 jsm char *xname(struct obj *);
358 1.6 jsm char *doname(struct obj *);
359 1.6 jsm void setan(const char *, char *);
360 1.6 jsm char *aobjnam(struct obj *, const char *);
361 1.6 jsm char *Doname(struct obj *);
362 1.6 jsm struct obj *readobjnam(char *);
363 1.1 christos
364 1.1 christos /* hack.options.c */
365 1.6 jsm void initoptions(void);
366 1.6 jsm void parseoptions(char *, boolean);
367 1.6 jsm int doset(void);
368 1.1 christos
369 1.1 christos /* hack.pager.c */
370 1.6 jsm int dowhatis(void);
371 1.6 jsm void intruph(int);
372 1.6 jsm void page_more(FILE *, int);
373 1.6 jsm void set_whole_screen(void);
374 1.6 jsm int readnews(void);
375 1.6 jsm void set_pager(int);
376 1.6 jsm int page_line(const char *);
377 1.6 jsm void cornline(int, const char *);
378 1.6 jsm int dohelp(void);
379 1.6 jsm int page_file(const char *, boolean);
380 1.6 jsm int dosh(void);
381 1.6 jsm int child(int);
382 1.1 christos
383 1.1 christos /* hack.potion.c */
384 1.6 jsm int dodrink(void);
385 1.6 jsm void pluslvl(void);
386 1.6 jsm void strange_feeling(struct obj *, const char *);
387 1.6 jsm void potionhit(struct monst *, struct obj *);
388 1.6 jsm void potionbreathe(struct obj *);
389 1.6 jsm int dodip(void);
390 1.6 jsm void ghost_from_bottle(void);
391 1.1 christos
392 1.1 christos /* hack.pri.c */
393 1.6 jsm void swallowed(void);
394 1.6 jsm void panic(const char *, ...)
395 1.1 christos __attribute__((__format__(__printf__, 1, 2)));
396 1.6 jsm void atl(int, int, int);
397 1.6 jsm void on_scr(int, int);
398 1.6 jsm void tmp_at(schar, schar);
399 1.6 jsm void Tmp_at(schar, schar);
400 1.6 jsm void setclipped(void) __attribute__((__noreturn__));
401 1.6 jsm void at(xchar, xchar, int);
402 1.6 jsm void prme(void);
403 1.6 jsm int doredraw(void);
404 1.6 jsm void docrt(void);
405 1.6 jsm void docorner(int, int);
406 1.6 jsm void curs_on_u(void);
407 1.6 jsm void pru(void);
408 1.6 jsm void prl(int, int);
409 1.6 jsm char news0(xchar, xchar);
410 1.6 jsm void newsym(int, int);
411 1.6 jsm void mnewsym(int, int);
412 1.6 jsm void nosee(int, int);
413 1.6 jsm void prl1(int, int);
414 1.6 jsm void nose1(int, int);
415 1.6 jsm int vism_at(int, int);
416 1.6 jsm void pobj(struct obj *);
417 1.6 jsm void unpobj(struct obj *);
418 1.6 jsm void seeobjs(void);
419 1.6 jsm void seemons(void);
420 1.6 jsm void pmon(struct monst *);
421 1.6 jsm void unpmon(struct monst *);
422 1.6 jsm void nscr(void);
423 1.6 jsm void cornbot(int);
424 1.6 jsm void bot(void);
425 1.6 jsm void mstatusline(struct monst *);
426 1.6 jsm void cls(void);
427 1.1 christos
428 1.1 christos /* hack.read.c */
429 1.6 jsm int doread(void);
430 1.6 jsm int identify(struct obj *);
431 1.6 jsm void litroom(boolean);
432 1.6 jsm int monstersym(int);
433 1.1 christos
434 1.1 christos /* hack.rip.c */
435 1.6 jsm void outrip(void);
436 1.6 jsm void center(int, char *);
437 1.1 christos
438 1.1 christos /* hack.rumors.c */
439 1.6 jsm void init_rumors(FILE *);
440 1.6 jsm int skipline(FILE *);
441 1.6 jsm void outline(FILE *);
442 1.6 jsm void outrumor(void);
443 1.6 jsm int used(int);
444 1.1 christos
445 1.1 christos /* hack.save.c */
446 1.6 jsm int dosave(void);
447 1.6 jsm int dosave0(int);
448 1.6 jsm int dorecover(int);
449 1.6 jsm struct obj *restobjchn(int);
450 1.6 jsm struct monst *restmonchn(int);
451 1.1 christos
452 1.1 christos /* hack.search.c */
453 1.6 jsm int findit(void);
454 1.6 jsm int dosearch(void);
455 1.6 jsm int doidtrap(void);
456 1.6 jsm void wakeup(struct monst *);
457 1.6 jsm void seemimic(struct monst *);
458 1.1 christos
459 1.1 christos /* hack.shk.c */
460 1.6 jsm void obfree(struct obj *, struct obj *);
461 1.6 jsm void paybill(void);
462 1.6 jsm char *shkname(struct monst *);
463 1.6 jsm void shkdead(struct monst *);
464 1.6 jsm void replshk(struct monst *, struct monst *);
465 1.6 jsm int inshop(void);
466 1.6 jsm int dopay(void);
467 1.1 christos struct bill_x;
468 1.6 jsm struct obj *bp_to_obj(struct bill_x *);
469 1.6 jsm void addtobill(struct obj *);
470 1.6 jsm void splitbill(struct obj *, struct obj *);
471 1.6 jsm void subfrombill(struct obj *);
472 1.6 jsm int doinvbill(int);
473 1.6 jsm int shkcatch(struct obj *);
474 1.6 jsm int shk_move(struct monst *);
475 1.6 jsm void shopdig(int);
476 1.6 jsm int online(int, int);
477 1.6 jsm int follower(struct monst *);
478 1.1 christos
479 1.1 christos /* hack.shknam.c */
480 1.6 jsm void findname(char *, int);
481 1.1 christos
482 1.1 christos /* hack.steal.c */
483 1.6 jsm long somegold(void);
484 1.6 jsm void stealgold(struct monst *);
485 1.6 jsm int stealarm(void);
486 1.6 jsm int steal(struct monst *);
487 1.6 jsm void mpickobj(struct monst *, struct obj *);
488 1.6 jsm int stealamulet(struct monst *);
489 1.6 jsm void relobj(struct monst *, int);
490 1.1 christos
491 1.1 christos /* hack.termcap.c */
492 1.6 jsm void startup(void);
493 1.6 jsm void start_screen(void);
494 1.6 jsm void end_screen(void);
495 1.6 jsm void curs(int, int);
496 1.6 jsm void nocmov(int, int);
497 1.6 jsm void cmov(int, int);
498 1.6 jsm int xputc(int);
499 1.7 dholland void xputs(const char *);
500 1.6 jsm void cl_end(void);
501 1.6 jsm void clear_screen(void);
502 1.6 jsm void home(void);
503 1.6 jsm void standoutbeg(void);
504 1.6 jsm void standoutend(void);
505 1.6 jsm void backsp(void);
506 1.6 jsm void bell(void);
507 1.6 jsm void delay_output(void);
508 1.6 jsm void cl_eos(void);
509 1.1 christos
510 1.1 christos /* hack.timeout.c */
511 1.6 jsm void timeout(void);
512 1.6 jsm void stoned_dialogue(void);
513 1.1 christos
514 1.1 christos /* hack.topl.c */
515 1.6 jsm int doredotopl(void);
516 1.6 jsm void redotoplin(void);
517 1.6 jsm void remember_topl(void);
518 1.6 jsm void addtopl(const char *);
519 1.6 jsm void xmore(const char *);
520 1.6 jsm void more(void);
521 1.6 jsm void cmore(const char *);
522 1.6 jsm void clrlin(void);
523 1.6 jsm void pline(const char *, ...)
524 1.1 christos __attribute__((__format__(__printf__, 1, 2)));
525 1.6 jsm void vpline(const char *, va_list)
526 1.4 jsm __attribute__((__format__(__printf__, 1, 0)));
527 1.6 jsm void putsym(int);
528 1.6 jsm void putstr(const char *);
529 1.1 christos
530 1.1 christos /* hack.track.c */
531 1.6 jsm void initrack(void);
532 1.6 jsm void settrack(void);
533 1.6 jsm coord *gettrack(int, int);
534 1.1 christos
535 1.1 christos /* hack.trap.c */
536 1.6 jsm struct trap *maketrap(int, int, int);
537 1.6 jsm void dotrap(struct trap *);
538 1.6 jsm int mintrap(struct monst *);
539 1.6 jsm void selftouch(const char *);
540 1.6 jsm void float_up(void);
541 1.6 jsm void float_down(void);
542 1.6 jsm void vtele(void);
543 1.6 jsm void tele(void);
544 1.6 jsm void teleds(int, int);
545 1.6 jsm int teleok(int, int);
546 1.6 jsm int dotele(void);
547 1.6 jsm void placebc(int);
548 1.6 jsm void unplacebc(void);
549 1.6 jsm void level_tele(void);
550 1.6 jsm void drown(void);
551 1.1 christos
552 1.1 christos /* hack.tty.c */
553 1.6 jsm void gettty(void);
554 1.6 jsm void settty(const char *);
555 1.6 jsm void setctty(void);
556 1.6 jsm void setftty(void);
557 1.6 jsm void error(const char *, ...)
558 1.1 christos __attribute__((__format__(__printf__, 1, 2),__noreturn__));
559 1.6 jsm void getlin(char *);
560 1.6 jsm void getret(void);
561 1.6 jsm void cgetret(const char *);
562 1.6 jsm void xwaitforspace(const char *);
563 1.6 jsm char *parse(void);
564 1.6 jsm char readchar(void);
565 1.6 jsm void end_of_input(void) __attribute__((__noreturn__));
566 1.1 christos
567 1.1 christos /* hack.u_init.c */
568 1.6 jsm void u_init(void);
569 1.1 christos struct trobj;
570 1.6 jsm void ini_inv(struct trobj *);
571 1.6 jsm void wiz_inv(void);
572 1.6 jsm void plnamesuffix(void);
573 1.6 jsm int role_index(int);
574 1.1 christos
575 1.1 christos /* hack.unix.c */
576 1.6 jsm void setrandom(void);
577 1.6 jsm struct tm *getlt(void);
578 1.6 jsm int getyear(void);
579 1.10 ginsbach char *getdatestr(void);
580 1.6 jsm int phase_of_the_moon(void);
581 1.6 jsm int night(void);
582 1.6 jsm int midnight(void);
583 1.6 jsm void gethdate(char *);
584 1.6 jsm int uptodate(int);
585 1.6 jsm int veryold(int);
586 1.6 jsm void getlock(void);
587 1.6 jsm void getmailstatus(void);
588 1.6 jsm void ckmailstatus(void);
589 1.6 jsm void newmail(void);
590 1.6 jsm void mdrush(struct monst *, boolean);
591 1.6 jsm void readmail(void);
592 1.6 jsm void regularize(char *);
593 1.1 christos
594 1.1 christos /* hack.vault.c */
595 1.6 jsm void setgd(void);
596 1.6 jsm int gd_move(void);
597 1.6 jsm void gddead(void);
598 1.6 jsm void replgd(struct monst *, struct monst *);
599 1.6 jsm void invault(void);
600 1.1 christos
601 1.1 christos /* hack.version.c */
602 1.6 jsm int doversion(void);
603 1.1 christos
604 1.1 christos /* hack.wield.c */
605 1.6 jsm void setuwep(struct obj *);
606 1.6 jsm int dowield(void);
607 1.6 jsm void corrode_weapon(void);
608 1.6 jsm int chwepon(struct obj *, int);
609 1.1 christos
610 1.1 christos /* hack.wizard.c */
611 1.6 jsm void amulet(void);
612 1.6 jsm int wiz_hit(struct monst *);
613 1.6 jsm void inrange(struct monst *);
614 1.6 jsm void aggravate(void);
615 1.6 jsm void clonewiz(struct monst *);
616 1.1 christos
617 1.1 christos /* hack.worm.c */
618 1.1 christos #ifndef NOWORM
619 1.6 jsm int getwn(struct monst *);
620 1.6 jsm void initworm(struct monst *);
621 1.6 jsm void worm_move(struct monst *);
622 1.6 jsm void worm_nomove(struct monst *);
623 1.6 jsm void wormdead(struct monst *);
624 1.6 jsm void wormhit(struct monst *);
625 1.6 jsm void wormsee(unsigned);
626 1.1 christos struct wseg;
627 1.6 jsm void pwseg(struct wseg *);
628 1.6 jsm void cutworm(struct monst *, xchar, xchar, uchar);
629 1.6 jsm void remseg(struct wseg *);
630 1.1 christos #endif
631 1.1 christos
632 1.1 christos /* hack.worn.c */
633 1.6 jsm void setworn(struct obj *, long);
634 1.6 jsm void setnotworn(struct obj *);
635 1.1 christos
636 1.1 christos /* hack.zap.c */
637 1.6 jsm void bhitm(struct monst *, struct obj *);
638 1.6 jsm int bhito(struct obj *, struct obj *);
639 1.6 jsm int dozap(void);
640 1.6 jsm const char *exclam(int);
641 1.6 jsm void hit(const char *, struct monst *, const char *);
642 1.6 jsm void miss(const char *, struct monst *);
643 1.6 jsm struct monst *bhit(int, int, int, int,
644 1.1 christos void (*)(struct monst *, struct obj *),
645 1.1 christos int (*)(struct obj *, struct obj *),
646 1.6 jsm struct obj *);
647 1.6 jsm struct monst *boomhit(int, int);
648 1.6 jsm char dirlet(int, int);
649 1.6 jsm void buzz(int, xchar, xchar, int, int);
650 1.6 jsm int zhit(struct monst *, int);
651 1.6 jsm int revive(struct obj *);
652 1.6 jsm void rloco(struct obj *);
653 1.6 jsm void fracture_rock(struct obj *);
654 1.6 jsm void burn_scrolls(void);
655 1.1 christos
656 1.1 christos /* rnd.c */
657 1.6 jsm int rn1(int, int);
658 1.6 jsm int rn2(int);
659 1.6 jsm int rnd(int);
660 1.6 jsm int d(int, int);
661 1.1 christos #endif /* _EXTERN_H_ */
662