/
teeny/db/
teeny/dbm/
teeny/docs/
teeny/includes/
teeny/misc/
teeny/news/
teeny/text/
/* teeny.h */

/*
 * This file contains many to-be-edited-with-caution defines, along with some
 * function declarations. "config.h" should be included before this file at
 * all times. 
 */

/* Change this if you make source code modifications */
static char     version[] = "TeenyMud 1.3";

/*
 * Object element codes, for use when accessing the DB with get_int_elt() et.
 * al. 
 *
 */

/* These gadgets are all integers */

#define FLAGS           0
#define NAME            1
#define SITE            2
#define LOC             3

/* Home, dropto, and destination are the same */

#define HOME            4
#define DROPTO          4
#define DESTINATION     4
#define OWNER           5
#define CONTENTS        6
#define EXITS           7
#define NEXT            8
#define TIMESTAMP       9

/* This is a bizzare array of ints. */

#define LOCK            10

/* The obvious strings */

#define SUC             11
#define OSUC            12
#define FAIL            13
#define OFAIL           14
#define DESC            15
#define GENDER          16
#define DROP            17
#define ODROP           18
#define OARRIVE		19
#define OLEAVE		20

/*
 * Various defines for the fields of the flags. 
 */

/* Leave the type field in the low order bits or DIE. */

#define TYPE_MASK       0x0003
#define TYP_PLAYER      0
#define TYP_THING       1
#define TYP_ROOM        2
#define TYP_EXIT        3

/* External flags */

#define STICKY          0x0004
#define WIZARD          0x0008
#define TEMPLE          0x0010
#define LINK_OK         0x0020
#define DARK            0x0040
#define HAVEN           0x0080
#define JUMP_OK         0x0100
#define ABODE           0x0200
#define BUILDER         0x0400

/*
 * Flags used internally by the DB gear. You are resonsible for NOT fucking
 * with these 
 */

#define FREE_CHUNK      0x1000
#define IN_MEMORY       0x2000
#define DIRTY           0x4000
#define ALIVE           0x8000

/* A mask for the internal use flags */

#define INTERNAL_FLAGS  0xF000

#define TRUE    1
#define FALSE   0
#define BUFFSIZ 512
#define PREFIX_CODE 1
#define SUFFIX_CODE 2
#define EXITS_LIST 0
#define CONTENTS_LIST 1

/*
 * Possible MUD statuses 
 */

#define RUNNING 0
#define DUMPING 1
#define STOPPED 2

/* For stupid compilers... */
#ifdef NO_VOID_POINTERS
/* these used to be typedef's, but the VAX compiler decided to choke on 'em. */
#define voidfunc      int
#else
#define voidfunc      void
#endif				/* NO_VOID_POINTERS */

/* Macros for checking internal and external flags */

#define iswiz(x)        (is_flag_set(x,WIZARD))
#define istemple(x)     (is_flag_set(x,TEMPLE))
#define issticky(x)     (is_flag_set(x,STICKY))
#define islinkok(x)     (is_flag_set(x,LINK_OK))
#define isdark(x)       (is_flag_set(x,DARK))
#define ishaven(x)      (is_flag_set(x,HAVEN))
#define isjumpok(x)     (is_flag_set(x,JUMP_OK))
#define isabode(x)      (is_flag_set(x,ABODE))
#define isbuilder(x)    (is_flag_set(x,BUILDER))

/*
 * Forward function declarations. None of that ANSI shit here. 
 */

extern void     destroy_obj();
extern void     animate();
extern char    *ty_malloc();
extern long     get_chunk();
extern struct obj_data *disk_thaw();
extern void     unlock_cache();
extern struct dsc *get_descriptor();
extern char    *ty_itoa();
extern int     *bool_parse();
extern int      match_player();
extern int      match_who();
extern void     iobdisconnect();
extern void     iobdrop();
extern void     iobflush();
extern void     notify_player();
extern void     notify_wall();
extern void     iosync();
extern void     iobput();
extern void     iowrap();
extern void     del_free_chunk();
extern void     free_descriptor();
extern voidfunc do_look();
extern voidfunc do_score();
extern void     list_drop();
extern void     fail_object();
extern void     succeed_object();
extern void     flush_room();
extern void     list_add();
extern void     greet();
extern char    *pronoun_sub();
extern void     newwho();
extern void     dropwho();
extern void     do_wholist();
extern void     do_finger();
extern void     do_doing();
extern void     log_connect();
extern void     log_disconnect();
extern void     ty_free();