/**************************************************************************/ // prototyp.h - All global function prototypes in here /*************************************************************************** * The Dawn of Time v1.69r (c)1997-2004 Michael Garratt * * >> A number of people have contributed to the Dawn codebase, with the * * majority of code written by Michael Garratt - www.dawnoftime.org * * >> To use this source code, you must fully comply with all the licenses * * in licenses.txt... In particular, you may not remove this copyright * * notice. * *************************************************************************** * >> Original Diku Mud copyright (c)1990, 1991 by Sebastian Hammer, * * Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, & Katja Nyboe. * * >> Merc Diku Mud improvements copyright (C) 1992, 1993 by Michael * * Chastain, Michael Quan, and Mitchell Tse. * * >> ROM 2.4 is copyright 1993-1995 Russ Taylor and has been brought to * * you by the ROM consortium: Russ Taylor(rtaylor@pacinfo.com), * * Gabrielle Taylor(gtaylor@pacinfo.com) & Brian Moore(rom@rom.efn.org) * * >> Oblivion 1.2 is copyright 1996 Wes Wagner * **************************************************************************/ #ifndef PROTOTYPE_H #define PROTOTYPE_H int unlink(); int system(); struct letgain_data; //*************************************************** //* FUNCTION PROTOTYPES //*************************************************** /**************************************************************************/ // act_comm.cpp bool flush_char_outbuffer(char_data *ch); // forces a flush of the output buffer of a single player // manually bool is_same_group( char_data *ach, char_data *bch ); void add_follower( char_data *ch, char_data *master ); void broadcast_moot(void); void check_sex( char_data *ch); void die_follower( char_data *ch ); void do_broadcast_announce(char_data *ch, char *message); void nuke_pets( char_data *ch ); void stop_follower( char_data *ch ); void do_say( char_data *ch, char *argument ); /**************************************************************************/ // act_enter.cpp RID *get_random_room(char_data *ch); /**************************************************************************/ // act_info.cpp void do_huh( char_data *ch, char * ); void set_title( char_data *ch, char *title ); char *format_obj_to_char( OBJ_DATA *obj, char_data *ch, bool fShort ); /**************************************************************************/ // act_move.cpp void move_char( char_data *ch, int door, bool follow ); int get_recallvnum(char_data *ch); /**************************************************************************/ // act_obj.cpp bool can_loot(char_data *ch, OBJ_DATA *obj); void get_obj( char_data *ch, OBJ_DATA *obj, OBJ_DATA *container ); void wear_obj(char_data *ch, OBJ_DATA *obj, bool fReplace, bool hold ); /**************************************************************************/ // act_wiz.cpp void hotreboot_recover ( void ); void wiznet( char *string, char_data *ch, OBJ_DATA *obj, long flag, long flag_skip, int min_level ); DECLARE_DO_FUN( do_at ); ROOM_INDEX_DATA *find_location( char_data *ch, char *arg ); ROOM_INDEX_DATA *find_location_player_prority( char_data *ch, char *arg ); /**************************************************************************/ // affects.cpp void affects_update( void ); /**************************************************************************/ // alias.cpp char * substitute_alias( connection_data *d, char *input ); /**************************************************************************/ // ban.cpp bool check_connection_ban( connection_data *c ); /**************************************************************************/ // bit.cpp char *fwrite_wordflag( const struct flag_type *flag_table, int bits, const char * heading, FILE *fp); int fread_wordflag( const struct flag_type *flag_table, FILE *fp); void free_affect( AFFECT_DATA *af ); void free_extra_descr( EXTRA_DESCR_DATA *ed ); int flag_lookup (const char *name, const struct flag_type *flag_table); affectprofile_type *affectprofile_lookup( const char *name ); classgroup_type *classgroup_lookup( const char* name ); int flag_value(const struct flag_type *flag_table,char *argument); char *flag_string(const struct flag_type *flag_table,int bits); /**************************************************************************/ // base64.cpp char * decodeBase64(char *coded_with_linebreaks); char * encodeBase64(char *plaintext, int len); char * url_encode_post_data(char *postdata); /**************************************************************************/ // com_time.cpp void do_compile_time (char_data *, char *); /**************************************************************************/ // comedit.cpp char *com_category_indexlookup(int index); /**************************************************************************/ // comm.cpp void update_currenttime(void); int colour( char type, char_data *ch, char *string ); int irc_colour( char type, char_data *ch, char *string ); void act( const char *format, char_data *ch, const void *arg1, const void *arg2, ACTTO_TYPE type ); void act_with_autodam_to_char(const char *format, char_data *ch, const void *arg1, const void *arg2, int damage_result); // always TO_CHAR char * act_new( const char *format, char_data *ch, const void *arg1, const void *arg2, ACTTO_TYPE type, int min_pos); void do_abort( void ); void connection_close( connection_data *dclose ); void make_corefile( void ); void show_string( connection_data *d, char *input ); void write_shutdown_file(char_data *ch); void write_to_buffer( connection_data *d, const char *txt, int length ); void write_to_buffer_bw( connection_data *d, const char *txt, int length ); void exit_clean(int exitcode, char *function, char *message); // exiting cleanly void exit_error(int exitcode, char *function, char *message); // exiting due to some error condition void sleep_seconds(int seconds); /**************************************************************************/ // d2magsys.cpp void on_level_learn( char_data *ch ); /**************************************************************************/ // db.cpp bool str_cmp( const char *astr, const char *bstr ); bool str_infix( const char *substring, const char *contained_within ); bool str_prefix( const char *prefix, const char *fullstring); bool str_suffix( const char *astr, const char *bstr ); char *capitalize( const char *str ); char fread_letter( FILE *fp ); char *fread_string( FILE *fp ); char *fread_string_eol( FILE *fp ); char *fread_word( FILE *fp ); char *get_extra_descr( const char *name, EXTRA_DESCR_DATA *ed ); char *icapitalize( const char *str ); char *ltrim_string( const char *str ); char *rtrim_string( const char *str ); char *flags_print( int flag ); int flags_read(char *flagtext); char *str_dup( const char *str ); void free_speedwalk( connection_data *d ); int dice( int number, int size ); int fread_number( FILE *fp ); int interpolate( int level, int value_00, int value_32 ); int number_bits( int width ); int number_door( void ); int number_fuzzy( int number ); int number_percent( void ); int number_range( int from, int to ); long flag_convert( char letter); long fread_flag( FILE *fp ); long number_mm( void ); void *alloc_mem_old( int sMem ); void *alloc_perm( int sMem ); void append_file( char_data *ch, char *file, char *str ); void area_update( void ); void boot_db( void ); void bug( const char *str); void clone_mobile( char_data *parent, char_data *clone ); void clone_object( OBJ_DATA *parent, OBJ_DATA *clone ); void fread_to_eol( FILE *fp ); void free_mem_old( void *pMem, int sMem ); void free_string( char *pstr ); void fulltime_log_string( const char *str ); void hide_tilde( char *str ); void load_disabled( void ); void log_string( const char *str ); void log_hold_till_commandline_options_parsed(); void log_release_held_logs(); void log_string_core(const char *str ); void dawnlog_write_index(char *str); void log_bar(); // draw a line of *'s in the logs on a line without the time void log_note(const char *str); // logs the note with *'s above and below void reset_area( AREA_DATA * pArea ); void reset_room( ROOM_INDEX_DATA *pRoom, bool unconditional ); void save_disabled( void ); void max_count_ip_calc(); void show_tilde( char *str ); void smash_tilde( char *str ); void sort_arealists( void ); void tail_chain( void ); CD *create_mobile( MOB_INDEX_DATA *pMobIndex, int level ); MID *get_mob_index( int vnum ); MPC *get_mprog_index( int vnum ); OD *create_object( OBJ_INDEX_DATA *pObjIndex); OID *get_obj_index( int vnum ); RID *get_room_index( vn_int vnum ); OD *get_random_obj( char_data* mob ); /**************************************************************************/ // dawnlib.cpp int str_len( const char *s ); int is_alpha( char c ); int is_alnum( char c ); int is_ascii( char c ); int is_digit( char c ); int is_lower( char c ); int is_print( char c ); int is_space( char c ); int is_upper( char c ); void manage_dynamic_buffer(char **result, int max_length); char *trim_trailing_carriage_return_line_feed(char *str); /**************************************************************************/ // dynamics.cpp void addlist(name_linkedlist_type **list,char *name, int tag, bool duplicates, bool reversed); /**************************************************************************/ // effect.cpp void acid_effect(void *vo, int level, int dam, int target ); void cold_effect(void *vo, int level, int dam, int target ); void fire_effect(void *vo, int level, int dam, int target ); void poison_effect(void *vo, int level, int dam, int target ); void shock_effect(void *vo, int level, int dam, int target ); /**************************************************************************/ // exitlist.cpp char *area_name(AREA_DATA *pArea); /**************************************************************************/ // fight.cpp bool can_initiate_combat( char_data *attacker, char_data *victim, int type ); int damage( char_data *ch, char_data *victim, int dam, int dt, int clss, bool show ); int damage_spell( char_data *ch, char_data *victim, int dam, int dt, int clss, bool show ); bool is_safe(char_data *ch, char_data *victim ); bool is_safe_spell(char_data *ch, char_data *victim, bool area ); bool mobRememberCH( char_data *ch, char_data *victim ); void kill_char( char_data *victim, char_data *ch ); void mobRememberClear( char_data *ch ); void mobRememberSet( char_data *ch, char_data *victim ); void multi_hit( char_data *ch, char_data *victim, int dt ); void one_hit( char_data *ch, char_data *victim, int dt, bool secondary ); void raw_kill( char_data *ch, char_data *killer ); void stop_fighting( char_data *ch, bool fBoth ); void update_pos( char_data *victim ); void violence_update( void ); /**************************************************************************/ // handler.cpp bool player_on_rooms_invite_list(char_data *ch, ROOM_INDEX_DATA *room); const flag_type *affect_get_bitvector_table_for_where(int where); bool can_drop_obj( char_data *ch, OBJ_DATA *obj ); bool can_see( char_data *looker, char_data *victim ); bool can_see_obj( char_data *looker, OBJ_DATA *obj ); bool can_see_room( char_data *looker, ROOM_INDEX_DATA *pRoomIndex ); bool can_see_who( char_data *looker, char_data *victim ); bool check_defrauding_argument(char_data *ch, char *argument ); bool has_colour(const char *s); bool has_space(const char *s); bool has_whitespace(const char *s); bool is_affected( char_data *ch, int sn ); bool is_clan( char_data *ch ); bool is_exact_name( const char *str, const char *namelist ); bool is_name( const char *str, const char *namelist ); bool is_name_infix( const char *str, const char *namelist ); bool is_room_owner( char_data *ch, ROOM_INDEX_DATA *room ); bool is_same_clan( char_data *ch, char_data *victim ); bool room_is_dark( ROOM_INDEX_DATA *pRoomIndex ); bool room_is_private( ROOM_INDEX_DATA *pRoomIndex ); bool is_room_private_to_char( ROOM_INDEX_DATA *pRoomIndex, char_data *ch ); char *act_bit_name( int act_flags ); char *act2_bit_name( int act_flags ); char *affect_bit_name( int vector ); char *affect2_bit_name( int vector ); char *affect_loc_name( int location ); char *area_fname( AREA_DATA *pArea); char *comm_bit_name( int comm_flags ); char *cont_bit_name( int cont_flags); char *extra_bit_name( int extra_flags ); char *extra2_bit_name( int extra_flags ); char *form_bit_name( int form_flags ); char *imm_bit_name( int imm_flags ); char *item_name( int item_type ); char *item_type_name( OBJ_DATA *obj ); char *LONGPERS( char_data *ch, char_data *looker); char *lowercase( const char *str ); char *off_bit_name( int off_flags ); char *part_bit_name( int part_flags ); char *percent_colour_code(sh_int val); // Kal char *percent_colour_codebar(void); // Kal char *PERS( char_data *ch, char_data *looker); char *preference_word(PREFERENCE_TYPE pt); char *room_flags_bit_name(int room_flags); char *shortdate(time_t *tm); char *shorttime(time_t *tm); char *str_width(const char *s, int width); char *to_affect_string( AFFECT_DATA *paf, int objects_level ); char *underscore_word(char *word); char *uppercase( const char *str ); char *weapon_bit_name ( int bits); char *weapon_name( int weapon_Type ); char *wear_bit_name ( int wear_flags ); char *YOU_PERS( char_data *ch, char_data *looker); int apply_ac( OBJ_DATA *obj, int iWear, int type ); int c_str_len(const char *s); int can_carry_n( char_data *ch ); int can_carry_w( char_data *ch ); int check_immune( char_data *ch, int dam_type ); int count_affected_by_base_spell( char_data *ch, int parentspell_sn ); int count_obj_list( OBJ_INDEX_DATA *obj, OBJ_DATA *list ); int count_users( OBJ_DATA *obj ); int count_char( const char *buffer, char character); int get_max_train( char_data *ch, int stat ); int get_obj_number( OBJ_DATA *obj ); int get_obj_weight( OBJ_DATA *obj ); int get_skill ( char_data *ch, int sn ); int get_true_weight( OBJ_DATA *obj ); int get_trust( char_data *ch ); int get_next_uid(); int get_uid(const char *); // text input is in form #uid int get_weapon_skill( char_data *ch, int sn ); int get_weapon_sn( char_data *ch ); int num_enemies( char_data *ch ); int weapontype( const char *name ); void affect_check( char_data *ch, int where, int vector ); void affects_from_template_to_obj(OBJ_DATA *obj); void affect_fly_update( char_data *ch ); void affect_join( char_data *ch, AFFECT_DATA *paf ); void affect_remove( char_data *ch, AFFECT_DATA *paf ); void affect_remove_obj( OBJ_DATA *obj, AFFECT_DATA *paf ); void affect_remove_room( ROOM_INDEX_DATA *room, AFFECT_DATA *paf ); void affect_strip ( char_data *ch, int sn ); void affect_to_char( char_data *ch, AFFECT_DATA *paf ); void affect_to_obj( OBJ_DATA *obj, AFFECT_DATA *paf ); void affect_to_room( ROOM_INDEX_DATA *room, AFFECT_DATA *paf ); void affect_to_skill( char_data *ch, int sn, int amount ); void affect_parentspellfunc_strip( char_data *ch, int sn ); void append_datetime_ch_to_file( char_data *, const char *file, const char *str ); void append_datetimestring_to_file( const char *, const char *); void append_logentry_to_file( char_data *, char *file, char *str ); void append_newbie_support_log ( char_data *, char *); void append_playerlog ( char_data *, char *); void append_string_to_file ( const char *file, const char *str, bool newline); void append_timestring_to_file ( const char *, const char *); void bash_eq( char_data *ch, int chance ); void center_to_char(char *argument, char_data *ch, int columns); void println_delayed_to_room(int seconds, room_index_data *room, char_data *all_but_this_person, const char *text); void char_from_room( char_data *ch ); void char_to_room( char_data *ch, ROOM_INDEX_DATA *pRoomIndex ); void deduct_cost ( char_data *ch, int cost ); void equip_char( char_data *ch, OBJ_DATA *obj, int iWear ); void extract_char( char_data *ch, bool fPull ); void extract_obj( OBJ_DATA *obj ); void limit_mobile_wealth(char_data *mob); void obj_from_char( OBJ_DATA *obj ); void obj_from_obj( OBJ_DATA *obj ); void obj_from_room( OBJ_DATA *obj ); void obj_to_char( OBJ_DATA *obj, char_data *ch ); void obj_to_obj( OBJ_DATA *obj, OBJ_DATA *obj_to ); void obj_to_room( OBJ_DATA *obj, ROOM_INDEX_DATA *pRoomIndex ); void reset_char( char_data *ch ); void unequip_char( char_data *ch, OBJ_DATA *obj ); void process_moblog(char_data *ch, const char *txt); AD *affect_find ( AFFECT_DATA *paf, int sn ); CD *get_char_icworld( char_data *ch, char *argument ); CD *get_char_room( char_data *ch, char *argument ); CD *get_char_world( char_data *ch, char *argument ); CD *get_pet_room( char_data *ch, char *argument ); CD *get_whovis_player_world( char_data *ch, char *argument ); // called by tell OD *create_money( int gold, int silver ); OD *get_eq_char( char_data *ch, int iWear ); OD *get_obj_type( OBJ_INDEX_DATA *pObjIndexData ); OD *get_obj_of_type_in_room( OBJ_INDEX_DATA *pObjIndex, ROOM_INDEX_DATA *room ); OD *get_obj_list( char_data *ch, char *argument, OBJ_DATA *list ); OD *get_obj_carry( char_data *ch, char *argument ); OD *get_obj_wear( char_data *ch, char *argument ); OD *get_obj_carry_for_looker( char_data *ch, char *argument, char_data *looker); OD *get_obj_here( char_data *ch, char *argument ); OD *get_obj_world( char_data *ch, char *argument ); OD *get_obj_token( char_data *ch, char *argument ); char *convert24hourto12hour(int hour); char *autodamtext(char_data *ch, int damage_amount); /**************************************************************************/ // interp.cpp bool is_number( const char *arg ); char *one_argument( const char *argument, char *arg_first ); int number_argument( char *argument, char *arg ); int mult_argument( char *argument, char *arg); void interpret( char_data *ch, char *argument ); DECLARE_DO_FUN( do_olc ); DECLARE_DO_FUN( do_asave ); DECLARE_DO_FUN( do_alist ); DECLARE_DO_FUN( do_vlist ); DECLARE_DO_FUN( do_resets ); DECLARE_DO_FUN( do_redit ); DECLARE_DO_FUN( do_aedit ); DECLARE_DO_FUN( do_medit ); DECLARE_DO_FUN( do_oedit ); DECLARE_DO_FUN( do_mpedit ); DECLARE_DO_FUN( do_disable ); DECLARE_DO_FUN( do_pdisable ); // Kalahn - Aug 97 DECLARE_DO_FUN( do_penable ); // Kalahn - Aug 97 /**************************************************************************/ // ispell.cpp char *get_ispell_line( char *word ); void ispell_done(void); void ispell_init(void); void ispell_string( char_data *ch ); /**************************************************************************/ // language.cpp void translate_language(language_data *language, bool display_language, char_data * speaker, char_data * listener, const char *message, char *output); language_data *language_exact_lookup(const char *name); language_data *language_lookup(const char *name); language_data *language_safe_lookup(const char *name); language_data *language_lookup_by_id(int id); language_data *language_safe_lookup_by_id(int id); bool language_dynamic_command(char_data *ch, char *command, char *argument); void language_init_gsn_and_unique_id(); void languages_load_and_initialise(); void languages_assign_gsn_values(); /**************************************************************************/ // laston.cpp char *short_timediff(time_t, time_t); char *timediff(time_t, time_t); void laston_close_all(); void laston_logout( char_data *ch ); void resort_top_roleplayers(); /**************************************************************************/ // lookup.cpp int coreclass_exact_lookup( const char *name ); int coreclass_lookup( const char *name ); int council_lookup( const char *name ); int dir_lookup( char *dir ); int item_lookup( const char *name ); int liq_lookup( const char *name ); int pcrace_lookup( const char *name ); DEITY_DATA *deity_lookup( char *name ); /**************************************************************************/ // magic.cpp bool check_dispel ( int dis_level, char_data *victim, int sn ); bool saves_spell ( int level, char_data *victim, int dam_type ); int find_spell( char_data *ch, const char *name, bool spellonly ); int skill_exact_lookup( const char *name ); int skill_lookup( const char *name ); void obj_cast_spell( int sn, int level, char_data *ch, char_data *victim, OBJ_DATA *obj ); /**************************************************************************/ // mob_prog.cpp bool mp_exit_trigger( char_data *ch, int dir ); bool mp_percent_trigger( char_data *mob, char_data *ch, const void *arg1, const void *arg2, int type ); void mp_act_trigger( char *argument, char_data *mob, char_data *ch, const void *arg1, const void *arg2, int type ); bool mp_cmd_trigger( char *argument, char_data *mob, char_data *ch, const void *arg1, const void *arg2, int type ); void mp_bribe_trigger( char_data *mob, char_data *ch, int amount ); bool mp_would_run_give_trigger( char_data *mob, char_data *ch, OBJ_DATA *obj ); void mp_give_trigger( char_data *mob, char_data *ch, OBJ_DATA *obj ); void mp_greet_trigger( char_data *ch ); void mp_hour_trigger( char_data *ch ); void mp_hprct_trigger( char_data *mob, char_data *ch ); bool mp_premove_trigger( char_data *ch, int vnum, int dir ); void program_flow( MPROG_LIST *program, char_data *mob, char_data *ch, const void *arg1, const void *arg2 ); /**************************************************************************/ // mob_cmds.cpp void mob_interpret ( char_data *ch, char *argument ); /**************************************************************************/ // mudftp.cpp bool ftp_push(connection_data *d); /**************************************************************************/ // noble.cpp void resolve_moot(void); /**************************************************************************/ // notes.cpp char *get_notetype( int index ); char *note_format_string( char * input); // note: input strings must be str_dup'ed and are freed, with the result str_duped char *note_format_string_width( char *input, int width, bool returns, bool trailing_newline); // note: input strings must be str_dup'ed and are freed, with the result str_duped void autonote( int type, char *sender, char *subject, char *to, char *text, bool refomat ); /**************************************************************************/ // olc.cpp bool run_olc_editor( connection_data *d ); char *olc_ed_name( char_data *ch ); char *olc_ed_vnum( char_data *ch ); /**************************************************************************/ // olc_save.cpp void do_hsave( char_data *ch, char *); char *fix_string( const char *str ); /**************************************************************************/ // pipe.cpp char *get_piperesult( char *cmd ); /**************************************************************************/ // recycle.cpp void free_affect(AFFECT_DATA *af ); void free_extra_descr(EXTRA_DESCR_DATA *ed ); /**************************************************************************/ // resolve.cpp void resolver_send_data( const char * buf); void resolverlocal_queue_command(const char *line); void resolverlocal_execute_queued_commands(); /**************************************************************************/ // save.cpp bool load_char_obj( connection_data *d, char *name ); char *percent_colour_code(sh_int val); // Kal char *percent_colour_codebar(void); // Kal char *pfilename(char *name, PFILE_TYPE ptype); char *pfile_filename(char *name);// returns the <lowercasefirstname>.plr void do_save_finger( char_data *ch ); void save_char_obj( char_data *ch ); PFILE_TYPE get_pfiletype(char_data *ch); PFILE_TYPE find_pfiletype(const char *name); void fwrite_obj( obj_data *obj, FILE *fp, int iNest, char *heading ); obj_data * fread_obj( FILE *fp, const char *filename ); /**************************************************************************/ // saymote.cpp void saymote( language_data *language, char_data *ch, char *argument, int sayflags); /**************************************************************************/ // skills.cpp bool parse_gen_groups( char_data *ch,char *argument ); int exp_per_level( char_data *ch, int points ); int skillgroup_exact_lookup(const char *name); int skillgroup_lookup(const char *name); void check_improve( char_data *ch, int sn, bool success, int multiplier ); void gn_add( char_data *ch, int gn); void gn_remove( char_data *ch, int gn); void group_add( char_data *ch, const char *name, bool deduct, int percent); void group_remove( char_data *ch, const char *name); void list_group_costs( char_data *ch ); void list_group_known( char_data *ch ); /**************************************************************************/ // special.cpp char *ospec_name( OSPEC_FUN *function ); char *spec_name( SPEC_FUN *function ); char *spec_string( SPEC_FUN *fun ); OSF *ospec_lookup( const char *name ); SF *spec_lookup( const char *name ); /**************************************************************************/ // string.cpp char *first_arg( char *argument, char *arg_first, bool force_lowercase); char *format_string( char *oldstring /*, bool fSpace */ ); char *string_proper( char * argument ); char *string_replace( char * orig, char * old, char * newstr ); // assumes str_dup input char *string_replace_all( char * orig, char * old, char * newstr ); // assumes str_dup input void string_add( char_data *ch, char *argument ); void string_append( char_data *ch, char **pString ); char *string_remove_name(char *str, char *name); /**************************************************************************/ // support.cpp bool codehelp( char_data *ch, char *keyword, int report_unfound_flags); /**************************************************************************/ // update.cpp int get_magecastmod(void); void advance_level( char_data *ch ); void check_perm_damage( char_data *ch ); void do_heroxp( char_data *ch, int xp ); void drop_level( char_data *ch ); void gain_exp( char_data *ch, int gain ); void gain_condition( char_data *ch, int iCond, int value ); void update_handler( void ); //*************************************************** //* END OF FUNCTION PROTOTYPES //*************************************************** #ifdef WIN32 bool file_exists(const char * fmt, ...); char *makef_titlebar(char *fmt, ...); void broadcast(char_data *except, char * fmt, ...); void bugf (char * fmt, ...); void boundsbug(char * fmt, ...); void mpbug(char * fmt, ...); void centerf_to_char( char_data *ch, int cols, char *fmt, ...); void logf (char * fmt, ...); void log_notef(char * fmt, ...); void pkill_broadcast(char * fmt, ...); void multilog_alertf(char_data *ch, char * fmt, ...); void info_broadcast(char_data *ch, char * fmt, ...); #else bool file_exists(const char * fmt, ...) __attribute__ ((format(printf,1,2))); char *makef_titlebar(char *fmt, ...) __attribute__ ((format(printf,1,2))); void broadcast(char_data *except, char * fmt, ...) __attribute__ ((format(printf,2,3))); void bugf(char * fmt, ...) __attribute__ ((format(printf,1,2))); void boundsbug(char * fmt, ...) __attribute__ ((format(printf,1,2))); void mpbug(char * fmt, ...) __attribute__ ((format(printf,1,2))); void centerf_to_char( char_data *ch, int cols ,char *fmt, ...) __attribute__ ((format(printf, 3,4))); void logf(char * fmt, ...) __attribute__ ((format(printf,1,2))); void log_notef(char * fmt, ...) __attribute__ ((format(printf,1,2))); void pkill_broadcast(char * fmt, ...) __attribute__ ((format(printf,1,2))); void multilog_alertf(char_data *ch, char * fmt, ...) __attribute__ ((format(printf,2,3))); void info_broadcast(char_data *ch, char * fmt, ...) __attribute__ ((format(printf,2,3))); #endif #ifdef WIN32 void gettimeofday( struct timeval *tp, void *tzp ); #ifdef unix #undef unix #endif #endif char *dot_crypt(const char *buf, const char *salt); int mg_crypt_msg(char *input, char *encoded); bool is_valid_password(const char *attempt, const char *password, connection_data *d); #undef CD #undef MID #undef OD #undef OID #undef RID #undef SF #undef OSF #undef AD #endif // PROTOTYPE_H