dmuck0.15-beta/docs/muf/
dmuck0.15-beta/game/
dmuck0.15-beta/game/logs/
dmuck0.15-beta/game/muf/
dmuck0.15-beta/game/muf/text/
#ifndef EXTERNS_H
#define EXTERNS_H

#include <time.h>

#include "copyright.h"

#include "db.h"

/* Prototypes for externs not defined elsewhere */

extern char match_args[];

/* from db.c */
extern void db_chown(dbref, dbref);
extern void add_compost(dbref);
extern void add_ownerlist(dbref);
extern void remove_ownerlist(dbref);
extern int number(char *s);
extern void free_line(line *l);
extern void db_free_object(dbref i);
extern void db_clear_object(dbref i);
extern void macrodump(macrotable *node, FILE *f);
extern void macroload();
extern int check_password(char *plaintext, dbref player);
extern char *make_password(char *plaintext);
extern void add_backlocks_parse(dbref, boolexp *);
extern void remove_backlocks_parse(dbref, boolexp *);
void add_backlinks(dbref);
void remove_backlinks(dbref);
int db_freeze_object(dbref);
object *dbfetch(dbref);
void dbdirty(dbref);
void dbsync(void);
void fix_props_on_garbage();

/* From create.c */
extern void do_open(__DO_PROTO);
extern void do_link(__DO_PROTO);
extern void do_dig(__DO_PROTO);
extern void do_create(__DO_PROTO);
extern void do_program(__DO_PROTO);
extern void do_mlist(__DO_PROTO);
extern void do_edit(__DO_PROTO);
extern void do_action(__DO_PROTO);
extern void do_attach(__DO_PROTO);
line *read_program(dbref i);

/* from edit.c */
macrotable *new_macro(char *name, char *definition, dbref player);
extern void match_and_list(dbref player, char *name, char *linespec);

/* From game.c */
extern void do_dump(__DO_PROTO);
extern void do_shutdown(__DO_PROTO);

/* From hashtab.c */
extern hash_data *find_hash(register char *s, hash_tab *table, unsigned size);
extern hash_entry *add_hash(char *name, hash_data data, hash_tab *table,
  unsigned size);
extern int free_hash(char *name, hash_tab *table, unsigned size);
extern void kill_hash(hash_tab * table, unsigned size, int freeptrs);

/* From help.c */
extern void spit_file(dbref player, char *filename);
extern void do_outputinfo(dbref player, char *, char *, char *, char *);
extern void do_help(__DO_PROTO);
extern void do_news(__DO_PROTO);
extern void do_man(__DO_PROTO);

/* From look.c */
extern void look_room(dbref player, dbref room);
extern void do_look_around(dbref player);
extern void do_look_at(__DO_PROTO);
extern void do_properties(__DO_PROTO);
extern void do_contents(__DO_PROTO);
extern void do_exits(__DO_PROTO);
extern void do_examine(__DO_PROTO);
extern void do_at_examine(__DO_PROTO);
extern void do_inventory(__DO_PROTO);
extern void do_find(__DO_PROTO);
extern void do_owned(__DO_PROTO);
extern void do_score(__DO_PROTO);
extern void do_trace(__DO_PROTO);
extern void do_version(__DO_PROTO);
extern void exec_or_notify(dbref player, dbref thing, char *message);
extern char *flag_description(dbref thing);

/* From move.c */
extern void moveto(dbref what, dbref where);
extern void enter_room(dbref what, dbref where, dbref exit1);
extern void send_home(dbref thing);
extern int parent_loop_check(dbref source, dbref dest);
extern int can_move(dbref player, char *direction);
extern void do_earthquake(__DO_PROTO);
extern void do_move(__DO_PROTO);
extern void do_get(__DO_PROTO);
extern void do_drop(__DO_PROTO);
extern void do_recycle(__DO_PROTO);

/* From player.c */
extern dbref lookup_player(char *name);
extern void do_password(__DO_PROTO);
extern void add_player(dbref who);
extern void delete_player(dbref who);
extern void do_player_setuid(__DO_PROTO);
extern int awake_count(dbref player);

/* From predicates.c */
extern int can_link_to(dbref who, object_flag_type what_type, dbref where);
extern int can_link(dbref who, dbref what);
extern int could_doit(dbref player, dbref thing);
extern int can_doit(dbref player, dbref thing, char *default_fail_msg);
extern int can_see(dbref player, dbref thing, int can_see_location);
extern int controls(dbref who, dbref what);
extern int restricted(dbref player, dbref thing, object_flag_type flag);
extern int payfor(dbref who, int cost);

