/* externs.h - Prototypes for externs not defined elsewhere */ #include "copyright.h" #ifndef __EXTERNS__H #define __EXTERNS__H #include "db.h" #include "mudconf.h" #define ToLower(s) (isupper(s) ? tolower(s) : (s)) #define ToUpper(s) (islower(s) ? toupper(s) : (s)) extern long random(void); /* From cque.c */ extern int halt_que (dbref player, dbref object); extern void wait_que (dbref player, dbref cause, int key, int wait, dbref sem, char *command, char *args[], int nargs); /* From eval.c */ extern char *parse_to(char **dstr, char delim, int stripbrackets); extern char *parse_arglist (dbref player, dbref cause, char *dstr, char delim, int eval, char *fargs[], int nfargs, char *cargs[], int ncargs); extern char *exec(dbref player, dbref cause, int func_opt, char *dstr, char *cargs[], int ncargs); /* From game.c */ #define notify(p,m) notify_check(p,p,m,0) #define notify_with_cause(p,c,m) notify_check(p,c,m,0) #define notify_puppet(p,c,m) notify_check(p,c,m,1) extern void notify_check(dbref player, dbref enactor, const char *msg, int check_puppet); extern int Hearer(dbref thing); extern void report(void); extern void panic(const char *message, int dump); extern void do_rwho(dbref player, dbref cause, int key); /* From help.c */ extern void spit_file(dbref player,const char *filename); extern int helpindex_read (HASHTAB *htab, char *filename); extern void helpindex_load (dbref player); extern void helpindex_init (void); /* From log.c */ extern int start_log(const char *primary, const char *secondary); extern void end_log(); extern void log_text(char *text); extern void log_number(int num); extern void log_name(dbref target); extern void log_name_and_loc(dbref target); extern char *OBJTYP(dbref thing); extern void log_type_and_name(dbref thing); extern void log_type_and_num(dbref thing); /* From look.c */ extern void look_in(dbref player,dbref loc, int show_exits); /* From move.c */ extern void move_object (dbref thing, dbref dest); extern void move_via_generic (dbref thing, dbref dest, dbref cause, int hush); extern void move_via_exit (dbref thing, dbref dest, dbref cause, dbref exit, int hush); extern int move_via_teleport (dbref thing, dbref dest, dbref cause, int hush); extern void move_exit (dbref player, dbref exit, int divest, const char *failmsg, int hush); extern void do_enter_internal (dbref player, dbref thing, int quiet); /* From object.c */ extern dbref start_home(void); extern dbref default_home(void); extern int can_set_home (dbref player, dbref thing, dbref home); extern dbref new_home (dbref player); extern dbref clone_home (dbref player, dbref thing); extern void divest_object (dbref thing); extern dbref create_obj (dbref player, int objtype, char *name, int cost); extern void destroy_obj (dbref player, dbref obj); extern void empty_obj (dbref obj); /* From player.c */ extern void record_login (dbref player, int isgood, char *ldate, char *lhost); extern int check_pass(dbref player, const char *password); extern dbref connect_player(char *name, char *password, char *host); extern dbref create_player(char *name, char *password, dbref creator, int isrobot); extern int add_player_name (dbref player, char *name); extern int delete_player_name (dbref player, char *name); extern dbref lookup_player (dbref doer, char *name, int check_who); extern void load_player_names (void); extern void badname_add (char *bad_name); extern int badname_check (char *bad_name); extern void badname_list (dbref player, const char *prefix); /* From predicates.c */ extern char *tprintf(); extern dbref insert_first (dbref head, dbref thing); extern dbref remove_first (dbref head, dbref thing); extern dbref reverse_list(dbref list); extern int member(dbref thing,dbref list); extern int is_number (char *str); extern int could_doit(dbref player, dbref thing, int locknum); extern int can_see(dbref player,dbref thing,int can_see_loc); extern void add_quota(dbref who, int payment); extern int canpayfees(dbref player, dbref who, int pennies, int quota); extern void giveto(dbref who,int pennies); extern int payfor(dbref who,int cost); extern int ok_name(const char *name); extern int ok_player_name(const char *name); extern int ok_attr_name(const char *attr_name); extern int ok_password(const char *password); extern void handle_ears (dbref thing, int could_hear, int can_hear); extern dbref is_possess(dbref player, char *arg1); extern dbref where_is (dbref what); extern int nearby (dbref player, dbref thing); extern dbref next_exit(dbref player,dbref this, int exam_here); extern void did_it(dbref player,dbref thing,int what,const char *def,int owhat, const char *odef,int awhat, char *args[], int nargs); extern void pool_init(POOL *poolp, int poolsize); extern void pool_check(const char *tag); extern char *pool_alloc(POOL *poolp, const char *tag); extern void pool_free(POOL *poolp, char **buf); extern void list_bufstats(dbref player); extern void list_buftrace(dbref player); /* From set.c */ extern int parse_attrib(dbref player, char *str, dbref *thing, int *atr); extern int parse_attrib_wild(dbref player, char *str, dbref *thing, int get_locks); extern void edit_string (char *src, char **dst, char *from, char *to); extern dbref match_controlled(dbref player,const char *name); extern dbref match_affected(dbref player,const char *name); extern dbref match_examinable(dbref player,const char *name); /* From speech.c */ extern void notify_all(dbref loc, dbref player, const char *msg, const int forward); extern void notify_except(dbref loc, dbref player, dbref exception, const char *msg, const int forward); extern void notify_except2(dbref loc, dbref player, dbref exc1, dbref exc2, const char *msg, const int forward); extern int check_filter(dbref object, dbref player, int filter, const char *msg); extern char *add_prefix(dbref object, dbref player, int prefix, const char *msg, const char *dflt); /* From stringutil.c */ extern char *munge_space(char *string); extern char *trim_spaces(char *string); extern char *grabto (char **str, char targ); extern int string_compare(const char *s1,const char *s2); extern int string_prefix(const char *string,const char *prefix); extern const char *string_match(const char *src,const char *sub); extern char *dollar_to_space(const char *dollars); extern char *replace_string(const char *old, const char *new,const char *string); extern char *replace_string_inplace(const char *old, const char *new, char *string); extern char *skip_space(const char *s); extern char *seek_char(const char *s, char c); extern int prefix_match(const char *s1, const char *s2); extern int minmatch (char *str, char *target, int min); extern char* strsave(const char *s); extern int safe_copy_str(char *src, char *buff, char **bufp, int max); extern int safe_copy_chr(char src, char *buff, char **bufp, int max); extern int matches_exit_from_list (char *str, char *pattern); /* From boolexp.c */ extern int eval_boolexp(dbref player, dbref thing, struct boolexp *b); struct boolexp *parse_boolexp(dbref player,const char *buf); int eval_boolexp_atr(dbref player, dbref thing, char *key); /* From unparse.c */ extern char *unparse_boolexp(dbref player,struct boolexp *b); extern char *unparse_boolexp_quiet(dbref player,struct boolexp *b); extern char *unparse_boolexp_decompile(dbref player,struct boolexp *b); extern char *unparse_boolexp_function(dbref player,struct boolexp *b); /* From walkdb.c */ extern int chown_all (dbref from_player, dbref to_player); extern void olist_init (void); extern void olist_add (dbref item); extern dbref olist_first (void); extern dbref olist_next (void); /* From wild.c */ extern int wild(char *tstr, char *dstr, char *args[], int nargs); extern int wild_match(char *tstr, char *dstr, char *args[], int nargs); extern int quick_wild(char *s, char *d); /* From match.c */ dbref pref_match(dbref player,dbref list,const char *string); /* From compress.c */ const char *uncompress(const char *s); extern const char *compress(); char *uncompress_str(char *dest, const char *s); /* from db.c */ extern int Commer(dbref thing); void s_Pass(dbref thing, const char *s); void s_Pennies(dbref thing, int p); void s_Flags(dbref thing, FLAG f); void s_Owner(dbref thing, dbref new); void s_Name(dbref thing, const char *s); void s_Exits(dbref thing, dbref new); void s_Next(dbref thing, dbref new); void s_Location(dbref thing, dbref new); void s_Contents(dbref thing, dbref new); void s_Zone(dbref thing, dbref new); void s_Link(dbref thing, dbref new); void s_Parent(dbref thing, dbref new); #define s_Home(x,h) s_Link(x,h) #define s_Dropto(x,h) s_Location(x,h) char *Name(dbref thing); int Pennies(dbref thing); FLAG Flags(dbref thing); dbref Owner(dbref thing); dbref Exits(dbref thing); dbref Next(dbref thing); dbref Location(dbref thing); dbref Contents(dbref thing); dbref Zone(dbref thing); dbref Link(dbref thing); dbref Parent(dbref thing); #define Home(x) Link(x) #define Dropto(x) Location(x) extern void clone_object(dbref a, dbref b); extern void init_min_db(void); extern void atr_push(void); extern void atr_pop(void); extern int atr_head(dbref thing, char **attrp); extern int atr_next(char **attrp); extern int init_gdbm_db(char *gdbmfile); extern void atr_cpy (dbref dest, dbref source); extern void atr_chown (dbref obj); extern void atr_clr (dbref thing, int atr); extern void atr_add_raw (dbref thing, int atr, char *buff); extern void atr_add (dbref thing, int atr, char *buff, dbref owner, int flags); extern void atr_set_owner(dbref thing, int atr, dbref owner); extern void atr_set_flags(dbref thing, int atr, int flags); extern char *atr_get_raw(dbref thing, int atr); extern char *atr_get(dbref thing, int atr, dbref *owner, int *flags); extern char *atr_pget(dbref thing, int atr, dbref *owner, int *flags); extern char *atr_get_str(char *buff, dbref thing, int atr, dbref *owner, int *flags); extern char *atr_pget_str(char *buff, dbref thing, int atr, dbref *owner, int *flags); extern int atr_get_info(dbref thing, int atr, dbref *owner, int *flags); extern int atr_pget_info(dbref thing, int atr, dbref *owner, int *flags); extern void atr_free (dbref thing); extern VATTR *define_vattr (char *aname, int anum, int aflags); extern VATTR *alloc_vattr (char *aname, int aflags); extern void free_vattr (int anum); #ifdef notdef /* From cque.c */ extern void parse_que (); extern int halt_que (); extern void wait_que (); /* From create.c */ extern int can_set_home (); /* From destroy.c */ extern dbref free_get(); extern void destroy_object (); /* From eval.c */ extern char *parse_to(); extern char *parse_arglist (); extern char *exec(); /* From game.c */ extern void notify(); extern void notify_check(); extern int Hearer(); extern void report(); extern void panic(); extern int list_check(dbref thing, dbref player, char type, char *str, int check_parents); extern int atr_match(dbref thing, dbref player, char type, char *str, int check_parents); extern void do_rwho(); /* From help.c */ extern void spit_file(); extern int helpindex_read (); extern void helpindex_load (); extern void helpindex_init (); /* From log.c */ extern int start_log(); extern void end_log(); extern void log_text(); extern void log_name(); extern void log_name_and_loc(); /* From look.c */ extern void look_room(); extern void do_look_around(); /* From move.c */ extern void safe_tel(); extern void do_move_internal(); extern void enter_room(); /* From player.c */ extern void record_login(); extern int check_pass(); extern dbref connect_player(); extern dbref create_player(); /* From player_list.c */ extern dbref lookup_player(); extern void delete_player(); extern void clear_players(); void add_player(); /* From predicates.c */ extern dbref where_is (); extern int nearby (); extern int could_doit(); extern void did_it(); extern int is_number (); extern int can_see(); extern int payfor(); extern void giveto(); extern int ok_name(); extern int ok_attr_name(); extern int ok_password(); extern int ok_player_name(); extern char *tprintf(); extern void pronoun_substitute(); extern int canpayfees(); extern dbref is_possess(); extern dbref next_exit(); extern void pool_init(); extern char *pool_alloc(); extern void pool_free(); extern char *pool_stats(); extern void pool_trace(); extern void list_bufstats(); extern void list_buftrace(); /* From set.c */ extern int parse_attrib(); extern dbref match_controlled(); extern dbref match_affected(); extern dbref match_examinable(); /* From speech.c */ extern void notify_all(); extern void notify_except(); extern void notify_except2(); /* From stringutil.c */ extern char *munge_space(); extern char *grabto(); extern int string_compare(); extern int string_prefix(); extern const char *string_match(); extern char *dollar_to_space(); extern char *replace_string(); extern char *replace_string_inplace(); extern char *skip_space(); extern char *seek_char(); extern int prefix_match(); extern int minmatch (); extern char* strsave(); extern int safe_copy_str(); extern int safe_copy_chr(); /* From utils.c */ extern int member(); extern dbref remove_first(); extern dbref reverse(); extern dbref find_entrance(); /* From boolexp.c */ extern int eval_boolexp(); struct boolexp *parse_boolexp(); int eval_boolexp_atr(); /* From unparse.c */ extern char *unparse_boolexp(); extern char *unparse_boolexp_quiet(); extern char *unparse_boolexp_decompile(); extern char *unparse_boolexp_function(); /* From walkdb.c */ extern int chown_all (); extern void olist_init (); extern void olist_add (); extern dbref olist_first (); extern dbref olist_next (); /* From wild.c */ extern int wild(); extern int wild_match(); extern int quick_wild(); /* From match.c */ extern dbref pref_match(); /* From compress.c */ extern const char *uncompress(); extern const char *compress(); extern void init_compress(); extern char *uncompress_str(); /* from db.c */ extern int Commer(); void s_Pass(); void s_Pennies(); void s_Flags(); void s_Owner(); void s_Name(); void s_Exits(); void s_Next(); void s_Location(); void s_Contents(); void s_Zone(); void s_Link(); void s_Parent(); char *Name(); int Pennies(); FLAG Flags(); dbref Owner(); dbref Exits(); dbref Next(); dbref Location(); dbref Contents(); dbref Zone(); dbref Link(); dbref Parent(); void clone_object(); void init_min_db(); int atr_head(); int atr_nexet(); extern int init_gdbm_db(); extern void atr_cpy (); extern void atr_chown (); extern void atr_clr (); extern void atr_add_raw (); extern void atr_add (); extern void atr_set_owner(); extern void atr_set_flags(); extern char *atr_get_raw(); extern char *atr_get(); extern char *atr_get_str(); extern int atr_get_info(); extern void atr_free (); extern VATTR *define_vattr (); extern VATTR *alloc_vattr (); extern void free_vattr (); #endif /* notdef */ /* Powers keys */ /* IMPORTANT -- Keep this table in sync with the powers table in command.c * The constants are used as array indexes into the powers table. */ #define POW_CHG_QUOTAS 0 /* May change quotas of controlled players */ #define POW_CHOWN_ANY 1 /* Ignore loc/holding restrictions on @chown */ #define POW_CHOWN_ME 2 /* May @chown things to me */ #define POW_CHOWN_OTHER 3 /* May @chown things to others */ #define POW_CHOWN_PLYR 4 /* May @chown players */ #define POW_CONTROL_ALL 5 /* I control everything */ #define POW_WIZARD_WHO 6 /* See extra WHO information */ #define POW_EXAM_ALL 7 /* I can examine everything */ #define POW_FIND_UNFIND 8 /* Can find unfindable players */ #define POW_FREE_MONEY 9 /* I have infinite money */ #define POW_FREE_QUOTA 10 /* I have infinite quota */ #define POW_GRAB_PLAYER 11 /* Can @tel players to me */ #define POW_IGNORE_RST 12 /* Ignore penalty flags in access checks */ #define POW_JOIN_PLAYER 13 /* Can @tel to loc of player */ #define POW_LONGFINGERS 14 /* Can get/whisper/etc from a distance */ #define POW_NO_BOOT 15 /* Player is immune from @booting */ #define POW_NO_TOAD 16 /* Player is immune from @toading/@destroying */ #define POW_RENAME_ME 17 /* Player can change name or password */ #define POW_SEE_AFLAGS 18 /* Player can see admin (hidden) flags */ #define POW_SEE_QUEUE 19 /* Player can see the entire queue */ #define POW_SEE_HIDDEN 20 /* Player can see hidden players on WHO list */ #define POW_SEE_IATTRS 21 /* Player can see invisible attributes */ #define POW_SEE_MFLAGS 22 /* Player can see game maintenance flags */ #define POW_SEE_AATTRS 23 /* Player can set administration attributes */ #define POW_SET_AFLAGS 24 /* Player can set admin flags */ #define POW_SET_MATTRS 25 /* Player can set maintenance attributes */ #define POW_SET_MFLAGS 26 /* Player can set game maintenance flags */ #define POW_STAT_ANY 27 /* Can @stat anyone */ #define POW_STEAL 28 /* Can give negative money */ #define POW_TEL_ANYWHR 29 /* Ignore control/JUMP_OK on @tel */ #define POW_TEL_UNRST 30 /* Ignore object type restrictions on @tel */ #define POW_UNKILLABLE 31 /* Can't be killed */ /* Command handler keys */ #define ATTRIB_ACCESS 1 /* Change access to attribute */ #define ATTRIB_RENAME 2 /* Rename attribute */ #define ATTRIB_DELETE 4 /* Delete attribute */ #define BOOT_QUIET 1 /* Inhibit boot message to victim */ #define BOOT_PORT 2 /* Boot by port number */ #define CHOWN_ONE 1 /* item = new_owner */ #define CHOWN_ALL 2 /* old_owner = new_owner */ #define CLONE_LOCATION 0 /* Create cloned object in my location */ #define CLONE_INHERIT 1 /* Keep INHERIT bit if set */ #define CLONE_PRESERVE 2 /* Preserve the owner of the object */ #define CLONE_INVENTORY 4 /* Create cloned object in my inventory */ #define CLONE_SET_COST 8 /* ARG2 is cost of cloned object */ #define CLONE_SET_LOC 16 /* ARG2 is location of cloned object */ #define CLONE_SET_NAME 32 /* ARG2 is alternate name of cloned object */ #define CLONE_PARENT 64 /* Set parent on obj instd of cloning attrs */ #define CRE_INVENTORY 0 /* Create object in my inventory */ #define CRE_LOCATION 1 /* Create object in my location */ #define CRE_SET_LOC 2 /* ARG2 is location of new object */ #define DBCK_DEFAULT 1 /* Get default tests too */ #define DBCK_REPORT 2 /* Report info to invoker */ #define DBCK_FULL 4 /* Do all tests */ #define DBCK_FLOATING 8 /* Look for floating rooms */ #define DBCK_PURGE 16 /* Purge the db of refs to going objects */ #define DBCK_LINKS 32 /* Validate exit and object chains */ #define DBCK_WEALTH 64 /* Validate object value/wealth */ #define DBCK_OWNER 128 /* Do more extensive owner checking */ #define DBCK_OWN_EXIT 256 /* Check exit owner owns src or dest */ #define DBCK_WIZARD 512 /* Check for wizards/wiz objects */ #define DBCK_TYPES 1024 /* Check for valid & appropriate types */ #define DBCK_SPARE 2048 /* Make sure spare header fields are NOTHING */ #define DBCK_HOMES 4096 /* Make sure homes and droptos are valid */ #define DEST_ONE 1 /* object */ #define DEST_ALL 2 /* owner */ #define DEST_OVERRIDE 4 /* override Safe() */ #define DIG_TELEPORT 1 /* teleport to room after @digging */ #define DOING_MESSAGE 0 /* Set my DOING message */ #define DOING_HEADER 1 /* Set the DOING header */ #define DOING_POLL 2 /* List DOING header */ #define DROP_QUIET 1 /* Don't do odrop/adrop if control */ #define DUMP_STRUCT 1 /* Dump flat structure file */ #define DUMP_TEXT 2 /* Dump text (gdbm) file */ #define EXAM_DEFAULT 0 /* Default */ #define EXAM_BRIEF 1 /* Nonowner sees just owner */ #define EXAM_LONG 2 /* Nonowner sees public attrs too */ #define EXAM_DEBUG 4 /* Display more info for finding db problems */ #define EXAM_PARENT 8 /* Get attr from parent when exam obj/attr */ #define FIXDB_OWNER 1 /* Fix OWNER field */ #define FIXDB_LOC 2 /* Fix LOCATION field */ #define FIXDB_CON 4 /* Fix CONTENTS field */ #define FIXDB_EXITS 8 /* Fix EXITS field */ #define FIXDB_NEXT 16 /* Fix NEXT field */ #define FIXDB_PENNIES 32 /* Fix PENNIES field */ #define FIXDB_ZONE 64 /* Fix ZONE field */ #define FIXDB_LINK 128 /* Fix LINK field */ #define FIXDB_PARENT 256 /* Fix PARENT field */ #define FIXDB_DEL_PN 512 /* Remove player name from player name index */ #define FIXDB_ADD_PN 1024 /* Add player name to player name index */ #define FIXDB_NAME 2048 /* Set NAME attribute */ #define FRC_PREFIX 0 /* #num command */ #define FRC_COMMAND 1 /* what=command */ #define GET_QUIET 1 /* Don't do osucc/asucc if control */ #define GLOB_ENABLE 1 /* key to enable */ #define GLOB_DISABLE 2 /* key to disable */ #define GLOB_LIST 3 /* key to list */ #define HALT_ALL 1 /* halt everything */ #define HELP_HELP 1 /* get data from help file */ #define HELP_NEWS 2 /* get data from news file */ #define HELP_WIZHELP 3 /* get data from wizard help file */ #define KILL_KILL 1 /* gives victim insurance */ #define KILL_SLAY 2 /* no insurance */ #define LOOK_LOOK 1 /* list desc (and succ/fail if room) */ #define LOOK_EXAM 2 /* full listing of object */ #define LOOK_DEXAM 3 /* debug listing of object */ #define LOOK_INVENTORY 4 /* list inventory of object */ #define LOOK_SCORE 5 /* list score (# coins) */ #define MARK_SET 0 /* Set mark bits */ #define MARK_CLEAR 1 /* Clear mark bits */ #define MOTD_ALL 0 /* login message for all */ #define MOTD_WIZ 1 /* login message for wizards */ #define MOTD_DOWN 2 /* login message when logins disabled */ #define MOTD_FULL 4 /* login message when too many players on */ #define MOTD_LIST 8 /* Display current login messages */ #define MOVE_QUIET 1 /* Dont do osucc/ofail/asucc/afail if ctrl */ #define NFY_NFY 0 /* Notify first waiting command */ #define NFY_NFYALL 1 /* Notify all waiting commands */ #define NFY_DRAIN 2 /* Delete waiting commands */ #define OPEN_LOCATION 0 /* Open exit in my location */ #define OPEN_INVENTORY 1 /* Open exit in me */ #define PASS_ANY 1 /* name=newpass */ #define PASS_MINE 2 /* oldpass=newpass */ #define PCRE_PLAYER 1 /* create new player */ #define PCRE_ROBOT 2 /* create robot player */ #define PEMIT_PEMIT 1 /* emit to named player */ #define PEMIT_OEMIT 2 /* emit to all in current room except named */ #define PEMIT_WHISPER 3 /* whisper to player in current room */ #define PEMIT_FSAY 4 /* force controlled obj to say */ #define PEMIT_FEMIT 5 /* force controlled obj to emit */ #define PEMIT_FPOSE 6 /* force controlled obj to pose */ #define PEMIT_FPOSE_NS 7 /* force controlled obj to pose w/o space */ #define PEMIT_CONTENTS 8 /* Send to contents (additive) */ #define PS_BRIEF 0 /* Short PS report */ #define PS_LONG 1 /* Long PS report */ #define PS_SUMM 2 /* Queue counts only */ #define PS_ALL 4 /* List entire queue */ #define QUEUE_KICK 1 /* Process commands from queue */ #define QUEUE_WARP 2 /* Advance or set back wait queue clock */ #define QUOTA_SET 1 /* Set a quota */ #define QUOTA_FIX 2 /* Repair a quota */ #define QUOTA_TOT 4 /* Operate on total quota */ #define QUOTA_REM 8 /* Operate on remaining quota */ #define QUOTA_ALL 16 /* Operate on all players */ #define RWHO_START 1 /* Start transmitting to remote RWHO srvr */ #define RWHO_STOP 2 /* Close connection to remote RWHO srvr */ #define SAY_SAY 1 /* say in current room */ #define SAY_NOSPACE 1 /* OR with xx_EMIT to get nospace form */ #define SAY_POSE 2 /* pose in current room */ #define SAY_POSE_NOSPC 3 /* pose w/o space in current room */ #define SAY_PREFIX 4 /* first char indicates foratting */ #define SAY_EMIT 5 /* emit in current room */ #define SAY_SHOUT 8 /* shout to all logged-in players */ #define SAY_WALLPOSE 9 /* Pose to all logged-in players */ #define SAY_WALLEMIT 10 /* Emit to all logged-in players */ #define SAY_WIZSHOUT 12 /* shout to all logged-in wizards */ #define SAY_WIZPOSE 13 /* Pose to all logged-in wizards */ #define SAY_WIZEMIT 14 /* Emit to all logged-in wizards */ #define SAY_GRIPE 16 /* Complain to management */ #define SAY_NOTE 17 /* Comment to log for wizards */ #define SAY_NOTAG 32 /* Don't put Broadcast: in front (additive) */ #define SAY_HERE 64 /* Output to current location */ #define SAY_ROOM 128 /* Output to containing room */ #define SRCH_SEARCH 1 /* Do a normal search */ #define SRCH_MARK 2 /* Set mark bit for matches */ #define SRCH_UNMARK 3 /* Clear mark bit for matches */ #define STAT_PLAYER 0 /* Display stats for one player or tot objs */ #define STAT_ALL 1 /* Display global stats */ #define STAT_ME 2 /* Display stats for me */ #define SWITCH_DEFAULT 0 /* Use the configured default for switch */ #define SWITCH_ANY 1 /* Execute all cases that match */ #define SWITCH_ONE 2 /* Execute only first case that matches */ #define SWEEP_ME 1 /* Check my inventory */ #define SWEEP_HERE 2 /* Check my location */ #define SWEEP_COMMANDS 4 /* Check for $-commands */ #define SWEEP_LISTEN 8 /* Check for @listen-ers */ #define SWEEP_PLAYER 16 /* Check for players and puppets */ #define SWEEP_CONNECT 32 /* Search for connected players/puppets */ #define SWEEP_EXITS 64 /* Search the exits for audible flags */ #define TOAD_NO_CHOWN 1 /* Don't change ownership */ #define TWARP_QUEUE 1 /* Warp the wait and sem queues */ #define TWARP_DUMP 2 /* Warp the dump interval */ #define TWARP_CLEAN 4 /* Warp the cleaning interval */ #define TWARP_IDLE 8 /* Warp the idle check interval */ #define TWARP_RWHO 16 /* Warp the RWHO dump interval */ /* Hush codes for movement messages */ #define HUSH_ENTER 1 /* xENTER/xEFAIL */ #define HUSH_LEAVE 2 /* xLEAVE/xLFAIL */ #define HUSH_EXIT 4 /* xSUCC/xDROP/xFAIL from exits */ /* Evaluation directives */ #define EV_FMASK 0x0300 /* Mask for function type check */ #define EV_FIGNORE 0x0000 /* Don't treat text before () as func name */ #define EV_FMAND 0x0100 /* Text before () must be a function name */ #define EV_FCHECK 0x0200 /* Check text before () for function */ #define EV_STRIP 0x0400 /* Strip one level of brackets */ #define EV_EVAL 0x0800 /* Evaluate results before returning */ #define EV_STRIP_TS 0x1000 /* Strip trailing spaces */ #define EV_STRIP_LS 0x2000 /* Strip leading spaces */ /* Buffer reuse directives */ #define RU_ARG1_COPY 0x0000 /* Callee makes its own copy of arg1 */ #define RU_ARG1_TAKE 0x0100 /* Callee uses and disposes of arg1 lbuf */ #define RU_ARG1_TMPL 0x0200 /* Callee uses but does not dispose of arg1 */ #define RU_ARG2_COPY 0x0000 /* Callee makes its own copy of arg1 */ #define RU_ARG2_TAKE 0x0400 /* Callee uses and disposes of arg2 lbuf */ #define RU_ARG2_TMPL 0x0800 /* Callee uses but does not dispose of arg2 */ #define STARTLOG(key,p,s) \ if ((((key) & mudconf.log_options) != 0) && start_log(p, s)) { #define ENDLOG \ end_log(); } #define LOG_SIMPLE(key,p,s,m) \ STARTLOG(key,p,s) \ log_text(m); \ ENDLOG #define test_top() ((mudstate.qfirst != NULL) ? 1 : 0) #define controls(p,x) Controls(p,x) #ifndef STANDALONE #define alloc_lbuf(s) pool_alloc(&mudstate.lbuf_pool,s) #define free_lbuf(b) pool_free(&mudstate.lbuf_pool,((char **)&(b))) #define alloc_mbuf(s) pool_alloc(&mudstate.mbuf_pool,s) #define free_mbuf(b) pool_free(&mudstate.mbuf_pool,((char **)&(b))) #define alloc_sbuf(s) pool_alloc(&mudstate.sbuf_pool,s) #define free_sbuf(b) pool_free(&mudstate.sbuf_pool,((char **)&(b))) #define alloc_bool(s) (struct boolexp *)pool_alloc(&mudstate.bool_pool,s) #define free_bool(b) pool_free(&mudstate.bool_pool,((char **)&(b))) #define alloc_qentry(s) (BQUE *)pool_alloc(&mudstate.qentry_pool,s) #define free_qentry(b) pool_free(&mudstate.qentry_pool,((char **)&(b))) #else #define alloc_lbuf(s) (char *)malloc(LBUF_SIZE) #define free_lbuf(b) if (b) free(b) #define alloc_mbuf(s) (char *)malloc(MBUF_SIZE) #define free_mbuf(b) if (b) free(b) #define alloc_sbuf(s) (char *)malloc(SBUF_SIZE) #define free_sbuf(b) if (b) free(b) #define alloc_bool(s) (struct boolexp *)malloc(sizeof(struct boolexp)) #define free_bool(b) if (b) free(b) #define alloc_qentry(s) (BQUE *)malloc(sizeof(BQUE)); #define free_qentry(b) if (b) free(b) #endif #define safe_str(s,b,p) safe_copy_str(s,b,p,(LBUF_SIZE-1)) #define safe_chr(c,b,p) safe_copy_chr(c,b,p,(LBUF_SIZE-1)) #define safe_sb_str(s,b,p) safe_copy_str(s,b,p,(SBUF_SIZE-1)) #define safe_sb_chr(c,b,p) safe_copy_chr(c,b,p,(SBUF_SIZE-1)) #define safe_mb_str(s,b,p) safe_copy_str(s,b,p,(MBUF_SIZE-1)) #define safe_mb_chr(c,b,p) safe_copy_chr(c,b,p,(MBUF_SIZE-1)) #endif /* __EXTERNS_H */