1stMUD4.0/bin/
1stMUD4.0/doc/MPDocs/
1stMUD4.0/player/
1stMUD4.0/win32/
1stMUD4.0/win32/rom/
/**************************************************************************
*  Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer,        *
*  Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, and Katja Nyboe.   *
*                                                                         *
*  Merc Diku Mud improvements copyright (C) 1992, 1993 by Michael         *
*  Chastain, Michael Quan, and Mitchell Tse.                              *
*                                                                         *
*  In order to use any part of this Merc Diku Mud, you must comply with   *
*  both the original Diku license in 'license.doc' as well the Merc       *
*  license in 'license.txt'.  In particular, you may not remove either of *
*  these copyright notices.                                               *
*                                                                         *
*  Much time and thought has gone into this software and you are          *
*  benefiting.  We hope that you share your changes too.  What goes       *
*  around, comes around.                                                  *
***************************************************************************
*       ROM 2.4 is copyright 1993-1998 Russ Taylor                        *
*       ROM has been brought to you by the ROM consortium                 *
*           Russ Taylor (rtaylor@hypercube.org)                           *
*           Gabrielle Taylor (gtaylor@hypercube.org)                      *
*           Brian Moore (zump@rom.org)                                    *
*       By using this code, you have agreed to follow the terms of the    *
*       ROM license, in the file Rom24/doc/rom.license                    *
***************************************************************************
*       1stMUD ROM Derivative (c) 2001-2003 by Ryan Jennings              *
*            http://1stmud.dlmud.com/  <r-jenn@shaw.ca>                   *
***************************************************************************/
/*
 * Our function prototypes.
 * One big lump ... this is almost every function in 1stMUD.
 */

#if !defined(PROTOTYPE_H)
#define PROTOTYPE_H

#if !defined(__GNUC__)
#define __attribute__(x)		/* nothing */
#endif

#define PROTOTYPE(x,y) EXTERN x y
#define PROTOTYPEF(x,y,a,b) EXTERN x y __attribute__((format(printf, a, b)))

/* act_comm.c */
PROTOTYPE(void check_sex, (CHAR_DATA *));
PROTOTYPE(void add_follower, (CHAR_DATA *, CHAR_DATA *));
PROTOTYPE(void stop_follower, (CHAR_DATA *));
PROTOTYPE(void nuke_pets, (CHAR_DATA *));
PROTOTYPE(void die_follower, (CHAR_DATA *));
PROTOTYPE(bool is_same_group, (CHAR_DATA *, CHAR_DATA *));
PROTOTYPE(int colour_lookup, (const char *));
PROTOTYPE(int cslot_lookup, (const char *));
PROTOTYPE(const char *char_colour, (CHAR_DATA *, int));
PROTOTYPE(void default_colour, (CHAR_DATA *, int));
PROTOTYPE(bool check_cstring, (char *));
PROTOTYPE(char *random_colour, (void));
PROTOTYPE(char *random_background, (void));
PROTOTYPE(void show_greeting, (DESCRIPTOR_DATA *));
PROTOTYPE(bool process_ansi_output, (DESCRIPTOR_DATA *));
PROTOTYPE(const char *color_default, (CHAR_DATA *));

PROTOTYPE(const char *color_to_tilde, (const char *));
PROTOTYPE(const char *tilde_to_color, (const char *));
PROTOTYPE(unsigned int strlen_color, (const char *));
PROTOTYPE(const char *draw_line, (CHAR_DATA *, char *, int));
PROTOTYPE(const char *smash_colour, (const char *));
PROTOTYPE(const char *stringf, (CHAR_DATA *, int, int, const char *,
								const char *));
PROTOTYPE(bool is_ansi_printed_char, (char));

PROTOTYPE(void public_ch, (CHAR_DATA *, const char *, int));

/* act_enter.c */
PROTOTYPE(ROOM_INDEX_DATA * get_random_room, (CHAR_DATA *));

/* act_info.c */
PROTOTYPE(void set_title, (CHAR_DATA *, const char *));
PROTOTYPE(char *format_who, (CHAR_DATA *, CHAR_DATA *));

/* act_move.c */
PROTOTYPE(void move_char, (CHAR_DATA *, int, bool));

/* act_obj.c */
PROTOTYPE(bool can_loot, (CHAR_DATA *, OBJ_DATA *));
PROTOTYPE(void wear_obj, (CHAR_DATA *, OBJ_DATA *, bool));
PROTOTYPE(void get_obj, (CHAR_DATA *, OBJ_DATA *, OBJ_DATA *));
PROTOTYPE(void recursive_clone, (CHAR_DATA *, OBJ_DATA *, OBJ_DATA *));
PROTOTYPE(bool obj_check, (CHAR_DATA *, OBJ_DATA *));

/* act_wiz.c */
PROTOTYPEF(void new_wiznet, (CHAR_DATA *, OBJ_DATA *, flag_t,
							 flag_t, int, const char *, ...), 6, 7);

