/* $Header: /belch_a/users/rearl/tinymuck/include/RCS/externs.h,v 1.12 90/09/18 08:06:03 rearl Exp $
 * 
 * $Log:	externs.h,v $
 * Revision 1.12  90/09/18  08:06:03  rearl
 * Added hash tables for players and primitives.
 * 
 * Revision 1.11  90/09/13  06:33:47  rearl
 * do_dump() and do_toad() prototypes changed.
 * 
 * Revision 1.10  90/09/10  02:24:17  rearl
 * Changed NL line termination to CR/LF pairs.
 * 
 * Revision 1.9  90/09/01  06:03:56  rearl
 * Put do_drop() back like it was.
 * 
 * Revision 1.8  90/08/27  14:06:53  rearl
 * Added support for environments: @trace, mods to drop and @dig commands.
 * 
 * Revision 1.7  90/08/15  03:11:00  rearl
 * Messed around with pronoun_substitute, just like in stringutil.c.
 * 
 * Revision 1.6  90/08/06  02:47:24  rearl
 * Put can_link() back, added restricted() from predicates.c.
 * 
 * Revision 1.5  90/07/30  00:10:47  rearl
 * Added @owned command.
 * 
 * Revision 1.4  90/07/29  17:18:22  rearl
 * Fixed the functions containing the = bug.
 * 
 * Revision 1.3  90/07/20  11:43:06  casie
 * Added new function declarations for log.c
 * 
 * Revision 1.2  90/07/19  23:14:18  casie
 * Removed log comments from top.
 * 
 */
#include "copyright.h"

#include "db.h"

/* Prototypes for externs not defined elsewhere */

extern char match_args[];

/* from db.c */
extern struct plist * new_prop();
extern void free_prop(struct plist *);
extern int number(const char *);
extern void putproperties(FILE *, struct plist *);
extern void putprop(FILE *, struct plist *);
extern void free_line(struct line *);
extern void db_free_object(dbref);
extern void db_clear_object(dbref);
extern void macrodump(struct macrotable *, FILE *);
extern void macroload();

/* From create.c */
extern void do_open(dbref, const char *, const char *);
extern void do_link(dbref, const char *, const char *);
extern void do_dig(dbref, const char *, const char *);
extern void do_create(dbref, char *, int);
extern void do_prog(dbref, const char *);
extern int unset_source(dbref, dbref, dbref);

/* from edit.c */
extern struct macrotable * new_macro(const char *, const char *, dbref);
extern void match_and_list(dbref, const char *, char *);
extern struct line * read_program(dbref);

/* From game.c */
extern void do_dump(dbref, const char *);
extern void do_shutdown(dbref);
extern void process_command(dbref, const char *, dbref, int);
extern dbref global_cause;
extern dbref global_trigger;

/* From hashtab.c */
extern hash_data * find_hash(const char *, hash_tab *, unsigned);
extern hash_entry * add_hash(const char *, hash_data, hash_tab *, unsigned);
extern int free_hash(const char *, hash_tab *, unsigned);
extern void kill_hash(hash_tab *, unsigned);

/* From help.c */
extern void spit_file(dbref, const char *);
extern void do_help(dbref);
extern void do_news(dbref);

/* From look.c */
extern void look_room(dbref, dbref);
extern void do_look_around(dbref);
extern void do_look_at(dbref, const char *);
extern void do_examine(dbref, const char *);
extern void do_inventory(dbref);
extern void do_find(dbref, const char *, const char *);
extern void do_owned(dbref, const char *, const char *);
extern void do_trace(dbref, const char *, int);
extern void exec_or_notify(dbref, dbref, const char *);

/* From move.c */
extern void moveto(dbref, dbref);
extern void enter_room(dbref, dbref, dbref);
extern void send_home(dbref);
extern int parent_loop_check(dbref, dbref);
extern int can_move(dbref, const char *);
extern void do_move(dbref, const char *);
extern void do_get(dbref, const char *);
extern void do_drop(dbref, const char *);
#ifdef RECYCLE
extern void do_recycle(dbref, const char *);
#endif

