Home | History | Annotate | Line # | Download | only in hack
extern.h revision 1.14
      1  1.14     joerg /*	$NetBSD: extern.h,v 1.14 2011/05/30 03:11:15 joerg 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.14     joerg void youswld(struct monst *, int, unsigned 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