#ifndef factions_h__ #define factions_h__ DECLARE_DO_FUN( do_factionedit ); DECLARE_DO_FUN( do_factionfind ); DECLARE_DO_FUN( do_mpchangefaction ); DECLARE_DO_FUN( show_faction_standings ); typedef struct factionlist_data FACTIONLIST_DATA; typedef struct factionaff_data FACTIONAFF_DATA; typedef struct factionpc_data FACTIONPC_DATA; extern FACTIONLIST_DATA *faction_first; extern FACTIONLIST_DATA *faction_last; extern const struct olc_cmd_type factionedit_table[]; /* Struct for list of factions available in the MUD */ struct factionlist_data { sh_int vnum; char *name; char *increase_msg; char *decrease_msg; FACTIONLIST_DATA *next; }; /* Struct for list of factions affected when a char is killed */ struct factionaff_data { FACTIONLIST_DATA *faction; sh_int change; FACTIONAFF_DATA *next; }; /* Struct for list of current faction values for a player */ struct factionpc_data { FACTIONLIST_DATA *faction; sh_int value; FACTIONPC_DATA *next; }; /* Function prototypes */ void load_factionaffs args( ( FILE *fp ) ); void load_factions args( ( FILE *fp ) ); void save_factions args( ( void ) ); void factionedit args( ( CHAR_DATA *ch, char *argument ) ); FACTIONLIST_DATA *new_faction args( ( void ) ); FACTIONLIST_DATA *get_faction_by_vnum args( ( sh_int vnum ) ); bool factedit_show args( ( CHAR_DATA *ch, char *argument ) ); bool factedit_create args( ( CHAR_DATA *ch, char *argument ) ); bool factedit_name args( ( CHAR_DATA *ch, char *argument ) ); bool factedit_increase args( ( CHAR_DATA *ch, char *argument ) ); bool factedit_decrease args( ( CHAR_DATA *ch, char *argument ) ); bool medit_faction args( ( CHAR_DATA *ch, char *argument ) ); void affect_factions args( ( CHAR_DATA *ch, CHAR_DATA *victim ) ); void fread_faction_standings args( ( CHAR_DATA *ch, FILE *fp ) ); void fwrite_faction_standings args( ( CHAR_DATA *ch, FILE *fp ) ); void free_faction_standings args( ( FACTIONPC_DATA *pFactPC ) ); char *faction_con_msg args( ( sh_int value ) ); sh_int faction_percentage args( ( sh_int value ) ); sh_int consider_factions args( ( CHAR_DATA *ch, CHAR_DATA *victim, bool show ) ); void set_faction args( ( CHAR_DATA *ch, CHAR_DATA *victim, sh_int vnum, sh_int value ) ); void faction_stat args( ( CHAR_DATA *ch, CHAR_DATA *victim ) ); double faction_cost_multiplier args( ( CHAR_DATA *ch, CHAR_DATA *keeper, bool buy ) ); char *add_to_buf args( ( char *buffer, char *txt ) ); #endif