/* From player.c */
extern dbref lookup_player(const char *);
extern void do_password(dbref, const char *, const char *);
extern void add_player(dbref);
extern void delete_player(dbref);

/* From predicates.c */
extern int can_link_to(dbref, object_flag_type, dbref);
extern int can_link(dbref, dbref);
extern int could_doit(dbref, dbref);
extern int can_doit(dbref, dbref, const char *);
extern int can_see(dbref, dbref, int);
extern int controls(dbref, dbref);
extern int restricted(dbref, dbref, object_flag_type);
extern int payfor(dbref, int);
extern void do_switch(dbref, char *, char *, dbref);

/* From rob.c */
extern void do_kill(dbref, const char *, int);
extern void do_give(dbref, const char *, int);
/* extern void do_rob(dbref, const char *); */

/* From set.c */
extern void do_name(dbref, const char *, char *);
extern void do_lock(dbref, const char *, const char *);
extern void do_unlock(dbref, const char *);
extern void do_unlink(dbref, const char *);
extern void do_chown(dbref, const char *, const char *);
extern void do_set(dbref, const char *, const char *);
extern void do_attr(dbref, const char *, const char *, const char *);
extern void do_field(dbref, const char *, const char *, dbref);

/* From speech.c */
extern void do_wall(dbref, const char *);
extern void do_gripe(dbref, const char *);
extern void do_say(dbref, const char *);
extern void do_page(dbref, const char *, const char *);
extern void notify_except(dbref, dbref, const char *);

/* From stringutil.c */
extern int string_compare(const char *, const char *);
extern int string_prefix(const char *, const char *);
extern const char * string_match(const char *, const char *);
extern const char * pronoun_substitute(dbref, char *, dbref);
extern char *alloc_string(const char *);
extern char *alloc_ec_string(const char *);

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

/* From wiz.c */
extern void do_teleport(dbref, const char *, const char *);
extern void do_force(dbref, const char *, char *);
extern void do_stats(dbref, const char *);
extern void do_toad(dbref, const char *, const char *);
extern void do_boot(dbref, const char *);
extern void do_pcreate(dbref, const char *, const char *);

/* From boolexp.c */
extern int eval_boolexp(dbref, struct boolexp *, dbref);
extern struct boolexp * parse_boolexp(dbref, const char *);
extern struct boolexp * copy_bool(struct boolexp *);

/* From unparse.c */
extern const char * unparse_object(dbref, dbref);
extern const char * unparse_boolexp(dbref, struct boolexp *);

/* from property.c */
extern void add_property(dbref, const char *, const char *);
extern void add_attr(dbref, const char *, const char *);
extern void remove_property(dbref, const char *);
extern int has_property(dbref, const char *, const char *);
extern int has_property_strict(dbref, const char *, const char *);

extern char * get_property_class(dbref, const char *);
extern char * get_attr(dbref, const char *);
extern int genderof(dbref);
extern struct plist * copy_prop(dbref);
extern struct plist * copy_attr(dbref);

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

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

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

/* From interp.c */
extern int interp_loop(dbref, dbref, struct frame *);
extern int interp(dbref, dbref, dbref);

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

/* from speech.c */
extern void grow_ears(dbref);
extern void lose_ears(dbref);

/* from fifoq.c */
extern void trigobj(dbref, const char *, dbref);
extern void queue_command(dbref, const char *, dbref);
extern const char * trash_braces(const char *);
extern char *wptr[10];
extern char *awptr[10];
/* extern char *check_func(const char *arg); */

/* from func.c */
extern char * check_arg(char *, dbref, dbref);
extern void exec(char **, char *, dbref, dbref, int);

/* from flags.c */
extern object_flag_type filter_type(object_flag_type);
extern object_flag_type lookup_flag(const char *);
extern const char * unparse_flag(object_flag_type);
extern const char * unparse_flag_short(object_flag_type);

/* from wait_cmd.c */
extern void do_halt(dbref, const char *);
extern void halt_long(dbref);

/* from case.c */
extern const char *uppercase;
extern const char *lowercase;