cthulu3/
cthulu3/backup/
cthulu3/distribution/
cthulu3/gods/
cthulu3/html/help/basic/
cthulu3/html/help/skills/
cthulu3/log/
cthulu3/player/
/*
 * CthulhuMud
 */

#define SOC_TYPE_SECRET		-1
#define SOC_TYPE_NONE		 0
#define SOC_TYPE_CLAN		 1
#define SOC_TYPE_RACE		 2
#define SOC_TYPE_POLITICAL	                 3
#define SOC_TYPE_CULT		                 4
#define SOC_TYPE_GUARD	                 5
#define SOC_TYPE_MAX		                 5

#define SOC_RANK_SUBSCRIBE		 -2
#define SOC_RANK_SUSPENDED		 -1
#define SOC_RANK_NONE		 0
#define SOC_RANK_MEMBER		 1
#define SOC_RANK_COUNCIL	                 2
#define SOC_RANK_LEADER		 3

#define SOC_AUTH_NONE		 0x0000
#define SOC_AUTH_INVITE		 0x0001
#define SOC_AUTH_EXPEL		 0x0002
#define SOC_AUTH_BANK		 0x0004
#define SOC_AUTH_AUTH		 0x0008
#define SOC_AUTH_PROMOTE	                 0x0010
#define SOC_AUTH_DEMOTE		 0x0020
#define SOC_AUTH_TEST		 0x0040
#define SOC_AUTH_FOE		                 0x0080
#define SOC_AUTH_PARDON		 0x0100
#define SOC_AUTH_TAX		 0x0200
#define SOC_AUTH_LAW		 0x0400

#define SOC_LEVEL_MEMBERSHIP 	 0
#define SOC_LEVEL_EXPEL		-1
#define SOC_LEVEL_INVITED	-1
#define SOC_LEVEL_FOE		-2

/* Management for socialites... */

SOCIALITE 	*get_socialite		(void);
void 		free_socialite		(SOCIALITE *old_socialite);
SOCADV 	*get_socadv		(void);
void 		free_socadv		(SOCADV *old_socadv);
SOCIETY 	*get_society		(void);
void 		free_society		(SOCIETY *old_society);
MEMBERSHIP 	*get_membership		(void);
void 		free_membership		(MEMBERSHIP *old_membership);
SOCIETY 	*find_society_by_id	(int id);
SOCIALITE 	*find_socialite		(SOCIETY *society, char *name);
MEMBERSHIP 	*find_membership	(CHAR_DATA *ch, SOCIETY *society);
void 		load_societies		(void);
void 		load_society_members	(void);
void 		save_char_society	(CHAR_DATA *ch, FILE *fp);
MEMBERSHIP 	*read_char_society	(FILE *fp);
bool 		is_member		(CHAR_DATA *ch, SOCIETY *society);
void 		create_membership	(CHAR_DATA *ch, SOCIETY *society, int rank);
void 		default_memberships	(CHAR_DATA *ch);
void 		check_memberships	(CHAR_DATA *ch);
void 		save_socialites		(void);
bool 		skill_available_by_society	(int sn, CHAR_DATA *ch);
bool 		is_friend			(CHAR_DATA *mob1, CHAR_DATA *mob2);
bool 		is_foe			(CHAR_DATA *mob1, CHAR_DATA *mob2);
void 		resolve_revolt		( SOCIETY *society);
void 		do_society_tax		(CHAR_DATA *ch, char *argument);
int 		soc_tax			(CHAR_DATA *ch, int gold, int currency);