#if !defined(NO_COPYOVER)
PROTOTYPE(void copyover_recover, (void));
PROTOTYPE(void copyover, (void));
#endif

/* alias.c */
PROTOTYPE(void substitute_alias, (DESCRIPTOR_DATA *, char *));

/* ban.c */
PROTOTYPE(bool check_ban, (const char *, int));
PROTOTYPE(void ban_site, (CHAR_DATA *, const char *));

/* comm.c */
PROTOTYPE(void show_string, (DESCRIPTOR_DATA *, char *));
PROTOTYPE(void close_socket, (DESCRIPTOR_DATA *));
PROTOTYPE(void d_print, (DESCRIPTOR_DATA *, const char *, int));
PROTOTYPE(void d_println, (DESCRIPTOR_DATA *, const char *, int));
PROTOTYPEF(void d_printf, (DESCRIPTOR_DATA *, const char *, ...), 2, 3);
PROTOTYPEF(void d_printlnf, (DESCRIPTOR_DATA *, const char *, ...), 2, 3);
PROTOTYPE(void chprint, (CHAR_DATA *, const char *));
PROTOTYPE(void chprintln, (CHAR_DATA *, const char *));
PROTOTYPE(void sendpage, (CHAR_DATA *, const char *));
PROTOTYPE(void act_new, (const char *, CHAR_DATA *, const void *,
						 const void *, flag_t, position_t));
PROTOTYPE(void perform_act, (const char *, CHAR_DATA *, const void *,
							 const void *, flag_t, CHAR_DATA *));
PROTOTYPE(const char *perform_act_string,
		  (const char *, CHAR_DATA *, const void *, const void *, bool));

PROTOTYPEF(void chprintf, (CHAR_DATA *, const char *, ...), 2, 3);
PROTOTYPEF(void chprintlnf, (CHAR_DATA *, const char *, ...), 2, 3);
PROTOTYPEF(void bugf, (const char *, ...), 1, 2);
PROTOTYPE(void fix_sex, (CHAR_DATA *));
PROTOTYPEF(void logf, (const char *, ...), 1, 2);
PROTOTYPEF(void vinterpret, (CHAR_DATA *, const char *, ...), 2, 3);
PROTOTYPEF(int strswitch, (const char *, ...), 1, 2);

/* db.c */
PROTOTYPE(void reset_area, (AREA_DATA *));	/* OLC */
PROTOTYPE(void reset_room, (ROOM_INDEX_DATA *));	/* OLC */
PROTOTYPE(char *fwrite_flags, (flag_t));
PROTOTYPE(void boot_db, (void));
PROTOTYPE(void area_update, (void));
PROTOTYPE(CHAR_DATA * create_mobile, (MOB_INDEX_DATA *));
PROTOTYPE(void clone_mobile, (CHAR_DATA *, CHAR_DATA *));
PROTOTYPE(OBJ_DATA * create_object, (OBJ_INDEX_DATA *, int));
PROTOTYPE(void clone_object, (OBJ_DATA *, OBJ_DATA *));
PROTOTYPE(void clear_char, (CHAR_DATA *));
PROTOTYPE(const char *get_extra_descr, (const char *, EXTRA_DESCR_DATA *));
PROTOTYPE(MOB_INDEX_DATA * get_mob_index, (vnum_t));
PROTOTYPE(OBJ_INDEX_DATA * get_obj_index, (vnum_t));
PROTOTYPE(ROOM_INDEX_DATA * get_room_index, (vnum_t));
PROTOTYPE(PROG_CODE * get_prog_index, (vnum_t, prog_t));

PROTOTYPE(char fread_letter, (FILE *));
PROTOTYPE(int fread_number, (FILE *));
PROTOTYPE(flag_t fread_flag, (FILE *));
PROTOTYPE(const char *fread_string, (FILE *));
PROTOTYPE(const char *fread_line, (FILE *));
PROTOTYPE(const char *fread_file, (FILE *));
PROTOTYPE(void fread_to_eol, (FILE *));
PROTOTYPE(char *fread_word, (FILE *));

PROTOTYPE(char read_letter, (READ_DATA *));
PROTOTYPE(int read_number, (READ_DATA *));
PROTOTYPE(flag_t read_flag, (READ_DATA *));
PROTOTYPE(const char *read_string, (READ_DATA *));
PROTOTYPE(const char *read_line, (READ_DATA *));
PROTOTYPE(void read_to_eol, (READ_DATA *));
PROTOTYPE(char *read_word, (READ_DATA *));

