#ifndef _INCL_MUD_H
/* MUD version */
extern char version[];
/* how an object is stored. just a vector of attributes */
typedef struct {
unsigned ocnt; /* attribute count */
char **oap; /* list of object attributes */
} Obj;
/* some machines have malloc use void pointers. bloody standards puke */
#ifdef MALL_IS_VOID
typedef void *mall_t;
#else
typedef char *mall_t;
#endif
#ifndef DONT_REDEFINE_MALLOC_DAMMIT
/* forward decl malloc */
extern mall_t malloc();
extern mall_t realloc();
#endif
#ifdef SIG_IS_VOID
typedef void (*sig_t)();
#else
typedef int (*sig_t)();
#endif
/* error codes */
#define UERR_NONE 0
#define UERR_FATAL 1 /* interpreter barf */
#define UERR_USER 2 /* user error */
#define UERR_TYPE 3 /* type mismatch */
#define UERR_ZDIV 4 /* division by zero */
#define UERR_BADOID 5 /* illegal object ID */
#define UERR_BADLST 6 /* bad list */
#define UERR_ILLASGN 7 /* illegal assignment */
#define UERR_NOATTR 8 /* no such attribute */
#define UERR_NOFUNC 9 /* no such function */
#define UERR_SYNTAX 10 /* syntax error */
#define UERR_PERM 11 /* permission denied */
#define UERR_ARGCNT 12 /* too many parameters */
#define UERR_BADPARM 13 /* illegal parameters */
#define UERR_NOMATCH 14 /* no match */
/* error code strings */
extern char *mud_errtxt();
/* MUD-server state access functions (from 'mud.c') */
extern char *mud_getname();
extern int cron_quantum;
/* LOW-level object manipulation functions (from 'obj.c') */
extern char *objattr();
extern Obj *objnew();
extern void objfree();
extern int objsetattr();
extern int objunsetattr();
extern int objstuffattr();
extern char *attdata();
extern int attistype();
/* memory allocation stuff (from 'alloc.c') */
extern void tmp_sync();
extern mall_t tmpalloc();
extern char *tmpstr();
extern void deferfree();
/*
utility object/attribute manipulation functions (from 'objutil.c')
typically these are more useful than the lower-level stuff above
for writing user-applications and commands.
*/
extern int att_objcmp();
extern char *ut_getatt();
extern int ut_getnum();
extern int ut_setnum();
extern int ut_delocaliz();
extern int ut_isgoodid();
extern int ut_isobjown();
extern int ut_listadd();
extern int ut_listdel();
extern int ut_objnew();
extern char *ut_name(); /* object's location */
extern char *ut_loc(); /* object's name */
extern char *ut_dropto(); /* return room or dropto */
extern int ut_home(); /* object's home */
extern void ut_roombcast();
extern int ut_setpass();
/* attribute functions (from 'vars.c') */
extern int var_ispublic();
extern char *var_namatch();
extern void fndvnam();
extern int fndtyp();
/* cache access/update functions (from 'cache.c') */
extern int cache_init();
extern int cache_sync();
extern Obj *cache_get();
extern int cache_put();
extern int cache_check();
extern void cache_reset();
/* list manipulation functions (from 'list.c') */
extern char *lstadd();
extern char *lstdel();
extern char *lstnext();
extern char *lstnextsbuf();
extern int lstlook();
extern int lstcnt();
/* OIF functions (from 'oif.c') */
extern Obj *oiffromFILE();
extern int oiftoFILE();
extern Obj *oiffromSTRING();
extern int oiftoSTRING();
extern int oif_objsiz();
extern void oiftowho();
#ifdef COMPRESS_OIF
extern void comp_init();
extern void comp_on();
#endif
/* DBM-based db routines (from 'DB/dbmchunk.c') */
#ifdef DB_DBMFILE
extern int cmd__dddbconfig();
extern int dddb_backup();
extern int dddb_check();
extern int dddb_close();
extern int dddb_del();
extern Obj *dddb_get();
extern int dddb_init();
extern int dddb_initted();
extern int dddb_put();
extern int dddb_setbsiz();
extern int dddb_setfile();
extern int dddb_travend();
extern int dddb_traverse();
extern int dddb_travstart();
#endif
/* GDBM-based routines (from 'DB/gdbmchunk.c') */
#ifdef DB_GDBMFILE
extern int cmd__dgdbconfig();
extern int dgdb_backup();
extern int dgdb_check();
extern int dgdb_close();
extern int dgdb_del();
extern Obj *dgdb_get();
extern int dgdb_init();
extern int dgdb_initted();
extern int dgdb_put();
extern int dgdb_setfile();
extern int dgdb_travend();
extern int dgdb_traverse();
extern int dgdb_travstart();
#endif
/* hashed directory routines (from 'DB/hashdir.c') */
#ifdef DB_DIRHASH
extern int cmd__dhdbconfig();
extern int dhdb_backup();
extern int dhdb_check();
extern int dhdb_close();
extern int dhdb_del();
extern Obj *dhdb_get();
extern int dhdb_init();
extern int dhdb_initted();
extern int dhdb_put();
extern int dhdb_sethpath();
extern int dhdb_sethsiz();
extern int dhdb_travend();
extern int dhdb_traverse();
extern int dhdb_travstart();
#endif
/* "lookat" code (from 'do_look.c') */
extern int do_examine();
extern void lookat();
extern int say_attribute();
/* boolean code (from 'bool.c') */
extern int bool_eval();
extern int bool_locked(); /* evaluate boolean lock */
extern int bool_syntax(); /* check a lock's syntax */
/* output to a player through the network layer (in 'tcpio.c') */
extern int io_init();
extern void io_sync();
extern void say();
extern void io_logoff();
extern void welcome(); /* called by I/O code during login */
extern void goodbye(); /* called by I/O code during hangup */
extern int login(); /* called by I/O code during login */
extern void io_rstnxtwho(); /* reset WHO list traverse */
extern char *io_nxtwho(); /* WHO list traverse */
/* parser support (in 'U/uinterp.y') */
extern void parser_setinput();
extern int parser_compile();
extern int parser_run();
extern void eval_cmd_returnint();
extern void eval_cmd_returnstr();
extern void eval_cmd_returnoid();
/* runtime support. (in 'run.c') */
extern char *run_actor(); /* object ID of player running */
extern int run_level(); /* recursion depth */
extern int add_run_level();/* increase recursion depth */
extern void run_setactor();
extern int run();
extern int run_tokenize();
extern int enargv();
/* activation of ofail/fail/ etc */
#define ACTIV_BCAST 0 /* if found, send to whole room */
#define ACTIV_PONLY 1 /* if found, send tO who only */
#define ACTIV_ECAST 2 /* if found, send to room, not player */
extern int activate();
/* sending objects home (or limbo) */
#define CONTENTS_HOME 1 /* send contents of object to their homes */
#define DEFAULT_LIMBO 2 /* send object to limbo if home = location */
/* This is static in CMD/destroy.c, and not referenced anywhere else? -Devin */
/* extern int home_object(); */
/* misc utility functions */
extern void logf();
extern void logf_close();
extern int logf_open();
extern void fatal();
extern void rot_init();
extern void rot_encode();
extern void rot_decode();
extern int get_random();
extern unsigned int objid_hash();
extern int say_file(); /* dump a file to the player */
extern char *itoa(); /* int to ascii */
#define _INCL_MUD_H
#endif