1 1.19 rillig /* $NetBSD: extern.h,v 1.19 2021/05/02 12:50:44 rillig 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.16 dholland void *alloc(size_t); 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.17 dholland void hang_up(int) __dead; 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.19 rillig 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.15 dholland void mread(int, void *, size_t); 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.17 dholland void impossible(const char *, ...) __printflike(1, 2); 212 1.6 jsm void stop_occupation(void); 213 1.1 christos 214 1.1 christos /* hack.makemon.c */ 215 1.6 jsm struct monst *makemon(const struct permonst *, int, int); 216 1.6 jsm coord enexto(xchar, xchar); 217 1.6 jsm int goodpos(int, int); 218 1.6 jsm void rloc(struct monst *); 219 1.6 jsm struct monst *mkmon_at(int, int, int); 220 1.1 christos 221 1.1 christos /* hack.mhitu.c */ 222 1.6 jsm int mhitu(struct monst *); 223 1.6 jsm int hitu(struct monst *, int); 224 1.1 christos 225 1.1 christos /* hack.mklev.c */ 226 1.12 dholland struct mkroom; 227 1.6 jsm void makelevel(void); 228 1.6 jsm void mktrap(int, int, struct mkroom *); 229 1.1 christos 230 1.1 christos /* hack.mkmaze.c */ 231 1.6 jsm void makemaz(void); 232 1.6 jsm coord mazexy(void); 233 1.1 christos 234 1.1 christos /* hack.mkobj.c */ 235 1.6 jsm struct obj *mkobj_at(int, int, int); 236 1.6 jsm void mksobj_at(int, int, int); 237 1.6 jsm struct obj *mkobj(int); 238 1.6 jsm struct obj *mksobj(int); 239 1.6 jsm int letter(int); 240 1.6 jsm int weight(struct obj *); 241 1.6 jsm void mkgold(long, int, int); 242 1.1 christos 243 1.1 christos /* hack.mkshop.c */ 244 1.6 jsm void mkshop(void); 245 1.6 jsm void mkzoo(int); 246 1.6 jsm void mkswamp(void); 247 1.1 christos 248 1.1 christos /* hack.mon.c */ 249 1.6 jsm void movemon(void); 250 1.6 jsm void justswld(struct monst *, const char *); 251 1.14 joerg void youswld(struct monst *, int, unsigned int, const char *); 252 1.6 jsm int dochug(struct monst *); 253 1.6 jsm int m_move(struct monst *, int); 254 1.6 jsm int mfndpos(struct monst *, coord[9 ], int[9 ], int); 255 1.6 jsm int dist(int, int); 256 1.6 jsm void poisoned(const char *, const char *); 257 1.6 jsm void mondead(struct monst *); 258 1.6 jsm void replmon(struct monst *, struct monst *); 259 1.6 jsm void relmon(struct monst *); 260 1.6 jsm void monfree(struct monst *); 261 1.6 jsm void unstuck(struct monst *); 262 1.6 jsm void killed(struct monst *); 263 1.6 jsm void kludge(const char *, const char *); 264 1.6 jsm void rescham(void); 265 1.6 jsm int newcham(struct monst *, const struct permonst *); 266 1.6 jsm void mnexto(struct monst *); 267 1.6 jsm void setmangry(struct monst *); 268 1.6 jsm int canseemon(struct monst *); 269 1.1 christos 270 1.1 christos /* hack.monst.c */ 271 1.1 christos 272 1.1 christos /* hack.o_init.c */ 273 1.6 jsm int letindex(int); 274 1.6 jsm void init_objects(void); 275 1.6 jsm int probtype(int); 276 1.6 jsm void oinit(void); 277 1.6 jsm void savenames(int); 278 1.6 jsm void restnames(int); 279 1.6 jsm int dodiscovered(void); 280 1.1 christos 281 1.1 christos /* hack.objnam.c */ 282 1.6 jsm char *typename(int); 283 1.6 jsm char *xname(struct obj *); 284 1.6 jsm char *doname(struct obj *); 285 1.11 dholland void setan(const char *, char *, size_t); 286 1.6 jsm char *aobjnam(struct obj *, const char *); 287 1.6 jsm char *Doname(struct obj *); 288 1.6 jsm struct obj *readobjnam(char *); 289 1.1 christos 290 1.1 christos /* hack.options.c */ 291 1.6 jsm void initoptions(void); 292 1.6 jsm int doset(void); 293 1.1 christos 294 1.1 christos /* hack.pager.c */ 295 1.6 jsm int dowhatis(void); 296 1.6 jsm void set_whole_screen(void); 297 1.6 jsm int readnews(void); 298 1.6 jsm void set_pager(int); 299 1.6 jsm int page_line(const char *); 300 1.6 jsm void cornline(int, const char *); 301 1.6 jsm int dohelp(void); 302 1.6 jsm int dosh(void); 303 1.1 christos 304 1.1 christos /* hack.potion.c */ 305 1.6 jsm int dodrink(void); 306 1.6 jsm void pluslvl(void); 307 1.6 jsm void strange_feeling(struct obj *, const char *); 308 1.6 jsm void potionhit(struct monst *, struct obj *); 309 1.6 jsm void potionbreathe(struct obj *); 310 1.6 jsm int dodip(void); 311 1.1 christos 312 1.1 christos /* hack.pri.c */ 313 1.6 jsm void swallowed(void); 314 1.17 dholland void panic(const char *, ...) __printflike(1, 2); 315 1.6 jsm void atl(int, int, int); 316 1.6 jsm void on_scr(int, int); 317 1.6 jsm void tmp_at(schar, schar); 318 1.6 jsm void Tmp_at(schar, schar); 319 1.17 dholland void setclipped(void) __dead; 320 1.6 jsm void at(xchar, xchar, int); 321 1.6 jsm void prme(void); 322 1.6 jsm int doredraw(void); 323 1.6 jsm void docrt(void); 324 1.6 jsm void docorner(int, int); 325 1.6 jsm void curs_on_u(void); 326 1.6 jsm void pru(void); 327 1.6 jsm void prl(int, int); 328 1.6 jsm char news0(xchar, xchar); 329 1.6 jsm void newsym(int, int); 330 1.6 jsm void mnewsym(int, int); 331 1.6 jsm void nosee(int, int); 332 1.6 jsm void prl1(int, int); 333 1.6 jsm void nose1(int, int); 334 1.6 jsm int vism_at(int, int); 335 1.6 jsm void pobj(struct obj *); 336 1.6 jsm void unpobj(struct obj *); 337 1.6 jsm void seeobjs(void); 338 1.6 jsm void seemons(void); 339 1.6 jsm void pmon(struct monst *); 340 1.6 jsm void unpmon(struct monst *); 341 1.6 jsm void nscr(void); 342 1.6 jsm void bot(void); 343 1.6 jsm void mstatusline(struct monst *); 344 1.6 jsm void cls(void); 345 1.1 christos 346 1.1 christos /* hack.read.c */ 347 1.6 jsm int doread(void); 348 1.6 jsm void litroom(boolean); 349 1.1 christos 350 1.1 christos /* hack.rip.c */ 351 1.6 jsm void outrip(void); 352 1.1 christos 353 1.1 christos /* hack.rumors.c */ 354 1.6 jsm void outrumor(void); 355 1.1 christos 356 1.1 christos /* hack.save.c */ 357 1.6 jsm int dosave(void); 358 1.6 jsm int dorecover(int); 359 1.6 jsm struct obj *restobjchn(int); 360 1.6 jsm struct monst *restmonchn(int); 361 1.1 christos 362 1.1 christos /* hack.search.c */ 363 1.6 jsm int findit(void); 364 1.6 jsm int dosearch(void); 365 1.6 jsm int doidtrap(void); 366 1.6 jsm void wakeup(struct monst *); 367 1.6 jsm void seemimic(struct monst *); 368 1.1 christos 369 1.1 christos /* hack.shk.c */ 370 1.6 jsm void obfree(struct obj *, struct obj *); 371 1.6 jsm void paybill(void); 372 1.6 jsm char *shkname(struct monst *); 373 1.6 jsm void shkdead(struct monst *); 374 1.6 jsm void replshk(struct monst *, struct monst *); 375 1.6 jsm int inshop(void); 376 1.6 jsm int dopay(void); 377 1.1 christos struct bill_x; 378 1.6 jsm void addtobill(struct obj *); 379 1.6 jsm void splitbill(struct obj *, struct obj *); 380 1.6 jsm void subfrombill(struct obj *); 381 1.6 jsm int doinvbill(int); 382 1.6 jsm int shkcatch(struct obj *); 383 1.6 jsm int shk_move(struct monst *); 384 1.6 jsm void shopdig(int); 385 1.6 jsm int online(int, int); 386 1.6 jsm int follower(struct monst *); 387 1.1 christos 388 1.1 christos /* hack.shknam.c */ 389 1.6 jsm void findname(char *, int); 390 1.1 christos 391 1.1 christos /* hack.steal.c */ 392 1.6 jsm long somegold(void); 393 1.6 jsm void stealgold(struct monst *); 394 1.6 jsm int steal(struct monst *); 395 1.6 jsm void mpickobj(struct monst *, struct obj *); 396 1.6 jsm int stealamulet(struct monst *); 397 1.6 jsm void relobj(struct monst *, int); 398 1.1 christos 399 1.1 christos /* hack.termcap.c */ 400 1.6 jsm void startup(void); 401 1.13 roy void startscreen(void); 402 1.13 roy void endscreen(void); 403 1.6 jsm void curs(int, int); 404 1.6 jsm void cl_end(void); 405 1.13 roy void clearscreen(void); 406 1.6 jsm void home(void); 407 1.6 jsm void standoutbeg(void); 408 1.6 jsm void standoutend(void); 409 1.6 jsm void backsp(void); 410 1.13 roy void sound_bell(void); 411 1.6 jsm void delay_output(void); 412 1.6 jsm void cl_eos(void); 413 1.1 christos 414 1.1 christos /* hack.timeout.c */ 415 1.6 jsm void timeout(void); 416 1.1 christos 417 1.1 christos /* hack.topl.c */ 418 1.6 jsm int doredotopl(void); 419 1.6 jsm void remember_topl(void); 420 1.6 jsm void addtopl(const char *); 421 1.6 jsm void more(void); 422 1.6 jsm void cmore(const char *); 423 1.6 jsm void clrlin(void); 424 1.17 dholland void pline(const char *, ...) __printflike(1, 2); 425 1.17 dholland void vpline(const char *, va_list) __printflike(1, 0); 426 1.6 jsm void putsym(int); 427 1.6 jsm void putstr(const char *); 428 1.1 christos 429 1.1 christos /* hack.track.c */ 430 1.6 jsm void initrack(void); 431 1.6 jsm void settrack(void); 432 1.6 jsm coord *gettrack(int, int); 433 1.1 christos 434 1.1 christos /* hack.trap.c */ 435 1.6 jsm struct trap *maketrap(int, int, int); 436 1.6 jsm void dotrap(struct trap *); 437 1.6 jsm int mintrap(struct monst *); 438 1.6 jsm void selftouch(const char *); 439 1.6 jsm void float_up(void); 440 1.6 jsm void float_down(void); 441 1.6 jsm void tele(void); 442 1.6 jsm int dotele(void); 443 1.6 jsm void placebc(int); 444 1.6 jsm void unplacebc(void); 445 1.6 jsm void level_tele(void); 446 1.6 jsm void drown(void); 447 1.1 christos 448 1.1 christos /* hack.tty.c */ 449 1.6 jsm void gettty(void); 450 1.6 jsm void settty(const char *); 451 1.6 jsm void setftty(void); 452 1.18 joerg void error(const char *, ...) __printflike(1, 2) __dead; 453 1.6 jsm void getlin(char *); 454 1.6 jsm void getret(void); 455 1.6 jsm void cgetret(const char *); 456 1.6 jsm void xwaitforspace(const char *); 457 1.6 jsm char *parse(void); 458 1.6 jsm char readchar(void); 459 1.17 dholland void end_of_input(void) __dead; 460 1.1 christos 461 1.1 christos /* hack.u_init.c */ 462 1.6 jsm void u_init(void); 463 1.1 christos struct trobj; 464 1.6 jsm void plnamesuffix(void); 465 1.1 christos 466 1.1 christos /* hack.unix.c */ 467 1.6 jsm void setrandom(void); 468 1.6 jsm int getyear(void); 469 1.10 ginsbach char *getdatestr(void); 470 1.6 jsm int phase_of_the_moon(void); 471 1.6 jsm int night(void); 472 1.6 jsm int midnight(void); 473 1.6 jsm void gethdate(char *); 474 1.6 jsm int uptodate(int); 475 1.6 jsm void getlock(void); 476 1.6 jsm void getmailstatus(void); 477 1.6 jsm void ckmailstatus(void); 478 1.6 jsm void newmail(void); 479 1.6 jsm void mdrush(struct monst *, boolean); 480 1.6 jsm void readmail(void); 481 1.6 jsm void regularize(char *); 482 1.1 christos 483 1.1 christos /* hack.vault.c */ 484 1.6 jsm void setgd(void); 485 1.6 jsm int gd_move(void); 486 1.6 jsm void gddead(void); 487 1.6 jsm void replgd(struct monst *, struct monst *); 488 1.6 jsm void invault(void); 489 1.1 christos 490 1.1 christos /* hack.version.c */ 491 1.6 jsm int doversion(void); 492 1.1 christos 493 1.1 christos /* hack.wield.c */ 494 1.6 jsm void setuwep(struct obj *); 495 1.6 jsm int dowield(void); 496 1.6 jsm void corrode_weapon(void); 497 1.6 jsm int chwepon(struct obj *, int); 498 1.1 christos 499 1.1 christos /* hack.wizard.c */ 500 1.6 jsm void amulet(void); 501 1.6 jsm int wiz_hit(struct monst *); 502 1.6 jsm void inrange(struct monst *); 503 1.1 christos 504 1.1 christos /* hack.worm.c */ 505 1.1 christos #ifndef NOWORM 506 1.6 jsm int getwn(struct monst *); 507 1.6 jsm void initworm(struct monst *); 508 1.6 jsm void worm_move(struct monst *); 509 1.6 jsm void worm_nomove(struct monst *); 510 1.6 jsm void wormdead(struct monst *); 511 1.6 jsm void wormhit(struct monst *); 512 1.6 jsm void wormsee(unsigned); 513 1.1 christos struct wseg; 514 1.6 jsm void pwseg(struct wseg *); 515 1.6 jsm void cutworm(struct monst *, xchar, xchar, uchar); 516 1.1 christos #endif 517 1.1 christos 518 1.1 christos /* hack.worn.c */ 519 1.6 jsm void setworn(struct obj *, long); 520 1.6 jsm void setnotworn(struct obj *); 521 1.1 christos 522 1.1 christos /* hack.zap.c */ 523 1.6 jsm int dozap(void); 524 1.6 jsm const char *exclam(int); 525 1.6 jsm void hit(const char *, struct monst *, const char *); 526 1.6 jsm void miss(const char *, struct monst *); 527 1.6 jsm struct monst *bhit(int, int, int, int, 528 1.1 christos void (*)(struct monst *, struct obj *), 529 1.1 christos int (*)(struct obj *, struct obj *), 530 1.6 jsm struct obj *); 531 1.6 jsm struct monst *boomhit(int, int); 532 1.6 jsm void buzz(int, xchar, xchar, int, int); 533 1.6 jsm void fracture_rock(struct obj *); 534 1.1 christos 535 1.1 christos /* rnd.c */ 536 1.6 jsm int rn1(int, int); 537 1.6 jsm int rn2(int); 538 1.6 jsm int rnd(int); 539 1.6 jsm int d(int, int); 540 1.1 christos #endif /* _EXTERN_H_ */ 541