PROTOTYPE(flag_t flag_convert, (char));
PROTOTYPE(const char *str_dup, (const char *));
PROTOTYPE(void _free_string, (const char *));
PROTOTYPE(int number_fuzzy, (int));
PROTOTYPE(int number_fuzzier, (int));
PROTOTYPE(int number_range, (int, int));
PROTOTYPE(int number_percent, (void));
PROTOTYPE(int number_door, (void));
PROTOTYPE(int number_bits, (int));
PROTOTYPE(long number_mm, (void));
PROTOTYPE(int dice, (int, int));
PROTOTYPE(int interpolate, (int, int, int));
PROTOTYPE(void smash_tilde, (const char *));
PROTOTYPE(int str_cmp, (const char *, const char *));
PROTOTYPE(int str_casecmp, (const char *, const char *));
PROTOTYPE(int str_ncmp, (const char *, const char *, size_t));
PROTOTYPE(int str_ncasecmp, (const char *, const char *, size_t));
PROTOTYPE(bool str_prefix, (const char *, const char *));
PROTOTYPE(bool str_infix, (const char *, const char *));
PROTOTYPE(bool str_suffix, (const char *, const char *));
PROTOTYPE(char *capitalize, (const char *));
PROTOTYPE(void append_file, (CHAR_DATA *, char *, const char *));
PROTOTYPE(void bug, (const char *));
PROTOTYPE(void log_string, (const char *));
PROTOTYPE(void tail_chain, (void));
PROTOTYPE(void new_reset, (ROOM_INDEX_DATA *, RESET_DATA *));

/* db2.c */
PROTOTYPE(void load_mobiles, (READ_DATA *));
PROTOTYPE(void load_objects, (READ_DATA *));
PROTOTYPE(FILE * file_open, (const char *, const char *));
PROTOTYPE(void file_close, (FILE *));
PROTOTYPE(void free_runbuf, (DESCRIPTOR_DATA *));
PROTOTYPEF(WRITE_DATA * open_write, (const char *,...), 1, 2);
PROTOTYPE(void close_write, (WRITE_DATA *));
PROTOTYPEF(READ_DATA * open_read, (const char *path,...), 1, 2);
PROTOTYPE(void close_read, (READ_DATA *));
PROTOTYPEF(WRITE_DATA * open_append, (const char *,...), 1, 2);
PROTOTYPE(void close_append, (WRITE_DATA *));

/* effect.c */
PROTOTYPE(void acid_effect, (void *, int, int, int));
PROTOTYPE(void cold_effect, (void *, int, int, int));
PROTOTYPE(void fire_effect, (void *, int, int, int));
PROTOTYPE(void poison_effect, (void *, int, int, int));
PROTOTYPE(void shock_effect, (void *, int, int, int));

/* fight.c */
PROTOTYPE(bool is_safe, (CHAR_DATA *, CHAR_DATA *));
PROTOTYPE(bool is_safe_spell, (CHAR_DATA *, CHAR_DATA *, bool));
PROTOTYPE(void violence_update, (void));
PROTOTYPE(void multi_hit, (CHAR_DATA *, CHAR_DATA *, int));
PROTOTYPE(bool damage, (CHAR_DATA *, CHAR_DATA *, int, int, int, bool));
PROTOTYPE(void update_pos, (CHAR_DATA *));
PROTOTYPE(void stop_fighting, (CHAR_DATA *, bool));
PROTOTYPE(void check_killer, (CHAR_DATA *, CHAR_DATA *));

