[BACK]Return to rogue.h CVS log [TXT][DIR] Up to [contributed] / early-roguelike / rogue5

Annotation of early-roguelike/rogue5/rogue.h, Revision 1.1.1.1

1.1       rubenllo    1: /*
                      2:  * Rogue definitions and variable declarations
                      3:  *
                      4:  * @(#)rogue.h 5.42 (Berkeley) 08/06/83
                      5:  *
                      6:  * Rogue: Exploring the Dungeons of Doom
                      7:  * Copyright (C) 1980-1983, 1985, 1999 Michael Toy, Ken Arnold and Glenn Wichman
                      8:  * All rights reserved.
                      9:  *
                     10:  * See the file LICENSE.TXT for full copyright and licensing information.
                     11:  */
                     12:
                     13: #include "extern.h"
                     14:
                     15: #undef lines
                     16:
                     17: #define NOOP(x) (x += 0)
                     18: #define CCHAR(x) ( (x) & A_CHARTEXT )
                     19:
                     20: #define MAXDAEMONS 20
                     21: #define EMPTY 0
                     22:
                     23: /*
                     24:  * Maximum number of different things
                     25:  */
                     26: #define MAXROOMS       9
                     27: #define MAXTHINGS      9
                     28: #define MAXOBJ         9
                     29: #define MAXPACK                23
                     30: #define MAXTRAPS       10
                     31: #define AMULETLEVEL    26
                     32: #define        NUMTHINGS       7       /* number of types of things */
                     33: #define MAXPASS                13      /* upper limit on number of passages */
                     34: #define        NUMLINES        24
                     35: #define        NUMCOLS         80
                     36: #define STATLINE               (NUMLINES - 1)
                     37: #define BORE_LEVEL     50
                     38:
                     39: /*
                     40:  * return values for get functions
                     41:  */
                     42: #define        NORM    0       /* normal exit */
                     43: #define        QUIT    1       /* quit option setting */
                     44: #define        MINUS   2       /* back up one option */
                     45:
                     46: /*
                     47:  * inventory types
                     48:  */
                     49: #define        INV_OVER        0
                     50: #define        INV_SLOW        1
                     51: #define        INV_CLEAR       2
                     52:
                     53: /*
                     54:  * All the fun defines
                     55:  */
                     56: #define when           break;case
                     57: #define otherwise      break;default
                     58: #define until(expr)    while(!(expr))
                     59: #define next(ptr)      (*ptr).l_next
                     60: #define prev(ptr)      (*ptr).l_prev
                     61: #define winat(y,x)     (moat(y,x) != NULL ? moat(y,x)->t_disguise : chat(y,x))
                     62: #define ce(a,b)                ((a).x == (b).x && (a).y == (b).y)
                     63: #define hero           player.t_pos
                     64: #define pstats         player.t_stats
                     65: #define pack           player.t_pack
                     66: #define proom          player.t_room
                     67: #define max_hp         player.t_stats.s_maxhp
                     68: #define attach(a,b)    _attach(&a,b)
                     69: #define detach(a,b)    _detach(&a,b)
                     70: #define free_list(a)   _free_list(&a)
                     71: #undef max
                     72: #define max(a,b)       ((a) > (b) ? (a) : (b))
                     73: #define on(thing,flag) ((((thing).t_flags & (flag)) != 0))
                     74: #define GOLDCALC       (rnd(50 + 10 * level) + 2)
                     75: #define ISRING(h,r)    (cur_ring[h] != NULL && cur_ring[h]->o_which == r)
                     76: #define ISWEARING(r)   (ISRING(LEFT, r) || ISRING(RIGHT, r))
                     77: #define ISMULT(type)   (type == POTION || type == SCROLL || type == FOOD)
                     78: #define INDEX(y,x)     (&places[((x) << 5) + (y)])
                     79: #define chat(y,x)      (places[((x) << 5) + (y)].p_ch)
                     80: #define flat(y,x)      (places[((x) << 5) + (y)].p_flags)
                     81: #define moat(y,x)      (places[((x) << 5) + (y)].p_monst)
                     82: #define unc(cp)                (cp).y, (cp).x
                     83: #ifdef MASTER
                     84: #define debug          if (wizard) msg
                     85: #endif
                     86:
                     87: /*
                     88:  * things that appear on the screens
                     89:  */
                     90: #define PASSAGE                '#'
                     91: #define DOOR           '+'
                     92: #define FLOOR          '.'
                     93: #define PLAYER         '@'
                     94: #define TRAP           '^'
                     95: #define STAIRS         '%'
                     96: #define GOLD           '*'
                     97: #define POTION         '!'
                     98: #define SCROLL         '?'
                     99: #define MAGIC          '$'
                    100: #define FOOD           ':'
                    101: #define WEAPON         ')'
                    102: #define ARMOR          ']'
                    103: #define AMULET         ','
                    104: #define RING           '='
                    105: #define STICK          '/'
                    106: #define CALLABLE       -1
                    107: #define R_OR_S         -2
                    108:
                    109: /*
                    110:  * Various constants
                    111:  */
                    112: #define BEARTIME       spread(3)
                    113: #define SLEEPTIME      spread(5)
                    114: #define HOLDTIME       spread(2)
                    115: #define WANDERTIME     spread(70)
                    116: #define BEFORE         spread(1)
                    117: #define AFTER          spread(2)
                    118: #define HEALTIME       30
                    119: #define HUHDURATION    20
                    120: #define SEEDURATION    850
                    121: #define HUNGERTIME     1300
                    122: #define MORETIME       150
                    123: #define STOMACHSIZE    2000
                    124: #define STARVETIME     850
                    125: #define ESCAPE         27
                    126: #define LEFT           0
                    127: #define RIGHT          1
                    128: #define BOLT_LENGTH    6
                    129: #define LAMPDIST       3
                    130: #ifdef MASTER
                    131: #ifndef PASSWD
                    132: #define        PASSWD          "mTBellIQOsLNA"
                    133: #endif
                    134: #endif
                    135:
                    136: /*
                    137:  * Save against things
                    138:  */
                    139: #define VS_POISON      00
                    140: #define VS_PARALYZATION        00
                    141: #define VS_DEATH       00
                    142: #define VS_BREATH      02
                    143: #define VS_MAGIC       03
                    144:
                    145: /*
                    146:  * Various flag bits
                    147:  */
                    148: /* flags for rooms */
                    149: #define ISDARK 0000001         /* room is dark */
                    150: #define ISGONE 0000002         /* room is gone (a corridor) */
                    151: #define ISMAZE 0000004         /* room is gone (a corridor) */
                    152:
                    153: /* flags for objects */
                    154: #define ISCURSED 000001                /* object is cursed */
                    155: #define ISKNOW 0000002         /* player knows details about the object */
                    156: #define ISMISL 0000004         /* object is a missile type */
                    157: #define ISMANY 0000010         /* object comes in groups */
                    158: /*     ISFOUND 0000020         ...is used for both objects and creatures */
                    159: #define        ISPROT  0000040         /* armor is permanently protected */
                    160:
                    161: /* flags for creatures */
                    162: #define CANHUH 0000001         /* creature can confuse */
                    163: #define CANSEE 0000002         /* creature can see invisible creatures */
                    164: #define ISBLIND        0000004         /* creature is blind */
                    165: #define ISCANC 0000010         /* creature has special qualities cancelled */
                    166: #define ISLEVIT        0000010         /* hero is levitating */
                    167: #define ISFOUND        0000020         /* creature has been seen (used for objects) */
                    168: #define ISGREED        0000040         /* creature runs to protect gold */
                    169: #define ISHASTE        0000100         /* creature has been hastened */
                    170: #define ISTARGET 000200                /* creature is the target of an 'f' command */
                    171: #define ISHELD 0000400         /* creature has been held */
                    172: #define ISHUH  0001000         /* creature is confused */
                    173: #define ISINVIS        0002000         /* creature is invisible */
                    174: #define ISMEAN 0004000         /* creature can wake when player enters room */
                    175: #define ISHALU 0004000         /* hero is on acid trip */
                    176: #define ISREGEN        0010000         /* creature can regenerate */
                    177: #define ISRUN  0020000         /* creature is running at the player */
                    178: #define SEEMONST 040000                /* hero can detect unseen monsters */
                    179: #define ISFLY  0040000         /* creature can fly */
                    180: #define ISSLOW 0100000         /* creature has been slowed */
                    181:
                    182: /*
                    183:  * Flags for level map
                    184:  */
                    185: #define F_PASS         0x80            /* is a passageway */
                    186: #define F_SEEN         0x40            /* have seen this spot before */
                    187: #define F_DROPPED      0x20            /* object was dropped here */
                    188: #define F_LOCKED       0x20            /* door is locked */
                    189: #define F_REAL         0x10            /* what you see is what you get */
                    190: #define F_PNUM         0x0f            /* passage number mask */
                    191: #define F_TMASK                0x07            /* trap number mask */
                    192:
                    193: /*
                    194:  * Trap types
                    195:  */
                    196: #define T_DOOR 00
                    197: #define T_ARROW        01
                    198: #define T_SLEEP        02
                    199: #define T_BEAR 03
                    200: #define T_TELEP        04
                    201: #define T_DART 05
                    202: #define T_RUST 06
                    203: #define T_MYST  07
                    204: #define NTRAPS 8
                    205:
                    206: /*
                    207:  * Potion types
                    208:  */
                    209: #define P_CONFUSE      0
                    210: #define P_LSD          1
                    211: #define P_POISON       2
                    212: #define P_STRENGTH     3
                    213: #define P_SEEINVIS     4
                    214: #define P_HEALING      5
                    215: #define P_MFIND                6
                    216: #define        P_TFIND         7
                    217: #define        P_RAISE         8
                    218: #define P_XHEAL                9
                    219: #define P_HASTE                10
                    220: #define P_RESTORE      11
                    221: #define P_BLIND                12
                    222: #define P_LEVIT                13
                    223: #define MAXPOTIONS     14
                    224:
                    225: /*
                    226:  * Scroll types
                    227:  */
                    228: #define S_CONFUSE      0
                    229: #define S_MAP          1
                    230: #define S_HOLD         2
                    231: #define S_SLEEP                3
                    232: #define S_ARMOR                4
                    233: #define S_ID_POTION    5
                    234: #define S_ID_SCROLL    6
                    235: #define S_ID_WEAPON    7
                    236: #define S_ID_ARMOR     8
                    237: #define S_ID_R_OR_S    9
                    238: #define S_SCARE                10
                    239: #define S_FDET         11
                    240: #define S_TELEP                12
                    241: #define S_ENCH         13
                    242: #define S_CREATE       14
                    243: #define S_REMOVE       15
                    244: #define S_AGGR         16
                    245: #define S_PROTECT      17
                    246: #define MAXSCROLLS     18
                    247:
                    248: /*
                    249:  * Weapon types
                    250:  */
                    251: #define MACE           0
                    252: #define SWORD          1
                    253: #define BOW            2
                    254: #define ARROW          3
                    255: #define DAGGER         4
                    256: #define TWOSWORD       5
                    257: #define DART           6
                    258: #define SHIRAKEN       7
                    259: #define SPEAR          8
                    260: #define FLAME          9       /* fake entry for dragon breath (ick) */
                    261: #define MAXWEAPONS     9       /* this should equal FLAME */
                    262:
                    263: /*
                    264:  * Armor types
                    265:  */
                    266: #define LEATHER                0
                    267: #define RING_MAIL      1
                    268: #define STUDDED_LEATHER        2
                    269: #define SCALE_MAIL     3
                    270: #define CHAIN_MAIL     4
                    271: #define SPLINT_MAIL    5
                    272: #define BANDED_MAIL    6
                    273: #define PLATE_MAIL     7
                    274: #define MAXARMORS      8
                    275:
                    276: /*
                    277:  * Ring types
                    278:  */
                    279: #define R_PROTECT      0
                    280: #define R_ADDSTR       1
                    281: #define R_SUSTSTR      2
                    282: #define R_SEARCH       3
                    283: #define R_SEEINVIS     4
                    284: #define R_NOP          5
                    285: #define R_AGGR         6
                    286: #define R_ADDHIT       7
                    287: #define R_ADDDAM       8
                    288: #define R_REGEN                9
                    289: #define R_DIGEST       10
                    290: #define R_TELEPORT     11
                    291: #define R_STEALTH      12
                    292: #define R_SUSTARM      13
                    293: #define MAXRINGS       14
                    294:
                    295: /*
                    296:  * Rod/Wand/Staff types
                    297:  */
                    298: #define WS_LIGHT       0
                    299: #define WS_INVIS       1
                    300: #define WS_ELECT       2
                    301: #define WS_FIRE                3
                    302: #define WS_COLD                4
                    303: #define WS_POLYMORPH   5
                    304: #define WS_MISSILE     6
                    305: #define WS_HASTE_M     7
                    306: #define WS_SLOW_M      8
                    307: #define WS_DRAIN       9
                    308: #define WS_NOP         10
                    309: #define WS_TELAWAY     11
                    310: #define WS_TELTO       12
                    311: #define WS_CANCEL      13
                    312: #define MAXSTICKS      14
                    313:
                    314: /*
                    315:  * Now we define the structures and types
                    316:  */
                    317:
                    318: /*
                    319:  * Help list
                    320:  */
                    321: struct h_list {
                    322:     int h_ch;
                    323:     const char *h_desc;
                    324:     int h_print;
                    325: };
                    326:
                    327: /*
                    328:  * Coordinate data type
                    329:  */
                    330: typedef struct coord {
                    331:     int x;
                    332:     int y;
                    333: } coord;
                    334:
                    335: /*
                    336:  * Stuff about objects
                    337:  */
                    338: struct obj_info {
                    339:     const char *oi_name;
                    340:     int oi_prob;
                    341:     int oi_worth;
                    342:     char *oi_guess;
                    343:     int oi_know;
                    344: };
                    345:
                    346: /*
                    347:  * Room structure
                    348:  */
                    349: struct room {
                    350:     coord r_pos;                       /* Upper left corner */
                    351:     coord r_max;                       /* Size of room */
                    352:     coord r_gold;                      /* Where the gold is */
                    353:     int r_goldval;                     /* How much the gold is worth */
                    354:     int r_flags;                       /* info about the room */
                    355:     int r_nexits;                      /* Number of exits */
                    356:     coord r_exit[12];                  /* Where the exits are */
                    357: };
                    358:
                    359: /*
                    360:  * Structure describing a fighting being
                    361:  */
                    362: struct stats {
                    363:     int s_str;                 /* Strength */
                    364:     int s_exp;                         /* Experience */
                    365:     int s_lvl;                         /* level of mastery */
                    366:     int s_arm;                         /* Armor class */
                    367:     int s_hpt;                 /* Hit points */
                    368:     char s_dmg[13];                    /* String describing damage done */
                    369:     int  s_maxhp;                      /* Max hit points */
                    370: };
                    371:
                    372: /*
                    373:  * Structure for monsters and player
                    374:  */
                    375: union thing {
                    376:     struct {
                    377:        union thing *_l_next, *_l_prev; /* Next pointer in link */
                    378:        coord _t_pos;                   /* Position */
                    379:        int _t_turn;                    /* If slowed, is it a turn to move */
                    380:        int _t_type;                    /* What it is */
                    381:        int _t_disguise;                /* What mimic looks like */
                    382:        int _t_oldch;                   /* Character that was where it was */
                    383:        const coord *_t_dest;           /* Where it is running to */
                    384:        int _t_flags;                   /* State word */
                    385:        struct stats _t_stats;          /* Physical description */
                    386:        struct room *_t_room;           /* Current room for thing */
                    387:        union thing *_t_pack;           /* What the thing is carrying */
                    388:         int _t_reserved;
                    389:     } _t;
                    390:     struct {
                    391:        union thing *_l_next, *_l_prev; /* Next pointer in link */
                    392:        int _o_type;                    /* What kind of object it is */
                    393:        coord _o_pos;                   /* Where it lives on the screen */
                    394:        char *_o_text;                  /* What it says if you read it */
                    395:        int  _o_launch;                 /* What you need to launch it */
                    396:        int _o_packch;                  /* What character it is in the pack */
                    397:        char _o_damage[8];              /* Damage if used like sword */
                    398:        char _o_hurldmg[8];             /* Damage if thrown */
                    399:        int _o_count;                   /* count for plural objects */
                    400:        int _o_which;                   /* Which object of a type it is */
                    401:        int _o_hplus;                   /* Plusses to hit */
                    402:        int _o_dplus;                   /* Plusses to damage */
                    403:        int _o_arm;                     /* Armor protection */
                    404:        int _o_flags;                   /* information about objects */
                    405:        int _o_group;                   /* group number for this object */
                    406:        char *_o_label;                 /* Label for object */
                    407:     } _o;
                    408: };
                    409:
                    410: typedef union thing THING;
                    411:
                    412: #define l_next         _t._l_next
                    413: #define l_prev         _t._l_prev
                    414: #define t_pos          _t._t_pos
                    415: #define t_turn         _t._t_turn
                    416: #define t_type         _t._t_type
                    417: #define t_disguise     _t._t_disguise
                    418: #define t_oldch                _t._t_oldch
                    419: #define t_dest         _t._t_dest
                    420: #define t_flags                _t._t_flags
                    421: #define t_stats                _t._t_stats
                    422: #define t_pack         _t._t_pack
                    423: #define t_room         _t._t_room
                    424: #define t_reserved      _t._t_reserved
                    425: #define o_type         _o._o_type
                    426: #define o_pos          _o._o_pos
                    427: #define o_text         _o._o_text
                    428: #define o_launch       _o._o_launch
                    429: #define o_packch       _o._o_packch
                    430: #define o_damage       _o._o_damage
                    431: #define o_hurldmg      _o._o_hurldmg
                    432: #define o_count                _o._o_count
                    433: #define o_which                _o._o_which
                    434: #define o_hplus                _o._o_hplus
                    435: #define o_dplus                _o._o_dplus
                    436: #define o_arm          _o._o_arm
                    437: #define o_charges      o_arm
                    438: #define o_goldval      o_arm
                    439: #define o_flags                _o._o_flags
                    440: #define o_group                _o._o_group
                    441: #define o_label                _o._o_label
                    442:
                    443: /*
                    444:  * describe a place on the level map
                    445:  */
                    446: typedef struct PLACE {
                    447:     int p_ch;
                    448:     int p_flags;
                    449:     THING *p_monst;
                    450: } PLACE;
                    451:
                    452: /*
                    453:  * Array containing information on all the various types of monsters
                    454:  */
                    455: struct monster {
                    456:     const char *m_name;                        /* What to call the monster */
                    457:     int m_carry;                       /* Probability of carrying something */
                    458:     int m_flags;                       /* things about the monster */
                    459:     struct stats m_stats;              /* Initial stats */
                    460: };
                    461:
                    462: struct delayed_action {
                    463:     int d_type;
                    464:     void (*d_func)();
                    465:     int d_arg;
                    466:     int d_time;
                    467: };
                    468:
                    469: struct STONE {
                    470:     char       *st_name;
                    471:     int                st_value;
                    472: };
                    473:
                    474: typedef struct STONE STONE;
                    475:
                    476: /*
                    477:  * External variables
                    478:  */
                    479:
                    480: extern int after, again, allscore, door_stop, fight_flush,
                    481:           firstmove, has_hit, inv_describe, jump, kamikaze,
                    482:           lower_msg, move_on, msg_esc, pack_used[],
                    483:           passgo, playing, q_comm, running, save_msg, see_floor,
                    484:           seenstairs, stat_msg, terse, to_death, tombstone,
                    485:            amulet, count, dir_ch, food_left, hungry_state, inpack,
                    486:           inv_type, lastscore, level, max_hit, max_level, mpos, take,
                    487:           n_objs, no_command, no_food, no_move, noscore, ntraps, purse,
                    488:           quiet, vf_hit, runch, last_comm, l_last_comm, last_dir, l_last_dir,
                    489:           numscores, total, between, group, cNWOOD, cNMETAL, cNSTONES,
                    490:           cNCOLORS;
                    491:
                    492: extern char file_name[], home[], huh[], *Numname, outbuf[],
                    493:            *ws_type[], *s_names[];
                    494:
                    495: extern const char *ws_made[], *inv_t_name[], *p_colors[], *r_stones[],
                    496:                   *release, *tr_name[], *rainbow[], *wood[], *metal[],
                    497:                  encstr[], statlist[], version[];
                    498:
                    499: extern const int a_class[], e_levels[];
                    500:
                    501: extern unsigned int dnum, seed;
                    502:
                    503: extern WINDOW *hw;
                    504:
                    505: extern coord delta, oldpos, stairs;
                    506:
                    507: extern PLACE places[];
                    508:
                    509: extern THING *cur_armor, *cur_ring[], *cur_weapon, *l_last_pick,
                    510:             *last_pick, *lvl_obj, *mlist, player;
                    511:
                    512: extern const struct h_list helpstr[];
                    513:
                    514: extern struct room *oldrp, passages[], rooms[];
                    515:
                    516: extern struct stats max_stats;
                    517:
                    518: extern struct monster monsters[];
                    519:
                    520: extern struct obj_info arm_info[], pot_info[], ring_info[],
                    521:                        scr_info[], things[], ws_info[], weap_info[];
                    522:
                    523: extern struct delayed_action d_list[MAXDAEMONS];
                    524:
                    525: extern const STONE    stones[];
                    526:
                    527: /*
                    528:  * Function types
                    529:  */
                    530:
                    531: void   _attach(THING **list, THING *item);
                    532: void   _detach(THING **list, THING *item);
                    533: void   _free_list(THING **ptr);
                    534: void   addmsg(const char *fmt, ...);
                    535: int    add_haste(int potion);
                    536: int    add_line(const char *fmt, const char *arg);
                    537: void   add_pack(THING *obj, int silent);
                    538: void   add_pass(void);
                    539: void   add_str(int *sp, int amt);
                    540: void   accnt_maze(int y, int x, int ny, int nx);
                    541: void   aggravate(void);
                    542: int    attack(THING *mp);
                    543: void    auto_save(int);
                    544: void   badcheck(const char *name, const struct obj_info *info, int bound);
                    545: int    be_trapped(const coord *tc);
                    546: void   bounce(const THING *weap, const char *mname, int noend);
                    547: void   call(void);
                    548: void   call_it(struct obj_info *info);
                    549: int    cansee(int y, int x);
                    550: int    center(const char *str);
                    551: int    chase(THING *tp, const coord *ee);
                    552: int    checkout(void);
                    553: const char *charge_str(const THING *obj);
                    554: void   chg_str(int amt);
                    555: void   check_level(void);
                    556: const char *choose_str(const char *ts, const char *ns);
                    557: void   conn(int r1, int r2);
                    558: void   come_down(void);
                    559: void   command(void);
                    560: void   create_obj(void);
                    561: void   current(const THING *cur, const char *how, const char *where);
                    562: void   d_level(void);
                    563: void   death(int monst);
                    564: int    death_monst(void);
                    565: int    diag_ok(const coord *sp, const coord *ep);
                    566: void   dig(int y, int x);
                    567: void   discard(THING *item);
                    568: void   discovered(void);
                    569: int    dist(int y1, int x1, int y2, int x2);
                    570: int    dist_cp(const coord *c1, const coord *c2);
                    571: int    do_chase(THING *th);
                    572: void   do_daemons(int flag);
                    573: void   do_fuses(int flag);
                    574: void   do_maze(const struct room *rp);
                    575: void   do_motion(THING *obj, int ydelta, int xdelta);
                    576: void   do_move(int dy, int dx);
                    577: void   do_passages(void);
                    578: void   do_pot(int type, int knowit);
                    579: void   do_rooms(void);
                    580: void   do_run(int ch);
                    581: void   do_zap(void);
                    582: void   doadd(const char *fmt, va_list args);
                    583: void   doctor(void);
                    584: void   door(struct room *rm, const coord *cp);
                    585: void   door_open(const struct room *rp);
                    586: void   drain(void);
                    587: void   draw_room(const struct room *rp);
                    588: void   drop(void);
                    589: int    dropcheck(const THING *obj);
                    590: void   eat(void);
                    591: int     encclearerr();
                    592: int     encerror();
                    593: void    encseterr();
                    594: size_t  encread(char *start, size_t size, FILE *inf);
                    595: size_t encwrite(const char *start, size_t size, FILE *outf);
                    596: void    end_line(void);
                    597: void    endit(int sig);
                    598: int    endmsg(void);
                    599: void   enter_room(const coord *cp);
                    600: void   erase_lamp(const coord *pos, const struct room *rp);
                    601: int    exp_add(const THING *tp);
                    602: void   extinguish(void (*func)());
                    603: void   fall(THING *obj, int pr);
                    604: int    fallpos(const coord *pos, coord *newpos);
                    605: void   fatal(const char *s);
                    606: void   fire_bolt(const coord *start, coord *dir, const char *name);
                    607: int    floor_at(void);
                    608: int    floor_ch(void);
                    609: void   flush_type(void);
                    610: const coord *find_dest(const THING *tp);
                    611: int    find_floor(const struct room *rp, coord *cp, int limit, int monst);
                    612: THING   *find_obj(int y, int x);
                    613: int    fight(const coord *mp, const THING *weap, int thrown);
                    614: void   fix_stick(THING *cur);
                    615: void   fuse(void (*func)(), int arg, int time, int type);
                    616: int    get_bool(void *vp, WINDOW *win);
                    617: int    get_dir(void);
                    618: int    get_inv_t(void *vp, WINDOW *win);
                    619: THING   *get_item(const char *purpose, int type);
                    620: int    get_num(void *vp, WINDOW *win);
                    621: int    get_sf(void *vp, WINDOW *win);
                    622: int    get_str(void *vopt, WINDOW *win);
                    623: int    gethand(void);
                    624: void   getltchars(void);
                    625: void   give_pack(THING *tp);
                    626: void   help(void);
                    627: void   hit(const char *er, const char *ee, int noend);
                    628: void   horiz(const struct room *rp, int starty);
                    629: void   leave_room(const coord *cp);
                    630: void   lengthen(void (*func)(), int xtime);
                    631: void   look(int wakeup);
                    632: int    hit_monster(int y, int x, const THING *obj);
                    633: void   identify(void);
                    634: void   illcom(int ch);
                    635: void   init_check(void);
                    636: void   init_colors(void);
                    637: void   init_materials(void);
                    638: void   init_names(void);
                    639: void   init_player(void);
                    640: void   init_probs(void);
                    641: void   init_stones(void);
                    642: void   init_weapon(THING *weap, int which);
                    643: char   *inv_name(const THING *obj, int drop);
                    644: int    inventory(const THING *list, int type);
                    645: void   invis_on(void);
                    646: int    is_current(const THING *obj);
                    647: int    is_magic(const THING *obj);
                    648: int     is_symlink(const char *sp);
                    649: void   kill_daemon(void (*func)());
                    650: void   killed(THING *tp, int pr);
                    651: const char *killname(int monst, int doart);
                    652: void   land(void);
                    653: void    leave(int);
                    654: THING   *leave_pack(THING *obj, int newobj, int all);
                    655: int    levit_check(void);
                    656: int    lock_sc(void);
                    657: void   miss(const char *er, const char *ee, int noend);
                    658: void   missile(int ydelta, int xdelta);
                    659: void   money(int value);
                    660: int    move_monst(THING *tp);
                    661: void   move_msg(const THING *obj);
                    662: int    msg(const char *fmt, ...);
                    663: void   my_exit(int sig);
                    664: void   nameit(const THING *obj, const char *type, const char *which, const struct obj_info *op, const char *(*prfunc)(const THING *));
                    665: THING   *new_item(void);
                    666: void   new_level(void);
                    667: void   new_monster(THING *tp, int type, const coord *cp);
                    668: THING   *new_thing(void);
                    669: void   nohaste(void);
                    670: const char *nothing(int type);
                    671: const char *nullstr(const THING *ignored);
                    672: const char *num(int n1, int n2, int type);
                    673: void   numpass(int y, int x);
                    674: void   option(void);
                    675: void   open_log(void);
                    676: void   open_score(void);
                    677: int    pack_char(void);
                    678: int    pack_room(int from_floor, THING *obj);
                    679: void   parse_opts(char *str);
                    680: void   passnum(void);
                    681: int    passwd(void);
                    682: const char *pick_color(const char *col);
                    683: int    pick_one(const struct obj_info *info, int nitems);
                    684: void   pick_up(int ch);
                    685: void   picky_inven(void);
                    686: void   playit(void);
                    687: void    playltchars(void);
                    688: void   pr_spec(const struct obj_info *info, int nitems);
                    689: void   pr_list(void);
                    690: void   print_disc(int);
                    691: void   put_bool(void *b);
                    692: void   put_inv_t(void *ip);
                    693: void   put_str(void *str);
                    694: void   put_things(void);
                    695: void   putpass(const coord *cp);
                    696: void   quaff(void);
                    697: void    quit(int);
                    698: void   raise_level(void);
                    699: int    randmonster(int wander);
                    700: void   read_scroll(void);
                    701: int    readchar(void);
                    702: void    relocate(THING *th, const coord *new_loc);
                    703: void   remove_mon(const coord *mp, THING *tp, int waskill);
                    704: void   reset_last(void);
                    705: void    resetltchars(void);
                    706: int     restore(const char *file);
                    707: int    ring_eat(int hand);
                    708: void   ring_on(void);
                    709: void   ring_off(void);
                    710: const char *ring_num(const THING *obj);
                    711: int    rnd(int range);
                    712: int    rnd_room(void);
                    713: int    rnd_thing(void);
                    714: coord  rndmove(const THING *who);
                    715: int    roll(int number, int sides);
                    716: int    roll_em(const THING *thatt, THING *thdef, const THING *weap, int hurl);
                    717: void   rollwand(void);
                    718: struct room *roomin(const coord *cp);
                    719: int    rs_save_file(FILE *savef);
                    720: int    rs_restore_file(FILE *inf);
                    721: void   runners(void);
                    722: void   runto(const coord *runner);
                    723: void   rust_armor(THING *arm);
                    724: int    save(int which);
                    725: void   save_file(FILE *savef);
                    726: void   save_game(void);
                    727: int    save_throw(int which, const THING *tp);
                    728: void   score(int amount, int flags, int monst);
                    729: void   search(void);
                    730: int    see_monst(const THING *mp);
                    731: int    seen_stairs(void);
                    732: void   set_know(THING *obj, struct obj_info *info);
                    733: const char *set_mname(const THING *tp);
                    734: void   set_oldch(THING *tp, const coord *cp);
                    735: void    set_order(int *order, int numthings);
                    736: void   setup(void);
                    737: void   shell(void);
                    738: int    show_floor(void);
                    739: void   show_map(void);
                    740: void   show_win(const char *message);
                    741: void   sight(void);
                    742: int    sign(int nm);
                    743: int    spread(int nm);
                    744: void   start_daemon(void (*func)(), int arg, int type);
                    745: void   start_score(void);
                    746: void   status(void);
                    747: int    step_ok(int ch);
                    748: void   stomach(void);
                    749: void   strucpy(char *s1, const char *s2, size_t len);
                    750: void   swander(void);
                    751: int    swing(int at_lvl, int op_arm, int wplus);
                    752: void   take_off(void);
                    753: void   teleport(void);
                    754: void   total_winner(void);
                    755: void   thunk(const THING *weap, const char *mname, int noend);
                    756: void   treas_room(void);
                    757: int    trip_ch(int y, int x, int ch);
                    758: void   tstp(int ignored);
                    759: int     turn_ok(int y, int x);
                    760: int    turn_see(int turn_off);
                    761: void    turn_see_off(void);
                    762: void   turnref(void);
                    763: const char *type_name(int type);
                    764: void   u_level(void);
                    765: void   unconfuse(void);
                    766: void   uncurse(THING *obj);
                    767: void   unlock_sc(void);
                    768: void   unsee(void);
                    769: void   vert(const struct room *rp, int startx);
                    770: void   visuals(void);
                    771: char   *vowelstr(const char *str);
                    772: void   wait_for(WINDOW *win, int ch);
                    773: const THING *wake_monster(int y, int x);
                    774: void   wanderer(void);
                    775: void   waste_time(void);
                    776: void   wear(void);
                    777: void   whatis(int insist, int type);
                    778: void   wield(void);
                    779: int    wreadchar(WINDOW *win);
                    780: void   writelog(int amount, int flags, int monst);
                    781:

CVSweb