/* From rob.c */
extern void do_kill(__DO_PROTO);
extern void do_give(__DO_PROTO);
extern void do_rob(__DO_PROTO);

/* From set.c */
extern dbref match_controlled(dbref player, char *name);
extern void do_name(__DO_PROTO);
extern void do_describe(__DO_PROTO);
extern void do_fail(__DO_PROTO);
extern void do_success(__DO_PROTO);
extern void do_drop_message(__DO_PROTO);
extern void do_osuccess(__DO_PROTO);
extern void do_ofail(__DO_PROTO);
extern void do_odrop(__DO_PROTO);
extern void do_lock(__DO_PROTO);
extern void do_unlock(__DO_PROTO);
extern void do_unlink(__DO_PROTO);
extern void do_chown(__DO_PROTO);
extern void do_set(__DO_PROTO);
extern void do_perms(__DO_PROTO);

/* From speech.c */
extern void do_wall(__DO_PROTO);
extern void do_gripe(__DO_PROTO);
extern void do_say(__DO_PROTO);
extern void do_page(__DO_PROTO);
extern void do_pose(__DO_PROTO);
extern void do_whisper(__DO_PROTO);
extern int notify(dbref, dbref, char *);
extern void notify_except(dbref, dbref, dbref, char *);
extern int notify_listener(dbref, dbref, dbref, char *);
extern void notify_wizards(char *);
extern void listener_sweep(dbref, dbref, dbref, char *);

/* From stringutil.c */
extern int string_compare(char *, char *);
extern int string_prefix(char *, char *);
extern char *string_match(char *, char *);
extern char *pronoun_substitute(dbref, char *);
extern char *dup_string(char *);
#define strdup dup_string
extern void lowerstring(char *);
extern void upperstring(char *);
extern char *splitstring(char *, char);
extern char *muf_write_reformat(char *msg);
char *dup_it(char *string);
#ifdef STDC_HEADERS
char *tprintf(char *format, ...);
#else
char *tprintf();
#endif 

/* From utils.c */
extern int member(dbref, dbref);
extern dbref remove_first(dbref, dbref);

/* From wiz.c */
extern void do_cache(__DO_PROTO);
extern void do_teleport(__DO_PROTO);
extern void do_force(__DO_PROTO);
extern void do_stats(__DO_PROTO);
extern void init_stat_time(void);
extern void do_toad(__DO_PROTO);
extern void do_trimdb(__DO_PROTO);
extern void do_boot(__DO_PROTO);
extern void do_pcreate(__DO_PROTO);
extern void do_newpassword(__DO_PROTO);
extern void do_backlinks(__DO_PROTO);
extern void do_backlocks(__DO_PROTO);
extern void do_editlocks(__DO_PROTO);
extern void do_login(__DO_PROTO);
extern void do_reset(__DO_PROTO);
extern void do_db_sync(__DO_PROTO);
extern void do_db_flush(__DO_PROTO);

/* From boolexp.c */
extern int eval_boolexp(dbref, boolexp *, dbref);
extern boolexp *parse_boolexp(dbref, char *);
extern boolexp *copy_bool(boolexp *);
extern void bool_dgsr(boolexp *, dbref, dbref);
extern void sanitize_look(boolexp *);

/* From unparse.c */
extern char *unparse_name(dbref);
extern char *unparse_flags(dbref);
extern char *unparse_owner(dbref);
extern char *unparse_object_do(dbref, dbref, int);
extern char *unparse_boolexp(dbref, boolexp *);
#define unparse_object(A,B) unparse_object_do(A,B,1)
#define unparse_object_full(A,B) unparse_object_do(A,B,0)

/* from property.c */
extern char parse_perms(char *);
extern char *unparse_perms(char); /* do not free value returned */
extern char access_rights(dbref, dbref, dbref);
extern int add_property(dbref, char *, char *, char, char);
extern void burn_proptree(propdir *);
extern int remove_property(dbref, char *, char);
extern int has_property(dbref, char *, char *, char);
extern propdir *find_property(dbref, char *, char);
extern int validate_property(dbref, char *, char *, char);
extern char *get_property_data(dbref, char *, char);
extern void copy_prop(dbref, dbref, char);
extern int genderof(dbref, char);
extern void notify_propdir(dbref, dbref, char *, char, char);
extern void change_perms(dbref, char *, char, char);
extern void next_property(char *, dbref, char *, char);
extern int has_next_property(dbref, char *, char, int);
extern void pdq_burn();
extern int is_propdir(dbref player, dbref object1, char *string, dbref program);
void freeze_properties(char *, dbref);
propdir *thaw_properties(char *, char);