/* handler.c */
PROTOTYPE(AFFECT_DATA * affect_find, (AFFECT_DATA *, int));
PROTOTYPE(void affect_check, (CHAR_DATA *, int, flag_t));
PROTOTYPE(int count_users, (OBJ_DATA *));
PROTOTYPE(void deduct_cost, (CHAR_DATA *, int));
PROTOTYPE(void affect_enchant, (OBJ_DATA *));
PROTOTYPE(int check_immune, (CHAR_DATA *, int));
PROTOTYPE(int material_lookup, (const char *));
PROTOTYPE(int weapon_lookup, (const char *));
PROTOTYPE(int weapon_typ, (const char *));
PROTOTYPE(const char *weapon_name, (int));
PROTOTYPE(const char *item_name, (int));
PROTOTYPE(int attack_lookup, (const char *));
PROTOTYPE(int wiznet_lookup, (const char *));
PROTOTYPE(int class_lookup, (const char *));
PROTOTYPE(bool is_clan, (CHAR_DATA *));
PROTOTYPE(bool is_same_clan, (CHAR_DATA *, CHAR_DATA *));
PROTOTYPE(bool is_old_mob, (CHAR_DATA *));
PROTOTYPE(int get_skill, (CHAR_DATA *, int));
PROTOTYPE(int get_weapon_sn, (CHAR_DATA *));
PROTOTYPE(int get_weapon_skill, (CHAR_DATA *, int));
PROTOTYPE(int get_age, (CHAR_DATA *));
PROTOTYPE(void reset_char, (CHAR_DATA *));
PROTOTYPE(int get_trust, (CHAR_DATA *));
PROTOTYPE(int get_curr_stat, (CHAR_DATA *, int));
PROTOTYPE(int get_max_train, (CHAR_DATA *, int));
PROTOTYPE(int can_carry_n, (CHAR_DATA *));
PROTOTYPE(int can_carry_w, (CHAR_DATA *));
PROTOTYPE(bool is_name, (const char *, const char *));
PROTOTYPE(bool is_exact_name, (const char *, const char *));
PROTOTYPE(void affect_to_char, (CHAR_DATA *, AFFECT_DATA *));
PROTOTYPE(void affect_to_obj, (OBJ_DATA *, AFFECT_DATA *));
PROTOTYPE(void affect_remove, (CHAR_DATA *, AFFECT_DATA *));
PROTOTYPE(void affect_remove_obj, (OBJ_DATA *, AFFECT_DATA *));
PROTOTYPE(void affect_strip, (CHAR_DATA *, int));
PROTOTYPE(bool is_affected, (CHAR_DATA *, int));
PROTOTYPE(void affect_join, (CHAR_DATA *, AFFECT_DATA *));
PROTOTYPE(void char_from_room, (CHAR_DATA *));
PROTOTYPE(void char_to_room, (CHAR_DATA *, ROOM_INDEX_DATA *));
PROTOTYPE(void obj_to_char, (OBJ_DATA *, CHAR_DATA *));
PROTOTYPE(void obj_from_char, (OBJ_DATA *));
PROTOTYPE(int apply_ac, (OBJ_DATA *, wloc_t, int));
PROTOTYPE(OBJ_DATA * get_eq_char, (CHAR_DATA *, wloc_t));
PROTOTYPE(void equip_char, (CHAR_DATA *, OBJ_DATA *, wloc_t));
PROTOTYPE(void unequip_char, (CHAR_DATA *, OBJ_DATA *));
PROTOTYPE(int count_obj_list, (OBJ_INDEX_DATA *, OBJ_DATA *));
PROTOTYPE(void obj_from_room, (OBJ_DATA *));
PROTOTYPE(void obj_to_room, (OBJ_DATA *, ROOM_INDEX_DATA *));
PROTOTYPE(void obj_to_obj, (OBJ_DATA *, OBJ_DATA *));
PROTOTYPE(void obj_from_obj, (OBJ_DATA *));
PROTOTYPE(void extract_obj, (OBJ_DATA *));
PROTOTYPE(void extract_char, (CHAR_DATA *, bool));
PROTOTYPE(CHAR_DATA * get_char_room,
		  (CHAR_DATA *, ROOM_INDEX_DATA *, const char *));
PROTOTYPE(CHAR_DATA * get_char_world, (CHAR_DATA *, const char *));
PROTOTYPE(OBJ_DATA * get_obj_type, (OBJ_INDEX_DATA *));
PROTOTYPE(OBJ_DATA * get_obj_list, (CHAR_DATA *, const char *, OBJ_DATA *));
PROTOTYPE(OBJ_DATA * get_obj_carry, (CHAR_DATA *, const char *, CHAR_DATA *));
PROTOTYPE(OBJ_DATA * get_obj_wear, (CHAR_DATA *, const char *, bool));
PROTOTYPE(OBJ_DATA * get_obj_here,
		  (CHAR_DATA *, ROOM_INDEX_DATA *, const char *));
PROTOTYPE(OBJ_DATA * get_obj_world, (CHAR_DATA *, const char *));
PROTOTYPE(OBJ_DATA * create_money, (int, int));
PROTOTYPE(int get_obj_number, (OBJ_DATA *));
PROTOTYPE(int get_obj_weight, (OBJ_DATA *));
PROTOTYPE(int get_true_weight, (OBJ_DATA *));
PROTOTYPE(bool room_is_dark, (ROOM_INDEX_DATA *));
PROTOTYPE(bool is_room_owner, (CHAR_DATA *, ROOM_INDEX_DATA *));
PROTOTYPE(bool room_is_private, (ROOM_INDEX_DATA *));
PROTOTYPE(bool can_see, (CHAR_DATA *, CHAR_DATA *));
PROTOTYPE(bool can_see_obj, (CHAR_DATA *, OBJ_DATA *));
PROTOTYPE(bool can_see_room, (CHAR_DATA *, ROOM_INDEX_DATA *));
PROTOTYPE(bool can_drop_obj, (CHAR_DATA *, OBJ_DATA *));
PROTOTYPE(bool is_friend, (CHAR_DATA *, CHAR_DATA *));
PROTOTYPE(bool is_full_name, (const char *, const char *));
PROTOTYPE(CHAR_DATA * get_char_id, (long));

/* interp.c */
PROTOTYPE(void interpret, (CHAR_DATA *, const char *));
PROTOTYPE(bool is_number, (const char *));
PROTOTYPE(unsigned int number_argument, (const char *, char *));
PROTOTYPE(unsigned int mult_argument, (const char *, char *));
PROTOTYPE(const char *one_argument, (const char *, char *));
PROTOTYPE(void load_disabled, (void));
PROTOTYPE(void save_disabled, (void));

