[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     ! 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