#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; typedef void *mall_t; /* 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 - (from (errors.c') */ extern char *mud_errtxt (int no); /* MUD-server state access functions (from 'mud.c') */ extern char *mud_getname (void); extern int cron_quantum; /* LOW-level object manipulation functions (from 'obj.c') */ extern char *objattr (Obj * obj, char *attr, int *slot); extern Obj *objnew (void); extern void objfree (Obj * obj); extern int objsetattr (Obj * o, char *aty, char *att, char *ada); extern int objunsetattr (Obj * obj, char *attr); extern int objstuffattr (Obj * o, char *data, int len); extern char *attdata (char *v); extern int attistype (char *v, char *vt); extern int attname (char *a, char *aname); /* memory allocation stuff (from 'alloc.c') */ extern void tmp_sync (void); extern mall_t tmpalloc (size_t siz); extern char *tmpstr (char *s); extern void deferfree (mall_t p); /* 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 char *ut_getatt (char *onam, int flg, char *typ, ...); extern int ut_getnum (char *ob, char *att, int *ret); extern int ut_setnum (char *who, char *ob, char *att, int val); extern int ut_delocaliz (char *o1); extern int ut_isgoodid (char *v); extern int ut_isobjown (char *who, char *what); extern int ut_listadd (char *who, char *onam, char *anam, char *item); extern int ut_listdel (char *who, char *onam, char *anam, char *item); extern int ut_objnew (char *who, char *rbuf); extern char *ut_name (char *ob); /* object's location */ extern char *ut_loc (char *ob); /* object's name */ extern char *ut_dropto (char *what, char *where, char *hm); /* return room or dropto */ extern int ut_home (char *obj, char *dest); /* object's home */ extern void ut_roombcast (char *where, char *notme, ...); extern int ut_setpass (char *obj, char *pass); extern int ut_unset (char *who, char *onam, char *anam); extern int ut_set (char *who, char *onam, char *typ, char *anam, char *val); extern int ut_flagged (char *who, char *flag); extern int ut_listchk (char *onam, char *anam, char *item); #ifdef COMBAT extern int ut_home_player (char *aswho, char *goob, char *where); #endif /* attribute functions (from 'vars.c') */ extern int var_ispublic (char *vn, char *who, char *aswho, char *what); extern char *var_namatch (char *nam); extern void fndvnam (char *vt, char *buf, int siz); extern int fndtyp (char *vt); extern int var_set_internal (char *who, char *aswho, char *ob, char *typp, char *atpp, char *vapp, int vbose); extern int var_unset_internal (char *who, char *aswho, char *ob, char *atpp, int vbose); /* cache access/update functions (from 'cache.c') */ extern int cache_init (void); extern int cache_sync (void); extern Obj *cache_get (char *nam); extern int cache_put (Obj * obj, char *nam); extern int cache_check (char *nam); extern void cache_reset (void); extern int cache_del (char *nam, int flg); #include "sbuf.h" /* list manipulation functions (from 'list.c') */ extern char *lstadd (char *l, char *nam, int *lp); extern char *lstdel (char *l, char *nam, int *lp); extern char *lstnext (char *l, char *buf, int bs); extern char *lstnextsbuf (char *l, Sbuf * sb); extern int lstlook (char *l, char *nam); extern int lstcnt (char *l); /* OIF functions (from 'DB/oif.c') */ extern Obj *oiffromFILE (FILE * f, char *nbuf); extern int oiftoFILE (Obj * o, FILE * f, char *nam); extern Obj *oiffromSTRING (char *string, char *nbuf); extern int oiftoSTRING (Obj * o, char *buf, char *nam, int len); extern int oif_objsiz (Obj * o, char *n); #ifdef COMPRESS_OIF extern void comp_on (int onoff); extern void comp_init (); #endif /* OIF functions (from 'misc2.c') */ extern void oiftowho (Obj * o, char *who, char *nam); /* DBM-based db routines (from 'DB/dbmchunk.c') */ #ifdef DB_DBMFILE extern int cmd__dddbconfig (int argc, char **argv, char *who, char *aswho); /* in dbmconf.c */ extern int dddb_backup (char *out); extern int dddb_check (char *nam); extern int dddb_close (void); extern int dddb_del (char *nam, int flg); extern Obj *dddb_get (char *nam); extern int dddb_init (void); extern int dddb_initted (void); extern int dddb_put (Obj * obj, char *nam); extern int dddb_setbsiz (int nbsiz); extern int dddb_setfile (char *fil); extern int dddb_travend (void); extern int dddb_traverse (char *obuf); extern int dddb_travstart (void); #endif /* GDBM-based routines (from 'DB/gdbmchunk.c') */ #ifdef DB_GDBMFILE extern int cmd__dgdbconfig (int argc, char **argv, char *who, char *aswho); /* in gdbmconf.c */ extern int dgdb_backup (char *out); extern int dgdb_check (char *nam); extern int dgdb_close (void); extern int dgdb_del (char *nam, int flg); extern Obj *dgdb_get (char *nam); extern int dgdb_init (void); extern int dgdb_initted (void); extern int dgdb_put (Obj * obj, char *nam); extern int dgdb_setfile (char *fil); extern int dgdb_travend (void); extern int dgdb_traverse (char *obuf); extern int dgdb_travstart (void); #endif /* hashed directory routines (from 'DB/hashdir.c') */ #ifdef DB_DIRHASH extern int cmd__dhdbconfig (int argc, char *argv[], char *who, char *aswho); extern int dhdb_backup (char *out); extern int dhdb_check (char *nam); extern int dhdb_close (void); extern int dhdb_del (char *nam, int flg); extern Obj *dhdb_get (char *nam); extern int dhdb_init (void); extern int dhdb_initted (void); extern int dhdb_put (Obj * obj, char *nam); extern int dhdb_sethpath (char *newpath); extern int dhdb_sethsiz (int newsiz); extern int dhdb_travend (void); extern int dhdb_traverse (char *ob); extern int dhdb_travstart (void); #endif /* "lookat" code (from 'do_look.c') */ extern int do_examine (char *who, char *aswho, char *ob); extern void lookat (char *who, char *thing, int flg); extern int say_attribute (char *who, char *ob, char *att, char *title, int showoid); /* boolean code (from 'bool.c') */ extern int bool_eval (char *who, char *where, char *s, int check); extern int bool_locked (char *who, char *what, char *where, char *lockvar, int deflt); /* evaluate boolean lock */ extern int bool_syntax (char *who, char *exp); /* check a lock's syntax */ extern int bool_rewrite (char *who, char *s, Sbuf * out); /* output to a player through the network layer (in 'net.c') */ extern int io_init (void); extern void io_sync (void); extern void say (char *who, ...); extern void io_logoff (char *who); extern void io_rstnxtwho (void); /* reset WHO list traverse */ extern char *io_nxtwho (time_t * timp); /* WHO list traverse */ /* from login.c */ extern void welcome (char *who); /* called by I/O code during login */ extern void goodbye (char *w); /* called by I/O code during hangup */ extern int login (char *lp, char *whobuf); /* called by I/O code during login */ extern int newlogin (char *line, char *whobuf); /* parser support (in 'U/uinterp.y') */ extern void parser_setinput (char *s); extern int parser_compile (char *who); extern int parser_run (char *who, char *aswho, int ac, char *av[]); extern void eval_cmd_returnint (int val); extern void eval_cmd_returnstr (char *val); extern void eval_cmd_returnoid (char *val); /* runtime support. (in 'run.c') */ extern char *run_actor (void); /* object ID of player running */ extern int run_level (void); /* recursion depth */ extern int add_run_level (void); /* increase recursion depth */ extern void run_setactor (char *s); extern int run (char *who, char *aswho, char *s, int argc, char *argv[], int real_call); extern int run_tokenize (char *bp, char **av, int avsiz, char *tobuf, size_t tobsiz); extern int enargv (char *bp, char **av, int avsiz, char buf[], int bsiz, char **retp, char *who, char *aswho, int cac, char *cav[]); extern int run_boot (char *l); extern int vresolve (char *nam, char *who, char *aswho, int ac, char *av[], char **bp, size_t * lp); /* 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 */ int activate (int flg, char *who, char *what, char *where, char *actvar, int argc, char *argv[]); /* 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 log_printf (char *, ...); extern void logf_close (void); extern int logf_open (char *f); extern void fatal (char *first, ...); extern void rot_init(char *key); extern void rot_encode(char *s1, char *s2); extern void rot_decode(char *s1, char *s2); extern int get_random (int num); extern unsigned int objid_hash (char *oid, int hw); extern int say_file(char *who, char *nam); /* dump a file to the player */ extern char *itoa (int num, char *rbuf, int base); /* int to ascii */ extern char *itoa (int num, char *rbuf, int base); extern void plogf (char *fmt, ...); /* This remainder of this file contains all prototypes that were not defined */ /* cron.c */ int cron_run (time_t now); /* do_go.c */ int player_go (int argc, char *argv[], char *who, char *from, char *to); /* match.c */ int matchplayers (char *who, char *what, char *where, int flg, char *dest); int matchinv (char *who, char *what, int matchu, int flg, char *dest); int matchstr (char *s1, char *s2, int sem); int matchlocal (char *who, char *what, char *where, int flg, char *dest); int matchargvexit (char *where, char *av[], int ac, char *dest); int matchloggedinplayers (char *what, char *dest); int matchwear (char *who, char *what, int flg, char *dest); int matchexit (char *who, char *what, char *where, int flg, char *dest); int matchobjects (char *who, char *what, char *where, int flg, char *dest); /* net.c */ int io_loop (void); /* xact.c */ void xact_in (SOCKET fd); int xact_sendplayer (char *p, char *src, char *dest); void xact_tinylink (char *who); int xact_addlink (char *to, char *from, char *who); /* xmit.c */ int xmit_def_mudent (char *name, char *host, char *symhost, char *rempw, char *locpw, char *port, char *plyport, char *timot); int xmit_def_knownmud (char *mud); int xmit_okay_remote (char *name); int xc_initfd (SOCKET fd); int xc_write (char *, ...); void xc_close (void); int xc_flush (void); int set_remmud (char *nam); int xc_open (char *mud); int xmit_greet (void); int check_rempwd (char *pwd); #define _INCL_MUD_H #endif