/* magic.c */
PROTOTYPE(int find_spell, (CHAR_DATA *, const char *));
PROTOTYPE(int mana_cost, (CHAR_DATA *, int, int));
PROTOTYPE(int skill_lookup, (const char *));
PROTOTYPE(bool saves_spell, (int, CHAR_DATA *, int));
PROTOTYPE(void obj_cast_spell,
		  (int, int, CHAR_DATA *, CHAR_DATA *, OBJ_DATA *));
PROTOTYPE(bool check_dispel, (int, CHAR_DATA *, int));
PROTOTYPE(bool saves_dispel, (int, int, int));

/* multiclass.c */
PROTOTYPE(bool can_use_skpell, (CHAR_DATA *, int));
PROTOTYPE(bool has_spells, (CHAR_DATA *));
PROTOTYPE(bool is_class, (CHAR_DATA *, int));
PROTOTYPE(bool is_same_class, (CHAR_DATA *, CHAR_DATA *));
PROTOTYPE(int number_classes, (CHAR_DATA *));
PROTOTYPE(char *class_long, (CHAR_DATA *));
PROTOTYPE(char *class_who, (CHAR_DATA *));
PROTOTYPE(char *class_short, (CHAR_DATA *));
PROTOTYPE(char *class_numbers, (CHAR_DATA *, bool));
PROTOTYPE(int skill_level, (CHAR_DATA *, int));
PROTOTYPE(int skill_rating, (CHAR_DATA *, int));
PROTOTYPE(int group_rating, (CHAR_DATA *, int));
PROTOTYPE(bool check_base_group, (CHAR_DATA *, int));
PROTOTYPE(bool is_base_skill, (CHAR_DATA *, int));
PROTOTYPE(int get_hp_gain, (CHAR_DATA *));
PROTOTYPE(int get_mana_gain, (CHAR_DATA *));
PROTOTYPE(bool is_prime_stat, (CHAR_DATA *, int));
PROTOTYPE(void add_default_groups, (CHAR_DATA *));
PROTOTYPE(void add_base_groups, (CHAR_DATA *));
PROTOTYPE(int get_stat_bonus, (CHAR_DATA *, int));
PROTOTYPE(int get_thac00, (CHAR_DATA *));
PROTOTYPE(int get_thac32, (CHAR_DATA *));
PROTOTYPE(int get_hp_max, (CHAR_DATA *));
PROTOTYPE(int lvl_bonus, (CHAR_DATA *));
PROTOTYPE(int class_mult, (CHAR_DATA *));
PROTOTYPE(bool is_race_skill, (CHAR_DATA *, int));
PROTOTYPE(int hp_max, (CHAR_DATA *));
PROTOTYPE(int prime_class, (CHAR_DATA *));

/* quest.c */
PROTOTYPE(bool chance, (int));
PROTOTYPEF(void mob_tell, (CHAR_DATA *, CHAR_DATA *, const char *, ...), 3, 4);
PROTOTYPE(void generate_quest, (CHAR_DATA *, CHAR_DATA *));
PROTOTYPE(void quest_update, (void));
PROTOTYPE(bool quest_level_diff, (CHAR_DATA *, CHAR_DATA *));
PROTOTYPE(void end_quest, (CHAR_DATA *, int));
PROTOTYPE(OBJ_DATA * has_questobj, (CHAR_DATA *));
PROTOTYPE(void update_questobjs, (CHAR_DATA *, OBJ_DATA *));
PROTOTYPE(int qobj_cost, (OBJ_DATA *));
PROTOTYPE(int is_qobj, (OBJ_DATA *));
PROTOTYPE(void add_apply,
		  (OBJ_DATA *, apply_t, int, where_t, int, int, flag_t, int));
PROTOTYPE(void update_all_qobjs, (CHAR_DATA *));
PROTOTYPE(void unfinished_quest, (CHAR_DATA *));

/* save.c */
PROTOTYPE(void save_char_obj, (CHAR_DATA *));
PROTOTYPE(bool load_char_obj, (DESCRIPTOR_DATA *, const char *));
PROTOTYPE(void update_corpses, (OBJ_DATA *, bool));
PROTOTYPE(void load_corpses, (void));
PROTOTYPE(void checkcorpse, (CHAR_DATA *));

/* skills.c */
PROTOTYPE(bool parse_gen_groups, (CHAR_DATA *, const char *));
PROTOTYPE(void list_group_costs, (CHAR_DATA *));
PROTOTYPE(void list_group_known, (CHAR_DATA *));
PROTOTYPE(int exp_per_level, (CHAR_DATA *, int));
PROTOTYPE(void check_improve, (CHAR_DATA *, int, bool, int));
PROTOTYPE(int group_lookup, (const char *));
PROTOTYPE(void gn_add, (CHAR_DATA *, int));
PROTOTYPE(void gn_remove, (CHAR_DATA *, int));
PROTOTYPE(void group_add, (CHAR_DATA *, const char *, bool));
PROTOTYPE(void group_remove, (CHAR_DATA *, const char *));