/* From compress.c */
#ifdef COMPRESS
extern char *compress(const char *s);
extern char *uncompress(const char *s);
#endif /* COMPRESS */

/* From edit.c */
extern void interactive(dbref player, char *command);

/* From compile.c */
extern void do_uncompile(__DO_PROTO);
extern void do_compile(dbref in_player, dbref in_program);
extern void clear_primitives(void);
extern void init_primitives(void);

/* From interp.c */
extern void do_ps(__DO_PROTO);
extern void do_go(__DO_PROTO);
extern void do_pidkill(__DO_PROTO);
extern void prog_clean(frame *);
extern void bump_frames(char *, dbref, dbref);
extern frame *new_frame(dbref, dbref, dbref, dbref, char);
extern void add_frame(frame *);
extern void autostart_frames();
extern void run_frames();
extern int run_frame(frame *, int);
extern void free_frame(frame *);
extern frame *find_frame(int);
extern int find_a_frame(int frid);
extern long ilimit;

/* declared in log.c */
extern void log_error();
extern void log_gripe();
extern void log_muf();
extern void log_conc();
extern void log_other();

/* From clilib.c */
extern int rwhocli_setup();
extern int rwhocli_shutdown();
extern int rwhocli_pingalive();
extern int rwhocli_userlogout(char *uid);
extern void rwhocli_update();
extern char localnam[];

/* from dbreflist.c */
void dbreflist_dump(FILE *, dbref_list *);
dbref_list *dbreflist_add(dbref_list *, dbref);
dbref_list *dbreflist_shuffle(dbref_list *, dbref);
dbref_list *dbreflist_remove(dbref_list *, dbref);
dbref dbreflist_last(dbref_list *);
void dbreflist_burn(dbref_list *);
dbref_list *dbreflist_read(FILE *);
int dbreflist_find(dbref_list *, dbref);
void freeze_dbreflist(char *, dbref_list *);
dbref_list *thaw_dbreflist(char *);

/* from mush.c */
int nearby(dbref obj1, dbref obj2);
int do_act(dbref what, char *command, dbref player);
int getrandom(int x);
int check_mushact(dbref player, char *command);
extern char *parse_up(char **str, char delimit);
extern int trigobj(dbref who, char *what, dbref player);
dbref short_page(char *match);
 
/* from wild.c */
extern char *wptr[10];
extern int wild_match(char *s, char *d);
 
/* from eval.c */
extern void fval(char *buff, double result);
extern void init_func_hashtab();
char *exec(dbref cause, char *str, dbref player, int eflags);
char *replace_string(char *old, char *new, char *string);
char *atr_get(dbref thing, char *name);
char *seek_char(char *s, char c);
char *skip_space(char *s);
char *upcasestr(char *s);
int do_real_open(dbref player, char *direction, char *linkto, dbref pseudo);
int do_mush_create(char *arg1, char *arg2, dbref player);
int do_mush_dig(char *arg1, char *arg2, dbref player);
int safe_chr(char c, char *buf, char **bufp);
int local_wild(char *s, char *d, int p, int os);
int local_wild_match(char *s, char *d);
int GoodObject(dbref object1);
int is_number(char *str);
int Connected(dbref target);

/* from howard.c */
extern void do_fortune(__DO_PROTO);
extern void do_load(__DO_PROTO);
extern void dump_stats_on_close();
extern void do_xqueue (__DO_PROTO);
extern void check_xevents(frame *fr);

/* From smatch.c */
extern int  equalstr(char *s, char *t);

/* From strftime.c */
int format_time(char *buf, int max_len, char *fmt, struct tm * tmval);

/* from interface.c */
void warn_users(char *msg);
extern int maxplayer;

/* from flags.c */
extern FLAG *flag_lookup(char *name, dbref thing);
extern int strn_cmp(char *sub, char *string);
extern void do_list_flags(__DO_PROTO);

/* from mush_cmd.c */
extern void do_mset(__DO_PROTO);

/* from config.c */
extern void do_parameter_set(__DO_PROTO);
extern void do_prop_load(__DO_PROTO);

#endif /* EXTERNS_H */