/************************************************************************** * 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-2002 by Ryan Jennings * * http://1stmud.dlmud.com/ <r-jenn@shaw.ca> * ***************************************************************************/ /* * Our function prototypes. * One big lump ... this is every function in Merc. */ #define CD CHAR_DATA #define MID MOB_INDEX_DATA #define OD OBJ_DATA #define OID OBJ_INDEX_DATA #define RID ROOM_INDEX_DATA #define SF SPEC_FUN #define AD AFFECT_DATA #define MPC MPROG_CODE /* act_comm.c */ void check_sex args ((CHAR_DATA * ch)); void add_follower args ((CHAR_DATA * ch, CHAR_DATA * master)); void stop_follower args ((CHAR_DATA * ch)); void nuke_pets args ((CHAR_DATA * ch)); void die_follower args ((CHAR_DATA * ch)); bool is_same_group args ((CHAR_DATA * ach, CHAR_DATA * bch)); int colour_lookup args ((const char *arg)); int cslot_lookup args ((const char *arg)); const char *char_colour args ((CHAR_DATA * ch, int slot)); void default_colour args ((CHAR_DATA * ch, int slot)); int strlen_color args ((const char *string)); char *draw_line args ((char *fill, int len)); bool check_cstring args ((char *string)); char *random_colour args ((void)); char *random_background args ((void)); void smash_colour args ((char *buffer, const char *str)); void stringf args ((char *buffer, int length, int align, char *fill, char *string)); void tilde_to_color args ((char *buffer, char *str)); void color_to_tilde args ((char *buffer, char *str)); void show_greeting args ((DESCRIPTOR_DATA * dnew)); bool process_ansi_output args ((DESCRIPTOR_DATA * d)); const char *color_default args ((CHAR_DATA * ch)); /* act_enter.c */ RID *get_random_room args ((CHAR_DATA * ch)); /* act_info.c */ void set_title args ((CHAR_DATA * ch, const char *title)); char *format_who args ((CHAR_DATA * ch, CHAR_DATA * wch)); /* act_move.c */ void move_char args ((CHAR_DATA * ch, int door, bool follow)); /* act_obj.c */ bool can_loot args ((CHAR_DATA * ch, OBJ_DATA * obj)); void wear_obj args ((CHAR_DATA * ch, OBJ_DATA * obj, bool fReplace)); void get_obj args ((CHAR_DATA * ch, OBJ_DATA * obj, OBJ_DATA * container)); void recursive_clone args ((CHAR_DATA * ch, OBJ_DATA * obj, OBJ_DATA * clone)); bool obj_check args ((CHAR_DATA * ch, OBJ_DATA * obj)); /* act_wiz.c */ void wiznet args ((char *string, CHAR_DATA * ch, OBJ_DATA * obj, flag_t flag, flag_t flag_skip, int min_level)); void copyover_recover args ((void)); /* alias.c */ void substitute_alias args ((DESCRIPTOR_DATA * d, char *input)); /* ban.c */ bool check_ban args ((const char *site, int type)); void save_bans args ((void)); void load_bans args ((void)); void ban_site args ((CHAR_DATA * ch, const char *argument, bool fPerm)); /* comm.c */ void show_string args ((struct descriptor_data * d, char *input)); void close_socket args ((DESCRIPTOR_DATA * dclose)); void write_to_buffer args ((DESCRIPTOR_DATA * d, const char *txt, int length)); void chprint args ((CHAR_DATA * ch, const char *txt)); void chprintln args ((CHAR_DATA * ch, const char *txt)); void page_to_char args ((const char *txt, CHAR_DATA * ch)); void act args ((const char *format, CHAR_DATA * ch, const void *arg1, const void *arg2, int type)); void act_new args ((const char *format, CHAR_DATA * ch, const void *arg1, const void *arg2, int type, int min_pos)); void chprintf args ((CHAR_DATA *, char *, ...)) __attribute__ ((format (printf, 2, 3))); void chprintlnf args ((CHAR_DATA *, char *, ...)) __attribute__ ((format (printf, 2, 3))); void bugf args ((char *, ...)) __attribute__ ((format (printf, 1, 2))); void fix_sex args ((CHAR_DATA * ch)); void logf args ((char *fmt, ...)) __attribute__ ((format (printf, 1, 2))); void vinterpret args ((CHAR_DATA * ch, const char *argument, ...)) __attribute__ ((format (printf, 2, 3))); int strswitch args ((const char *arg, ...)) __attribute__ ((format (printf, 1, 2))); /* db.c */ void reset_area args ((AREA_DATA * pArea)); /* OLC */ void reset_room args ((ROOM_INDEX_DATA * pRoom)); /* OLC */ char *fwrite_flags (flag_t flags); void boot_db args ((void)); void area_update args ((void)); CD *create_mobile args ((MOB_INDEX_DATA * pMobIndex)); void clone_mobile args ((CHAR_DATA * parent, CHAR_DATA * clone)); OD *create_object args ((OBJ_INDEX_DATA * pObjIndex, int level)); void clone_object args ((OBJ_DATA * parent, OBJ_DATA * clone)); void clear_char args ((CHAR_DATA * ch)); const char *get_extra_descr args ((const char *name, EXTRA_DESCR_DATA * ed)); MID *get_mob_index args ((vnum_t vnum)); OID *get_obj_index args ((vnum_t vnum)); RID *get_room_index args ((vnum_t vnum)); MPC *get_mprog_index args ((vnum_t vnum)); char fread_letter args ((FILE * fp)); int fread_number args ((FILE * fp)); flag_t fread_flag args ((FILE * fp)); const char *fread_string args ((FILE * fp)); const char *fread_string_eol args ((FILE * fp)); void fread_to_eol args ((FILE * fp)); char *fread_word args ((FILE * fp)); flag_t flag_convert args ((char letter)); const char *str_dup args ((const char *str)); void free_string args ((const char *pstr)); int number_fuzzy args ((int number)); int number_range args ((int from, int to)); int number_percent args ((void)); int number_door args ((void)); int number_bits args ((int width)); long number_mm args ((void)); int dice args ((int number, int size)); int interpolate args ((int level, int value_00, int value_32)); void smash_tilde args ((const char *str)); bool str_cmp args ((const char *astr, const char *bstr)); bool str_prefix args ((const char *astr, const char *bstr)); bool str_infix args ((const char *astr, const char *bstr)); bool str_suffix args ((const char *astr, const char *bstr)); char *capitalize args ((const char *str)); void append_file args ((CHAR_DATA * ch, char *file, const char *str)); void bug args ((const char *str, int param)); void log_string args ((const char *str)); void tail_chain args ((void)); void new_reset args ((ROOM_INDEX_DATA * pR, RESET_DATA * pReset)); /* db2.c */ void load_socials args ((FILE * fp)); void load_mobiles args ((FILE * fp)); void load_objects args ((FILE * fp)); FILE *file_open args ((const char *file, const char *mode)); bool file_close args ((FILE * fp)); void free_runbuf args ((DESCRIPTOR_DATA * d)); /* effect.c */ void acid_effect args ((void *vo, int level, int dam, int target)); void cold_effect args ((void *vo, int level, int dam, int target)); void fire_effect args ((void *vo, int level, int dam, int target)); void poison_effect args ((void *vo, int level, int dam, int target)); void shock_effect args ((void *vo, int level, int dam, int target)); /* fight.c */ bool is_safe args ((CHAR_DATA * ch, CHAR_DATA * victim)); bool is_safe_spell args ((CHAR_DATA * ch, CHAR_DATA * victim, bool area)); void violence_update args ((void)); void multi_hit args ((CHAR_DATA * ch, CHAR_DATA * victim, int dt)); bool damage args ((CHAR_DATA * ch, CHAR_DATA * victim, int dam, int dt, int Class, bool show)); bool damage_old args ((CHAR_DATA * ch, CHAR_DATA * victim, int dam, int dt, int Class, bool show)); void update_pos args ((CHAR_DATA * victim)); void stop_fighting args ((CHAR_DATA * ch, bool fBoth)); void check_killer args ((CHAR_DATA * ch, CHAR_DATA * victim)); /* handler.c */ AD *affect_find args ((AFFECT_DATA * paf, int sn)); void affect_check args ((CHAR_DATA * ch, int where, flag_t vector)); int count_users args ((OBJ_DATA * obj)); void deduct_cost args ((CHAR_DATA * ch, int cost)); void affect_enchant args ((OBJ_DATA * obj)); int check_immune args ((CHAR_DATA * ch, int dam_type)); int material_lookup args ((const char *name)); int weapon_lookup args ((const char *name)); int weapon_typ args ((const char *name)); const char *weapon_name args ((int weapon_Type)); const char *item_name args ((int pitem_type)); int attack_lookup args ((const char *name)); int wiznet_lookup args ((const char *name)); int class_lookup args ((const char *name)); bool is_clan args ((CHAR_DATA * ch)); bool is_same_clan args ((CHAR_DATA * ch, CHAR_DATA * victim)); bool is_old_mob args ((CHAR_DATA * ch)); int get_skill args ((CHAR_DATA * ch, int sn)); int get_weapon_sn args ((CHAR_DATA * ch)); int get_weapon_skill args ((CHAR_DATA * ch, int sn)); int get_age args ((CHAR_DATA * ch)); void reset_char args ((CHAR_DATA * ch)); int get_trust args ((CHAR_DATA * ch)); int get_curr_stat args ((CHAR_DATA * ch, int stat)); int get_max_train args ((CHAR_DATA * ch, int stat)); int can_carry_n args ((CHAR_DATA * ch)); int can_carry_w args ((CHAR_DATA * ch)); bool is_name args ((const char *str, const char *namelist)); bool is_exact_name args ((const char *str, const char *namelist)); void affect_to_char args ((CHAR_DATA * ch, AFFECT_DATA * paf)); void affect_to_obj args ((OBJ_DATA * obj, AFFECT_DATA * paf)); void affect_remove args ((CHAR_DATA * ch, AFFECT_DATA * paf)); void affect_remove_obj args ((OBJ_DATA * obj, AFFECT_DATA * paf)); void affect_strip args ((CHAR_DATA * ch, int sn)); bool is_affected args ((CHAR_DATA * ch, int sn)); void affect_join args ((CHAR_DATA * ch, AFFECT_DATA * paf)); void char_from_room args ((CHAR_DATA * ch)); void char_to_room args ((CHAR_DATA * ch, ROOM_INDEX_DATA * pRoomIndex)); void obj_to_char args ((OBJ_DATA * obj, CHAR_DATA * ch)); void obj_from_char args ((OBJ_DATA * obj)); int apply_ac args ((OBJ_DATA * obj, int iWear, int type)); OD *get_eq_char args ((CHAR_DATA * ch, int iWear)); void equip_char args ((CHAR_DATA * ch, OBJ_DATA * obj, int iWear)); void unequip_char args ((CHAR_DATA * ch, OBJ_DATA * obj)); int count_obj_list args ((OBJ_INDEX_DATA * obj, OBJ_DATA * list)); void obj_from_room args ((OBJ_DATA * obj)); void obj_to_room args ((OBJ_DATA * obj, ROOM_INDEX_DATA * pRoomIndex)); void obj_to_obj args ((OBJ_DATA * obj, OBJ_DATA * obj_to)); void obj_from_obj args ((OBJ_DATA * obj)); void extract_obj args ((OBJ_DATA * obj)); void extract_char args ((CHAR_DATA * ch, bool fPull)); CD *get_char_room args ((CHAR_DATA * ch, const char *argument)); CD *get_char_world args ((CHAR_DATA * ch, const char *argument)); OD *get_obj_type args ((OBJ_INDEX_DATA * pObjIndexData)); OD *get_obj_list args ((CHAR_DATA * ch, const char *argument, OBJ_DATA * list)); OD *get_obj_carry args ((CHAR_DATA * ch, const char *argument, CHAR_DATA * viewer)); OD *get_obj_wear args ((CHAR_DATA * ch, const char *argument)); OD *get_obj_here args ((CHAR_DATA * ch, const char *argument)); OD *get_obj_world args ((CHAR_DATA * ch, const char *argument)); OD *create_money args ((int gold, int silver)); int get_obj_number args ((OBJ_DATA * obj)); int get_obj_weight args ((OBJ_DATA * obj)); int get_true_weight args ((OBJ_DATA * obj)); bool room_is_dark args ((ROOM_INDEX_DATA * pRoomIndex)); bool is_room_owner args ((CHAR_DATA * ch, ROOM_INDEX_DATA * room)); bool room_is_private args ((ROOM_INDEX_DATA * pRoomIndex)); bool can_see args ((CHAR_DATA * ch, CHAR_DATA * victim)); bool can_see_obj args ((CHAR_DATA * ch, OBJ_DATA * obj)); bool can_see_room args ((CHAR_DATA * ch, ROOM_INDEX_DATA * pRoomIndex)); bool can_drop_obj args ((CHAR_DATA * ch, OBJ_DATA * obj)); bool is_friend args ((CHAR_DATA * ch, CHAR_DATA * victim)); bool is_full_name args ((const char *str, const char *namelist)); CHAR_DATA *get_char_id args ((long id)); /* hedit.c */ HELP_AREA *get_help_area args ((HELP_DATA * help)); /* interp.c */ void interpret args ((CHAR_DATA * ch, const char *argument)); bool is_number args ((const char *arg)); unsigned int number_argument args ((const char *argument, char *arg)); unsigned int mult_argument args ((const char *argument, char *arg)); const char *one_argument args ((const char *argument, char *arg_first)); void load_disabled args ((void)); void save_disabled args ((void)); /* magic.c */ int find_spell args ((CHAR_DATA * ch, const char *name)); int mana_cost (CHAR_DATA * ch, int min_mana, int level); int skill_lookup args ((const char *name)); bool saves_spell args ((int level, CHAR_DATA * victim, int dam_type)); void obj_cast_spell args ((int sn, int level, CHAR_DATA * ch, CHAR_DATA * victim, OBJ_DATA * obj)); bool check_dispel args ((int dis_level, CHAR_DATA * victim, int sn)); bool saves_dispel args ((int dis_level, int spell_level, int duration)); /* mob_prog.c */ void program_flow args ((vnum_t vnum, const char *source, CHAR_DATA * mob, CHAR_DATA * ch, const void *arg1, const void *arg2)); void mp_act_trigger args ( (const char *argument, CHAR_DATA * mob, CHAR_DATA * ch, const void *arg1, const void *arg2, int type)); bool mp_percent_trigger args ( (CHAR_DATA * mob, CHAR_DATA * ch, const void *arg1, const void *arg2, int type)); void mp_bribe_trigger args ((CHAR_DATA * mob, CHAR_DATA * ch, int amount)); bool mp_exit_trigger args ((CHAR_DATA * ch, int dir)); void mp_give_trigger args ((CHAR_DATA * mob, CHAR_DATA * ch, OBJ_DATA * obj)); void mp_greet_trigger args ((CHAR_DATA * ch)); void mp_hprct_trigger args ((CHAR_DATA * mob, CHAR_DATA * ch)); /* mob_cmds.c */ void mob_interpret args ((CHAR_DATA * ch, const char *argument)); /* multiclass.c */ bool can_use_skpell args ((CHAR_DATA * ch, int sn)); bool has_spells args ((CHAR_DATA * ch)); bool is_class args ((CHAR_DATA * ch, int Class)); bool is_same_class args ((CHAR_DATA * ch, CHAR_DATA * victim)); int number_classes args ((CHAR_DATA * ch)); char *class_long args ((CHAR_DATA * ch)); char *class_who args ((CHAR_DATA * ch)); char *class_short args ((CHAR_DATA * ch)); char *class_numbers args ((CHAR_DATA * ch, bool pSave)); int skill_level args ((CHAR_DATA * ch, int sn)); int skill_rating args ((CHAR_DATA * ch, int sn)); int group_rating args ((CHAR_DATA * ch, int gn)); bool check_base_group args ((CHAR_DATA * ch, int gn)); bool is_base_skill args ((CHAR_DATA * ch, int sn)); int get_hp_gain args ((CHAR_DATA * ch)); int get_mana_gain args ((CHAR_DATA * ch)); bool is_prime_stat args ((CHAR_DATA * ch, int pStat)); void add_default_groups args ((CHAR_DATA * ch)); void add_base_groups args ((CHAR_DATA * ch)); int get_stat_bonus args ((CHAR_DATA * ch, int pStat)); int get_thac00 args ((CHAR_DATA * ch)); int get_thac32 args ((CHAR_DATA * ch)); int get_hp_max args ((CHAR_DATA * ch)); int lvl_bonus args ((CHAR_DATA * ch)); int class_mult args ((CHAR_DATA * ch)); bool is_race_skill args ((CHAR_DATA * ch, int sn)); int hp_max args ((CHAR_DATA * ch)); int prime_class args ((CHAR_DATA * ch)); /* quest.c */ bool chance args ((int num)); void do_mob_tell args ((CHAR_DATA * ch, CHAR_DATA * victim, char *argument)); void generate_quest args ((CHAR_DATA * ch, CHAR_DATA * questman)); void quest_update args ((void)); bool quest_level_diff args ((CHAR_DATA * ch, CHAR_DATA * mob)); void end_quest args ((CHAR_DATA * ch, int time)); OD *has_questobj args ((CHAR_DATA * ch)); void update_questobjs args ((CHAR_DATA * ch, OBJ_DATA * obj)); int qobj_cost args ((OBJ_DATA * obj)); int is_qobj args ((OBJ_DATA * obj)); void add_apply args ( (OBJ_DATA * obj, int loc, int mod, int where, int type, int dur, flag_t bit, int level)); void do_mob_tell args ((CHAR_DATA * ch, CHAR_DATA * victim, char *argument)); void update_all_qobjs args ((CHAR_DATA * ch)); void unfinished_quest args ((CHAR_DATA * ch)); /* save.c */ void save_char_obj args ((CHAR_DATA * ch)); bool load_char_obj args ((DESCRIPTOR_DATA * d, const char *name)); void update_corpses args ((OBJ_DATA * obj, bool pdelete)); void load_corpses args ((void)); void checkcorpse args ((CHAR_DATA * ch)); /* skills.c */ bool parse_gen_groups args ((CHAR_DATA * ch, const char *argument)); void list_group_costs args ((CHAR_DATA * ch)); void list_group_known args ((CHAR_DATA * ch)); int exp_per_level args ((CHAR_DATA * ch, int points)); void check_improve args ((CHAR_DATA * ch, int sn, bool success, int multiplier)); int group_lookup args ((const char *name)); void gn_add args ((CHAR_DATA * ch, int gn)); void gn_remove args ((CHAR_DATA * ch, int gn)); void group_add args ((CHAR_DATA * ch, const char *name, bool deduct)); void group_remove args ((CHAR_DATA * ch, const char *name)); /* special.c */ SF *spec_lookup args ((const char *name)); const char *spec_name args ((SPEC_FUN * function)); /* statlist.c */ void update_statlist args ((CHAR_DATA * ch, bool pdelete)); void load_statlist args ((void)); void save_statlist args ((void)); void show_game_stats args ((CHAR_DATA * ch, int type)); /* teleport.c */ RID *room_by_name args ((char *target, int level, bool error)); /* update.c */ void advance_level args ((CHAR_DATA * ch, bool hide)); void gain_exp args ((CHAR_DATA * ch, int gain)); void gain_condition args ((CHAR_DATA * ch, int iCond, int value)); void update_handler args ((void)); /* social-edit.c */ void load_social_table (); void save_social_table (); /* string.c */ void string_edit args ((CHAR_DATA * ch, const char **pString)); void string_append args ((CHAR_DATA * ch, const char **pString)); const char *string_replace args ((const char *orig, char *old, char *pnew)); void string_add args ((CHAR_DATA * ch, char *argument)); const char *format_string args ((const char *oldstring /*, bool fSpace */ )); const char *first_arg args ((const char *argument, char *arg_first, bool fCase)); const char *string_unpad args ((const char *argument)); const char *string_proper args ((const char *argument)); int parse_string_command args ((const char **text, const char *str, CHAR_DATA * ch)); void parse_action args ((const char **text, int command, const char *string, CHAR_DATA * ch)); /* olc.c */ bool run_olc_editor args ((DESCRIPTOR_DATA * d)); char *olc_ed_name args ((CHAR_DATA * ch)); char *olc_ed_vnum args ((CHAR_DATA * ch)); void clean_area_links args ((AREA_DATA * target)); bool vnum_OK args ((vnum_t lnum, vnum_t hnum)); /* lookup.c */ int race_lookup args ((const char *name)); int item_lookup args ((const char *name)); int liq_lookup args ((const char *name)); /* mccp.c */ #if !defined(NO_MCCP) bool compressStart (DESCRIPTOR_DATA * desc); bool compressEnd (DESCRIPTOR_DATA * desc); bool processCompressed (DESCRIPTOR_DATA * desc); bool writeCompressed (DESCRIPTOR_DATA * desc, char *txt, int length); #endif void hunt_victim args ((CHAR_DATA * ch)); void announce args ((CHAR_DATA * ch, flag_t bit, const char *message, ...)) __attribute__ ((format (printf, 3, 4))); /* gquest.c */ bool load_gquest_data args ((void)); bool save_gquest_data args ((void)); void auto_gquest args ((void)); bool start_gquest args ((CHAR_DATA * ch, const char *argument)); void end_gquest args ((CHAR_DATA * who)); void gquest_update args ((void)); bool generate_gquest args ((CHAR_DATA * who)); int count_gqmobs args ((CHAR_DATA * ch)); int is_gqmob args ((CHAR_DATA * ch, vnum_t vnum)); void reset_gqmob args ((CHAR_DATA * ch, vnum_t value)); bool is_random_gqmob args ((vnum_t vnum)); /*explored.c */ void fread_rle args ((char *explored, FILE * fp)); void fwrite_rle args ((char *explored, FILE * fp)); int arearooms args ((CHAR_DATA * ch)); void setbit args ((char *explored, vnum_t pIndex)); void rembit args ((char *explored, vnum_t pIndex)); int getbit args ((char *explored, vnum_t pIndex)); void update_explored args ((CHAR_DATA * ch)); int bitcount args ((char ch)); int roomcount args ((CHAR_DATA * ch)); int areacount args ((CHAR_DATA * ch)); bool emptystring args ((const char *)); void draw_map args ((CHAR_DATA * ch, const char *desc)); /* war.c */ void war_channel args ((CHAR_DATA * ch, char *message)); void war_update args ((void)); void auto_war args ((void)); void check_war args ((CHAR_DATA * ch, CHAR_DATA * victim)); bool is_safe_war args ((CHAR_DATA * ch, CHAR_DATA * wch)); void war_talk args ((CHAR_DATA * ch, const char *argument)); void end_war args ((void)); bool abort_race_war args ((void)); bool abort_class_war args ((void)); bool abort_clan_war args ((void)); void extract_war args ((CHAR_DATA * ch)); void save_clans args ((void)); void load_clans args ((void)); void load_commands args ((void)); void save_commands args ((void)); int command_lookup args ((const char *name)); void save_skills args ((void)); void load_skills args ((void)); void save_groups args ((void)); void load_groups args ((void)); void save_races args ((void)); void load_races args ((void)); void save_classes args ((void)); void load_classes args ((void)); void delete_home args ((CHAR_DATA * ch)); int count_home args ((CHAR_DATA * ch)); #undef CD #undef MID #undef OD #undef OID #undef RID #undef SF #undef AD