/* special.c */
PROTOTYPE(SPEC_FUN * spec_lookup, (const char *));
PROTOTYPE(const char *spec_name, (SPEC_FUN *));

/* statlist.c */
PROTOTYPE(void update_statlist, (CHAR_DATA *, bool));
PROTOTYPE(void show_game_stats, (CHAR_DATA *, int));

/* teleport.c */
PROTOTYPE(ROOM_INDEX_DATA * room_by_name, (char *, int, bool));

/* update.c */
PROTOTYPE(void advance_level, (CHAR_DATA *, bool));
PROTOTYPE(void gain_exp, (CHAR_DATA *, int));
PROTOTYPE(void gain_condition, (CHAR_DATA *, int, int));
PROTOTYPE(void update_handler, (void));

/* string.c */
PROTOTYPE(void string_edit, (CHAR_DATA *, const char **));
PROTOTYPE(void string_append, (CHAR_DATA *, const char **));
PROTOTYPE(const char *string_replace, (const char *, char *old, char *));
PROTOTYPE(void string_add, (CHAR_DATA *, char *));
PROTOTYPE(const char *format_string, (const char *oldstring /*, bool */ ));
PROTOTYPE(const char *first_arg, (const char *, char *, bool));
PROTOTYPE(const char *string_unpad, (const char *));
PROTOTYPE(const char *string_proper, (const char *));
PROTOTYPE(strshow_t parse_string_command,
		  (const char **, const char *, CHAR_DATA *));
PROTOTYPE(void parse_action, (const char **, int, const char *, CHAR_DATA *));

/* olc.c */
PROTOTYPE(bool run_olc_editor, (DESCRIPTOR_DATA *, char *));
PROTOTYPE(const char *olc_ed_name, (DESCRIPTOR_DATA *));
PROTOTYPE(char *olc_ed_vnum, (DESCRIPTOR_DATA *));
PROTOTYPE(void clean_area_links, (AREA_DATA *));
PROTOTYPE(bool vnum_OK, (vnum_t, vnum_t));

/* lookup.c */
PROTOTYPE(RACE_DATA * race_lookup, (const char *));
PROTOTYPE(int item_lookup, (const char *));
PROTOTYPE(int liq_lookup, (const char *));

/* mccp.c */
#if !defined(NO_MCCP)
PROTOTYPE(bool compressStart, (DESCRIPTOR_DATA *, int));
PROTOTYPE(bool compressEnd, (DESCRIPTOR_DATA *, int));
PROTOTYPE(bool processCompressed, (DESCRIPTOR_DATA *));
PROTOTYPE(bool writeCompressed, (DESCRIPTOR_DATA *, const char *, int));
#endif

PROTOTYPE(void hunt_victim, (CHAR_DATA *));
PROTOTYPEF(void announce, (CHAR_DATA *, flag_t, const char *, ...), 3, 4);

/* gquest.c */
PROTOTYPE(void auto_gquest, (void));
PROTOTYPE(bool start_gquest, (CHAR_DATA *, const char *));
PROTOTYPE(void end_gquest, (CHAR_DATA *));
PROTOTYPE(void gquest_update, (void));
PROTOTYPE(bool generate_gquest, (CHAR_DATA *));
PROTOTYPE(int count_gqmobs, (GQ_DATA *));
PROTOTYPE(int is_gqmob, (GQ_DATA *, vnum_t));
PROTOTYPE(bool is_random_gqmob, (vnum_t));

/*explored.c */
PROTOTYPE(void fread_rle, (char *, FILE *));
PROTOTYPE(void read_rle, (char *, READ_DATA *));
PROTOTYPE(void fwrite_rle, (char *, FILE *));
PROTOTYPE(int arearooms, (AREA_DATA *));
PROTOTYPE(void update_explored, (CHAR_DATA *));
PROTOTYPE(int bitcount, (char));
PROTOTYPE(int roomcount, (CHAR_DATA *));
PROTOTYPE(int areacount, (CHAR_DATA *, AREA_DATA *));

PROTOTYPE(bool emptystring, (const char *));
PROTOTYPE(void draw_map, (CHAR_DATA *, const char *));

/* war.c */
PROTOTYPE(void war_channel, (CHAR_DATA *, char *));
PROTOTYPE(void war_update, (void));
PROTOTYPE(void auto_war, (void));
PROTOTYPE(void check_war, (CHAR_DATA *, CHAR_DATA *));
PROTOTYPE(bool is_safe_war, (CHAR_DATA *, CHAR_DATA *));
PROTOTYPE(void war_talk, (CHAR_DATA *, const char *));
PROTOTYPE(void end_war, (void));
PROTOTYPE(bool abort_race_war, (void));
PROTOTYPE(bool abort_class_war, (void));
PROTOTYPE(bool abort_clan_war, (void));
PROTOTYPE(void extract_war, (CHAR_DATA *));

