Home | History | Annotate | Line # | Download | only in rogue
rogue.h revision 1.1.1.2
      1      1.1  cgd /*
      2  1.1.1.2  cgd  * Copyright (c) 1988, 1993
      3  1.1.1.2  cgd  *	The Regents of the University of California.  All rights reserved.
      4      1.1  cgd  *
      5      1.1  cgd  * This code is derived from software contributed to Berkeley by
      6      1.1  cgd  * Timoth C. Stoehr.
      7      1.1  cgd  *
      8      1.1  cgd  * Redistribution and use in source and binary forms, with or without
      9      1.1  cgd  * modification, are permitted provided that the following conditions
     10      1.1  cgd  * are met:
     11      1.1  cgd  * 1. Redistributions of source code must retain the above copyright
     12      1.1  cgd  *    notice, this list of conditions and the following disclaimer.
     13      1.1  cgd  * 2. Redistributions in binary form must reproduce the above copyright
     14      1.1  cgd  *    notice, this list of conditions and the following disclaimer in the
     15      1.1  cgd  *    documentation and/or other materials provided with the distribution.
     16      1.1  cgd  * 3. All advertising materials mentioning features or use of this software
     17      1.1  cgd  *    must display the following acknowledgement:
     18      1.1  cgd  *	This product includes software developed by the University of
     19      1.1  cgd  *	California, Berkeley and its contributors.
     20      1.1  cgd  * 4. Neither the name of the University nor the names of its contributors
     21      1.1  cgd  *    may be used to endorse or promote products derived from this software
     22      1.1  cgd  *    without specific prior written permission.
     23      1.1  cgd  *
     24      1.1  cgd  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
     25      1.1  cgd  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     26      1.1  cgd  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     27      1.1  cgd  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
     28      1.1  cgd  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     29      1.1  cgd  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     30      1.1  cgd  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     31      1.1  cgd  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     32      1.1  cgd  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     33      1.1  cgd  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     34      1.1  cgd  * SUCH DAMAGE.
     35      1.1  cgd  *
     36  1.1.1.2  cgd  *	@(#)rogue.h	8.1 (Berkeley) 5/31/93
     37      1.1  cgd  */
     38      1.1  cgd 
     39      1.1  cgd /*
     40      1.1  cgd  * rogue.h
     41      1.1  cgd  *
     42      1.1  cgd  * This source herein may be modified and/or distributed by anybody who
     43      1.1  cgd  * so desires, with the following restrictions:
     44      1.1  cgd  *    1.)  This notice shall not be removed.
     45      1.1  cgd  *    2.)  Credit shall not be taken for the creation of this source.
     46      1.1  cgd  *    3.)  This code is not to be traded, sold, or used for personal
     47      1.1  cgd  *         gain or profit.
     48      1.1  cgd  */
     49      1.1  cgd 
     50      1.1  cgd #define boolean char
     51      1.1  cgd 
     52      1.1  cgd #define NOTHING		((unsigned short)     0)
     53      1.1  cgd #define OBJECT		((unsigned short)    01)
     54      1.1  cgd #define MONSTER		((unsigned short)    02)
     55      1.1  cgd #define STAIRS		((unsigned short)    04)
     56      1.1  cgd #define HORWALL		((unsigned short)   010)
     57      1.1  cgd #define VERTWALL	((unsigned short)   020)
     58      1.1  cgd #define DOOR		((unsigned short)   040)
     59      1.1  cgd #define FLOOR		((unsigned short)  0100)
     60      1.1  cgd #define TUNNEL		((unsigned short)  0200)
     61      1.1  cgd #define TRAP		((unsigned short)  0400)
     62      1.1  cgd #define HIDDEN		((unsigned short) 01000)
     63      1.1  cgd 
     64      1.1  cgd #define ARMOR		((unsigned short)   01)
     65      1.1  cgd #define WEAPON		((unsigned short)   02)
     66      1.1  cgd #define SCROL		((unsigned short)   04)
     67      1.1  cgd #define POTION		((unsigned short)  010)
     68      1.1  cgd #define GOLD		((unsigned short)  020)
     69      1.1  cgd #define FOOD		((unsigned short)  040)
     70      1.1  cgd #define WAND		((unsigned short) 0100)
     71      1.1  cgd #define RING		((unsigned short) 0200)
     72      1.1  cgd #define AMULET		((unsigned short) 0400)
     73      1.1  cgd #define ALL_OBJECTS	((unsigned short) 0777)
     74      1.1  cgd 
     75      1.1  cgd #define LEATHER 0
     76      1.1  cgd #define RINGMAIL 1
     77      1.1  cgd #define SCALE 2
     78      1.1  cgd #define CHAIN 3
     79      1.1  cgd #define BANDED 4
     80      1.1  cgd #define SPLINT 5
     81      1.1  cgd #define PLATE 6
     82      1.1  cgd #define ARMORS 7
     83      1.1  cgd 
     84      1.1  cgd #define BOW 0
     85      1.1  cgd #define DART 1
     86      1.1  cgd #define ARROW 2
     87      1.1  cgd #define DAGGER 3
     88      1.1  cgd #define SHURIKEN 4
     89      1.1  cgd #define MACE 5
     90      1.1  cgd #define LONG_SWORD 6
     91      1.1  cgd #define TWO_HANDED_SWORD 7
     92      1.1  cgd #define WEAPONS 8
     93      1.1  cgd 
     94      1.1  cgd #define MAX_PACK_COUNT 24
     95      1.1  cgd 
     96      1.1  cgd #define PROTECT_ARMOR 0
     97      1.1  cgd #define HOLD_MONSTER 1
     98      1.1  cgd #define ENCH_WEAPON 2
     99      1.1  cgd #define ENCH_ARMOR 3
    100      1.1  cgd #define IDENTIFY 4
    101      1.1  cgd #define TELEPORT 5
    102      1.1  cgd #define SLEEP 6
    103      1.1  cgd #define SCARE_MONSTER 7
    104      1.1  cgd #define REMOVE_CURSE 8
    105      1.1  cgd #define CREATE_MONSTER 9
    106      1.1  cgd #define AGGRAVATE_MONSTER 10
    107      1.1  cgd #define MAGIC_MAPPING 11
    108      1.1  cgd #define CON_MON 12
    109      1.1  cgd #define SCROLS 13
    110      1.1  cgd 
    111      1.1  cgd #define INCREASE_STRENGTH 0
    112      1.1  cgd #define RESTORE_STRENGTH 1
    113      1.1  cgd #define HEALING 2
    114      1.1  cgd #define EXTRA_HEALING 3
    115      1.1  cgd #define POISON 4
    116      1.1  cgd #define RAISE_LEVEL 5
    117      1.1  cgd #define BLINDNESS 6
    118      1.1  cgd #define HALLUCINATION 7
    119      1.1  cgd #define DETECT_MONSTER 8
    120      1.1  cgd #define DETECT_OBJECTS 9
    121      1.1  cgd #define CONFUSION 10
    122      1.1  cgd #define LEVITATION 11
    123      1.1  cgd #define HASTE_SELF 12
    124      1.1  cgd #define SEE_INVISIBLE 13
    125      1.1  cgd #define POTIONS 14
    126      1.1  cgd 
    127      1.1  cgd #define TELE_AWAY 0
    128      1.1  cgd #define SLOW_MONSTER 1
    129      1.1  cgd #define INVISIBILITY 2
    130      1.1  cgd #define POLYMORPH 3
    131      1.1  cgd #define HASTE_MONSTER 4
    132      1.1  cgd #define MAGIC_MISSILE 5
    133      1.1  cgd #define CANCELLATION 6
    134      1.1  cgd #define DO_NOTHING 7
    135      1.1  cgd #define DRAIN_LIFE 8
    136      1.1  cgd #define COLD 9
    137      1.1  cgd #define FIRE 10
    138      1.1  cgd #define WANDS 11
    139      1.1  cgd 
    140      1.1  cgd #define STEALTH 0
    141      1.1  cgd #define R_TELEPORT 1
    142      1.1  cgd #define REGENERATION 2
    143      1.1  cgd #define SLOW_DIGEST 3
    144      1.1  cgd #define ADD_STRENGTH 4
    145      1.1  cgd #define SUSTAIN_STRENGTH 5
    146      1.1  cgd #define DEXTERITY 6
    147      1.1  cgd #define ADORNMENT 7
    148      1.1  cgd #define R_SEE_INVISIBLE 8
    149      1.1  cgd #define MAINTAIN_ARMOR 9
    150      1.1  cgd #define SEARCHING 10
    151      1.1  cgd #define RINGS 11
    152      1.1  cgd 
    153      1.1  cgd #define RATION 0
    154      1.1  cgd #define FRUIT 1
    155      1.1  cgd 
    156      1.1  cgd #define NOT_USED		((unsigned short)   0)
    157      1.1  cgd #define BEING_WIELDED	((unsigned short)  01)
    158      1.1  cgd #define BEING_WORN		((unsigned short)  02)
    159      1.1  cgd #define ON_LEFT_HAND	((unsigned short)  04)
    160      1.1  cgd #define ON_RIGHT_HAND	((unsigned short) 010)
    161      1.1  cgd #define ON_EITHER_HAND	((unsigned short) 014)
    162      1.1  cgd #define BEING_USED		((unsigned short) 017)
    163      1.1  cgd 
    164      1.1  cgd #define NO_TRAP -1
    165      1.1  cgd #define TRAP_DOOR 0
    166      1.1  cgd #define BEAR_TRAP 1
    167      1.1  cgd #define TELE_TRAP 2
    168      1.1  cgd #define DART_TRAP 3
    169      1.1  cgd #define SLEEPING_GAS_TRAP 4
    170      1.1  cgd #define RUST_TRAP 5
    171      1.1  cgd #define TRAPS 6
    172      1.1  cgd 
    173      1.1  cgd #define STEALTH_FACTOR 3
    174      1.1  cgd #define R_TELE_PERCENT 8
    175      1.1  cgd 
    176      1.1  cgd #define UNIDENTIFIED ((unsigned short) 00)	/* MUST BE ZERO! */
    177      1.1  cgd #define IDENTIFIED ((unsigned short) 01)
    178      1.1  cgd #define CALLED ((unsigned short) 02)
    179      1.1  cgd 
    180      1.1  cgd #define DROWS 24
    181      1.1  cgd #define DCOLS 80
    182      1.1  cgd #define NMESSAGES 5
    183      1.1  cgd #define MAX_TITLE_LENGTH 30
    184      1.1  cgd #define MAXSYLLABLES 40
    185      1.1  cgd #define MAX_METAL 14
    186      1.1  cgd #define WAND_MATERIALS 30
    187      1.1  cgd #define GEMS 14
    188      1.1  cgd 
    189      1.1  cgd #define GOLD_PERCENT 46
    190      1.1  cgd 
    191      1.1  cgd #define MAX_OPT_LEN 40
    192      1.1  cgd 
    193      1.1  cgd struct id {
    194      1.1  cgd 	short value;
    195      1.1  cgd 	char *title;
    196      1.1  cgd 	char *real;
    197      1.1  cgd 	unsigned short id_status;
    198      1.1  cgd };
    199      1.1  cgd 
    200      1.1  cgd /* The following #defines provide more meaningful names for some of the
    201      1.1  cgd  * struct object fields that are used for monsters.  This, since each monster
    202      1.1  cgd  * and object (scrolls, potions, etc) are represented by a struct object.
    203      1.1  cgd  * Ideally, this should be handled by some kind of union structure.
    204      1.1  cgd  */
    205      1.1  cgd 
    206      1.1  cgd #define m_damage damage
    207      1.1  cgd #define hp_to_kill quantity
    208      1.1  cgd #define m_char ichar
    209      1.1  cgd #define first_level is_protected
    210      1.1  cgd #define last_level is_cursed
    211      1.1  cgd #define m_hit_chance class
    212      1.1  cgd #define stationary_damage identified
    213      1.1  cgd #define drop_percent which_kind
    214      1.1  cgd #define trail_char d_enchant
    215      1.1  cgd #define slowed_toggle quiver
    216      1.1  cgd #define moves_confused hit_enchant
    217      1.1  cgd #define nap_length picked_up
    218      1.1  cgd #define disguise what_is
    219      1.1  cgd #define next_monster next_object
    220      1.1  cgd 
    221      1.1  cgd struct obj {				/* comment is monster meaning */
    222      1.1  cgd 	unsigned long m_flags;	/* monster flags */
    223      1.1  cgd 	char *damage;			/* damage it does */
    224      1.1  cgd 	short quantity;			/* hit points to kill */
    225      1.1  cgd 	short ichar;			/* 'A' is for aquatar */
    226      1.1  cgd 	short kill_exp;			/* exp for killing it */
    227      1.1  cgd 	short is_protected;		/* level starts */
    228      1.1  cgd 	short is_cursed;		/* level ends */
    229      1.1  cgd 	short class;			/* chance of hitting you */
    230      1.1  cgd 	short identified;		/* 'F' damage, 1,2,3... */
    231      1.1  cgd 	unsigned short which_kind; /* item carry/drop % */
    232      1.1  cgd 	short o_row, o_col, o;	/* o is how many times stuck at o_row, o_col */
    233      1.1  cgd 	short row, col;			/* current row, col */
    234      1.1  cgd 	short d_enchant;		/* room char when detect_monster */
    235      1.1  cgd 	short quiver;			/* monster slowed toggle */
    236      1.1  cgd 	short trow, tcol;		/* target row, col */
    237      1.1  cgd 	short hit_enchant;		/* how many moves is confused */
    238      1.1  cgd 	unsigned short what_is;	/* imitator's charactor (?!%: */
    239      1.1  cgd 	short picked_up;		/* sleep from wand of sleep */
    240      1.1  cgd 	unsigned short in_use_flags;
    241      1.1  cgd 	struct obj *next_object;	/* next monster */
    242      1.1  cgd };
    243      1.1  cgd 
    244      1.1  cgd typedef struct obj object;
    245      1.1  cgd 
    246      1.1  cgd #define INIT_AW (object*)0,(object*)0
    247      1.1  cgd #define INIT_RINGS (object*)0,(object*)0
    248      1.1  cgd #define INIT_HP 12,12
    249      1.1  cgd #define INIT_STR 16,16
    250      1.1  cgd #define INIT_EXP 1,0
    251      1.1  cgd #define INIT_PACK {0}
    252      1.1  cgd #define INIT_GOLD 0
    253      1.1  cgd #define INIT_CHAR '@'
    254      1.1  cgd #define INIT_MOVES 1250
    255      1.1  cgd 
    256      1.1  cgd struct fightr {
    257      1.1  cgd 	object *armor;
    258      1.1  cgd 	object *weapon;
    259      1.1  cgd 	object *left_ring, *right_ring;
    260      1.1  cgd 	short hp_current;
    261      1.1  cgd 	short hp_max;
    262      1.1  cgd 	short str_current;
    263      1.1  cgd 	short str_max;
    264      1.1  cgd 	object pack;
    265      1.1  cgd 	long gold;
    266      1.1  cgd 	short exp;
    267      1.1  cgd 	long exp_points;
    268      1.1  cgd 	short row, col;
    269      1.1  cgd 	short fchar;
    270      1.1  cgd 	short moves_left;
    271      1.1  cgd };
    272      1.1  cgd 
    273      1.1  cgd typedef struct fightr fighter;
    274      1.1  cgd 
    275      1.1  cgd struct dr {
    276      1.1  cgd 	short oth_room;
    277      1.1  cgd 	short oth_row,
    278      1.1  cgd 	      oth_col;
    279      1.1  cgd 	short door_row,
    280      1.1  cgd 		  door_col;
    281      1.1  cgd };
    282      1.1  cgd 
    283      1.1  cgd typedef struct dr door;
    284      1.1  cgd 
    285      1.1  cgd struct rm {
    286      1.1  cgd 	short bottom_row, right_col, left_col, top_row;
    287      1.1  cgd 	door doors[4];
    288      1.1  cgd 	unsigned short is_room;
    289      1.1  cgd };
    290      1.1  cgd 
    291      1.1  cgd typedef struct rm room;
    292      1.1  cgd 
    293      1.1  cgd #define MAXROOMS 9
    294      1.1  cgd #define BIG_ROOM 10
    295      1.1  cgd 
    296      1.1  cgd #define NO_ROOM -1
    297      1.1  cgd 
    298      1.1  cgd #define PASSAGE -3		/* cur_room value */
    299      1.1  cgd 
    300      1.1  cgd #define AMULET_LEVEL 26
    301      1.1  cgd 
    302      1.1  cgd #define R_NOTHING	((unsigned short) 01)
    303      1.1  cgd #define R_ROOM		((unsigned short) 02)
    304      1.1  cgd #define R_MAZE		((unsigned short) 04)
    305      1.1  cgd #define R_DEADEND	((unsigned short) 010)
    306      1.1  cgd #define R_CROSS		((unsigned short) 020)
    307      1.1  cgd 
    308      1.1  cgd #define MAX_EXP_LEVEL 21
    309      1.1  cgd #define MAX_EXP 10000001L
    310      1.1  cgd #define MAX_GOLD 999999
    311      1.1  cgd #define MAX_ARMOR 99
    312      1.1  cgd #define MAX_HP 999
    313      1.1  cgd #define MAX_STRENGTH 99
    314      1.1  cgd #define LAST_DUNGEON 99
    315      1.1  cgd 
    316      1.1  cgd #define STAT_LEVEL 01
    317      1.1  cgd #define STAT_GOLD 02
    318      1.1  cgd #define STAT_HP 04
    319      1.1  cgd #define STAT_STRENGTH 010
    320      1.1  cgd #define STAT_ARMOR 020
    321      1.1  cgd #define STAT_EXP 040
    322      1.1  cgd #define STAT_HUNGER 0100
    323      1.1  cgd #define STAT_LABEL 0200
    324      1.1  cgd #define STAT_ALL 0377
    325      1.1  cgd 
    326      1.1  cgd #define PARTY_TIME 10	/* one party somewhere in each 10 level span */
    327      1.1  cgd 
    328      1.1  cgd #define MAX_TRAPS 10	/* maximum traps per level */
    329      1.1  cgd 
    330      1.1  cgd #define HIDE_PERCENT 12
    331      1.1  cgd 
    332      1.1  cgd struct tr {
    333      1.1  cgd 	short trap_type;
    334      1.1  cgd 	short trap_row, trap_col;
    335      1.1  cgd };
    336      1.1  cgd 
    337      1.1  cgd typedef struct tr trap;
    338      1.1  cgd 
    339      1.1  cgd extern fighter rogue;
    340      1.1  cgd extern room rooms[];
    341      1.1  cgd extern trap traps[];
    342      1.1  cgd extern unsigned short dungeon[DROWS][DCOLS];
    343      1.1  cgd extern object level_objects;
    344      1.1  cgd 
    345      1.1  cgd extern struct id id_scrolls[];
    346      1.1  cgd extern struct id id_potions[];
    347      1.1  cgd extern struct id id_wands[];
    348      1.1  cgd extern struct id id_rings[];
    349      1.1  cgd extern struct id id_weapons[];
    350      1.1  cgd extern struct id id_armors[];
    351      1.1  cgd 
    352      1.1  cgd extern object mon_tab[];
    353      1.1  cgd extern object level_monsters;
    354      1.1  cgd 
    355      1.1  cgd #define MONSTERS 26
    356      1.1  cgd 
    357      1.1  cgd #define HASTED					01L
    358      1.1  cgd #define SLOWED					02L
    359      1.1  cgd #define INVISIBLE				04L
    360      1.1  cgd #define ASLEEP				   010L
    361      1.1  cgd #define WAKENS				   020L
    362      1.1  cgd #define WANDERS				   040L
    363      1.1  cgd #define FLIES				  0100L
    364      1.1  cgd #define FLITS				  0200L
    365      1.1  cgd #define CAN_FLIT			  0400L		/* can, but usually doesn't, flit */
    366      1.1  cgd #define CONFUSED	 		 01000L
    367      1.1  cgd #define RUSTS				 02000L
    368      1.1  cgd #define HOLDS				 04000L
    369      1.1  cgd #define FREEZES				010000L
    370      1.1  cgd #define STEALS_GOLD			020000L
    371      1.1  cgd #define STEALS_ITEM			040000L
    372      1.1  cgd #define STINGS			   0100000L
    373      1.1  cgd #define DRAINS_LIFE		   0200000L
    374      1.1  cgd #define DROPS_LEVEL		   0400000L
    375      1.1  cgd #define SEEKS_GOLD		  01000000L
    376      1.1  cgd #define FREEZING_ROGUE	  02000000L
    377      1.1  cgd #define RUST_VANISHED	  04000000L
    378      1.1  cgd #define CONFUSES		 010000000L
    379      1.1  cgd #define IMITATES		 020000000L
    380      1.1  cgd #define FLAMES			 040000000L
    381      1.1  cgd #define STATIONARY		0100000000L		/* damage will be 1,2,3,... */
    382      1.1  cgd #define NAPPING			0200000000L		/* can't wake up for a while */
    383      1.1  cgd #define ALREADY_MOVED	0400000000L
    384      1.1  cgd 
    385      1.1  cgd #define SPECIAL_HIT		(RUSTS|HOLDS|FREEZES|STEALS_GOLD|STEALS_ITEM|STINGS|DRAINS_LIFE|DROPS_LEVEL)
    386      1.1  cgd 
    387      1.1  cgd #define WAKE_PERCENT 45
    388      1.1  cgd #define FLIT_PERCENT 40
    389      1.1  cgd #define PARTY_WAKE_PERCENT 75
    390      1.1  cgd 
    391      1.1  cgd #define HYPOTHERMIA 1
    392      1.1  cgd #define STARVATION 2
    393      1.1  cgd #define POISON_DART 3
    394      1.1  cgd #define QUIT 4
    395      1.1  cgd #define WIN 5
    396      1.1  cgd #define KFIRE 6
    397      1.1  cgd 
    398      1.1  cgd #define UPWARD 0
    399      1.1  cgd #define UPRIGHT 1
    400      1.1  cgd #define RIGHT 2
    401      1.1  cgd #define DOWNRIGHT 3
    402      1.1  cgd #define DOWN 4
    403      1.1  cgd #define DOWNLEFT 5
    404      1.1  cgd #define LEFT 6
    405      1.1  cgd #define UPLEFT 7
    406      1.1  cgd #define DIRS 8
    407      1.1  cgd 
    408      1.1  cgd #define ROW1 7
    409      1.1  cgd #define ROW2 15
    410      1.1  cgd 
    411      1.1  cgd #define COL1 26
    412      1.1  cgd #define COL2 52
    413      1.1  cgd 
    414      1.1  cgd #define MOVED 0
    415      1.1  cgd #define MOVE_FAILED -1
    416      1.1  cgd #define STOPPED_ON_SOMETHING -2
    417      1.1  cgd #define CANCEL '\033'
    418      1.1  cgd #define LIST '*'
    419      1.1  cgd 
    420      1.1  cgd #define HUNGRY 300
    421      1.1  cgd #define WEAK 150
    422      1.1  cgd #define FAINT 20
    423      1.1  cgd #define STARVE 0
    424      1.1  cgd 
    425      1.1  cgd #define MIN_ROW 1
    426      1.1  cgd 
    427      1.1  cgd /* external routine declarations.
    428      1.1  cgd  */
    429      1.1  cgd char *strcpy();
    430      1.1  cgd char *strncpy();
    431      1.1  cgd char *strcat();
    432      1.1  cgd 
    433      1.1  cgd char *mon_name();
    434      1.1  cgd char *get_ench_color();
    435      1.1  cgd char *name_of();
    436      1.1  cgd char *md_gln();
    437      1.1  cgd char *md_getenv();
    438      1.1  cgd char *md_malloc();
    439      1.1  cgd boolean is_direction();
    440      1.1  cgd boolean mon_sees();
    441      1.1  cgd boolean mask_pack();
    442      1.1  cgd boolean mask_room();
    443      1.1  cgd boolean is_digit();
    444      1.1  cgd boolean check_hunger();
    445      1.1  cgd boolean reg_move();
    446      1.1  cgd boolean md_df();
    447      1.1  cgd boolean has_been_touched();
    448      1.1  cgd object *add_to_pack();
    449      1.1  cgd object *alloc_object();
    450      1.1  cgd object *get_letter_object();
    451      1.1  cgd object *gr_monster();
    452      1.1  cgd object *get_thrown_at_monster();
    453      1.1  cgd object *get_zapped_monster();
    454      1.1  cgd object *check_duplicate();
    455      1.1  cgd object *gr_object();
    456      1.1  cgd object *object_at();
    457      1.1  cgd object *pick_up();
    458      1.1  cgd struct id *get_id_table();
    459      1.1  cgd unsigned short gr_what_is();
    460      1.1  cgd long rrandom();
    461      1.1  cgd long lget_number();
    462      1.1  cgd long xxx();
    463      1.1  cgd void byebye(), onintr(), error_save();
    464      1.1  cgd 
    465      1.1  cgd struct rogue_time {
    466      1.1  cgd 	short year;		/* >= 1987 */
    467      1.1  cgd 	short month;	/* 1 - 12 */
    468      1.1  cgd 	short day;		/* 1 - 31 */
    469      1.1  cgd 	short hour;		/* 0 - 23 */
    470      1.1  cgd 	short minute;	/* 0 - 59 */
    471      1.1  cgd 	short second;	/* 0 - 59 */
    472      1.1  cgd };
    473      1.1  cgd 
    474      1.1  cgd #ifdef CURSES
    475      1.1  cgd struct _win_st {
    476      1.1  cgd 	short _cury, _curx;
    477      1.1  cgd 	short _maxy, _maxx;
    478      1.1  cgd };
    479      1.1  cgd 
    480      1.1  cgd typedef struct _win_st WINDOW;
    481      1.1  cgd 
    482      1.1  cgd extern int LINES, COLS;
    483      1.1  cgd extern WINDOW *curscr;
    484      1.1  cgd extern char *CL;
    485      1.1  cgd 
    486      1.1  cgd char *md_gdtcf();
    487      1.1  cgd 
    488      1.1  cgd #else
    489      1.1  cgd #include <curses.h>
    490      1.1  cgd #endif
    491