PROTOTYPE(CMD_DATA * command_lookup, (const char *));

PROTOTYPE(void delete_home, (CHAR_DATA *));
PROTOTYPE(int count_home, (CHAR_DATA *));

PROTOTYPE(void extract_auc, (CHAR_DATA *));
PROTOTYPE(AUCTION_DATA * auction_lookup, (int));
PROTOTYPE(int get_auc_id, (void));
PROTOTYPE(bool has_auction, (CHAR_DATA *));
PROTOTYPE(void reset_auc, (AUCTION_DATA *, bool));
PROTOTYPE(int count_auc, (CHAR_DATA *));
PROTOTYPE(void auction_update, (void));
PROTOTYPE(long advatoi, (const char *));

PROTOTYPE(const char *get_sector_color, (sector_t));

PROTOTYPE(OBJ_DATA * get_donation_pit, (void));
PROTOTYPE(void read_obj, (CHAR_DATA *, READ_DATA *, bool));
PROTOTYPE(void fwrite_obj, (CHAR_DATA *, OBJ_DATA *, FILE *, int, char *));
PROTOTYPE(void load_donation_pit, (void));
PROTOTYPE(void save_donation_pit, (void));

PROTOTYPE(void read_char, (CHAR_DATA *, READ_DATA *));
PROTOTYPE(void pload_default, (CHAR_DATA *));

PROTOTYPE(void check_arena, (CHAR_DATA *, CHAR_DATA *));
PROTOTYPE(void extract_arena, (CHAR_DATA *));
PROTOTYPE(bool IS_IN_ARENA, (CHAR_DATA *));

PROTOTYPE(char *prog_type_to_name, (flag_t));
PROTOTYPE(void program_flow, (vnum_t, const char *, CHAR_DATA *, OBJ_DATA *,
							  ROOM_INDEX_DATA *, CHAR_DATA *, const void *arg1,
							  const void *));
PROTOTYPE(void p_act_trigger, (const char *, CHAR_DATA *, OBJ_DATA *,
							   ROOM_INDEX_DATA *, CHAR_DATA *, const void *,
							   const void *, flag_t));
PROTOTYPE(bool p_percent_trigger, (CHAR_DATA *, OBJ_DATA *, ROOM_INDEX_DATA *,
								   CHAR_DATA *, const void *, const void *,
								   flag_t));
PROTOTYPE(void p_bribe_trigger, (CHAR_DATA *, CHAR_DATA *, long));
PROTOTYPE(bool p_exit_trigger, (CHAR_DATA *, int, prog_t));
PROTOTYPE(void p_give_trigger, (CHAR_DATA *, OBJ_DATA *, ROOM_INDEX_DATA *,
								CHAR_DATA *, OBJ_DATA *, flag_t));
PROTOTYPE(void p_greet_trigger, (CHAR_DATA *, prog_t));
PROTOTYPE(void p_hprct_trigger, (CHAR_DATA *, CHAR_DATA *));
PROTOTYPE(void mob_interpret, (CHAR_DATA *, const char *));
PROTOTYPE(void obj_interpret, (OBJ_DATA *, const char *));
PROTOTYPE(void room_interpret, (ROOM_INDEX_DATA *, const char *));
PROTOTYPE(void do_obj, (OBJ_DATA *, const char *));
PROTOTYPE(void do_room, (ROOM_INDEX_DATA *, const char *));

PROTOTYPE(bool is_deity_skill, (CHAR_DATA *, int));

PROTOTYPE(void update_webpasses, (CHAR_DATA *, bool));

PROTOTYPE(bool d_write, (DESCRIPTOR_DATA *, const char *, int));

PROTOTYPE(int check_buddy, (CHAR_DATA *, CHAR_DATA *));

PROTOTYPE(int srt_skills, (const void *, const void *));

PROTOTYPE(void add_help, (HELP_DATA *));
PROTOTYPE(void add_area, (AREA_DATA *));
PROTOTYPE(void unlink_area, (AREA_DATA *));

PROTOTYPEF(char *FORMATF, (const char *, ...), 1, 2);
PROTOTYPE(void *alloc_perm, (size_t));

PROTOTYPE(void update_members, (CHAR_DATA *, bool));

PROTOTYPE(void unlink_command, (CMD_DATA *));
PROTOTYPE(void add_command, (CMD_DATA *));
PROTOTYPE(void unhash_command, (CMD_DATA *));
PROTOTYPE(void hash_command, (CMD_DATA *));

PROTOTYPE(void unlink_social, (SOCIAL_DATA *));
PROTOTYPE(void add_social, (SOCIAL_DATA *));
PROTOTYPE(void unhash_social, (SOCIAL_DATA *));
PROTOTYPE(void hash_social, (SOCIAL_DATA *));

PROTOTYPE(SOCIAL_DATA * find_social, (const char *));

PROTOTYPE(void set_on_off, (CHAR_DATA *, flag_t *, flag_t, const char *,
							const char *));
PROTOTYPE(void print_on_off, (CHAR_DATA *, bool, const char *, const char *));

PROTOTYPE(char *make_colour, (void));

PROTOTYPE(char *str_time, (time_t, int, const char *));

PROTOTYPE(int calc_max_level, (CHAR_DATA *));
PROTOTYPE(const char *high_level_name, (int, bool));

PROTOTYPE(void add_random_exit, (ROOM_INDEX_DATA *, RESET_DATA *, bool));
PROTOTYPE(int get_direction, (const char *));
PROTOTYPE(int reset_door, (RESET_DATA *, bool));

PROTOTYPE(void crs_update, (void));
PROTOTYPE(const char *format_pulse, (int));
PROTOTYPE(const char *crs_sprintf, (bool, bool));
PROTOTYPE(bool read_from_descriptor, (DESCRIPTOR_DATA *));

PROTOTYPE(bool bust_a_portal, (CHAR_DATA *));
PROTOTYPE(void portal_map, (CHAR_DATA *, ROOM_INDEX_DATA *));
PROTOTYPE(void send_portal, (DESCRIPTOR_DATA *, const char *, ...));

PROTOTYPE(void send_imp, (DESCRIPTOR_DATA *, char *));

PROTOTYPE(void image_to_char, (CHAR_DATA *, const char *));
PROTOTYPE(void send_sound, (CHAR_DATA *, const char *, int));
PROTOTYPE(void send_music, (CHAR_DATA *, const char *, const char *));

PROTOTYPE(unsigned int get_line, (char *, unsigned int));
PROTOTYPE(void reformat_desc, (char *));

#if defined(__cplusplus)
#define dwrap(d, buf) (d)->wrap((buf))
#else
PROTOTYPE(void dwrap, (DESCRIPTOR_DATA *, const char *));
#endif
PROTOTYPE(void dwrapln, (DESCRIPTOR_DATA *, const char *));
PROTOTYPEF(void dwrapf, (DESCRIPTOR_DATA *, const char *, ...), 2, 3);
PROTOTYPEF(void dwraplnf, (DESCRIPTOR_DATA *, const char *, ...), 2, 3);

PROTOTYPE(char *fix_string, (const char *));

PROTOTYPE(void autodrop, (CHAR_DATA *));
PROTOTYPE(bool can_bypass, (CHAR_DATA *, CHAR_DATA *));
PROTOTYPE(long dambonus, (CHAR_DATA *, CHAR_DATA *, long, int));
PROTOTYPE(bool can_counter, (CHAR_DATA *));
PROTOTYPE(void improve_stance, (CHAR_DATA *));
PROTOTYPE(char *get_stance_name, (int));

PROTOTYPE(bool is_ignoring, (CHAR_DATA *, const char *, flag_t));
PROTOTYPE(void write_time, (void));
PROTOTYPE(void log_error, (const char *));

PROTOTYPE(void finish_note, (BOARD_DATA *, NOTE_DATA *));	/* attach a note to a board */
PROTOTYPE(void free_note, (NOTE_DATA *));	/* deallocate memory used by a note */
PROTOTYPE(void load_boards, (void));	/* load all boards */
PROTOTYPE(int board_lookup, (const char *));	/* Find a board with that name */
PROTOTYPE(bool is_note_to, (CHAR_DATA *, NOTE_DATA *));	/* is tha note to ch? */
PROTOTYPE(void personal_message, (const char *, const char *,
								  const char *, const int, const char *));
PROTOTYPE(void make_note, (const char *, const char *, const char *,
						   const char *, const int, const char *));
PROTOTYPE(void save_notes, (void));

/* for nanny */
PROTOTYPE(void handle_con_note_to, (DESCRIPTOR_DATA *, const char *));
PROTOTYPE(void handle_con_note_subject, (DESCRIPTOR_DATA *, const char *));
PROTOTYPE(void handle_con_note_expire, (DESCRIPTOR_DATA *, const char *));
PROTOTYPE(void handle_con_note_text, (DESCRIPTOR_DATA *, const char *));
PROTOTYPE(void handle_con_note_finish, (DESCRIPTOR_DATA *, const char *));

PROTOTYPE(long fread_long, (FILE *));
PROTOTYPE(long read_long, (READ_DATA *));

PROTOTYPE(char *timestr, (time_t, bool));

PROTOTYPE(int get_scr_cols, (CHAR_DATA *));
PROTOTYPE(int get_scr_lines, (CHAR_DATA *));
PROTOTYPEF(bool file_exists, (const char *,...), 1, 2);

#endif