sunder2.1a/clan/
sunder2.1a/class/
sunder2.1a/class/bak/
sunder2.1a/doc/ideas/
sunder2.1a/gods/
sunder2.1a/i3/
sunder2.1a/log/
sunder2.1a/msgbase/
sunder2.1a/player/
sunder2.1a/src/o/
sunder2.1a/time/
/**********************************************************
 *************** S U N D E R M U D *** 2 . 0 **************
 **********************************************************
 * The unique portions of the SunderMud code as well as   *
 * the integration efforts for code from other sources is *
 * based primarily on the efforts of:                     *
 *                                                        *
 * Lotherius <aelfwyne@operamail.com> (Alvin W. Brinson)  *
 *    and many others, see "help sundermud" in the mud.   *
 **********************************************************/

#ifndef _CLAN_H
# define _CLAN_H   1

# define MAX_CLANAREAS   5
# define MAX_CLANMEMBERS 50

# define RANK_LEADER	     	5
# define RANK_TWO	     	4
# define RANK_THREE	     	3
# define RANK_FOUR	     	2
# define RANK_FIVE	     	1
# define RANK_BOTTOM      	0

# define CLAN_NEW         	0   // Clan is new and unrecognized.
# define CLAN_PROBATION   	1   // Clan needs to clean up its shit or begone.
# define CLAN_UNDERGROUND 	2   // Clan is "underground" and does not want/ cannot have, recognition
# define CLAN_RECOGNIZED  	3   // Clan is recognized by IMMs. Anything this high or higher will show on clist
# define CLAN_RENEW       	4   // Something needs checked on the clan.

struct clan_area_type
{
     struct clan_area_type     *next;  	/* Next Area */
     AREA_DATA 		       *area;		/* The area controlled */
     int			areatax;	/* Tax on the area */
     long			totaltax;	/* Tax collected */
     int			guards;		/* Number of guards in this area */
     sh_int		    	yeartaken;	/* Year area taken */
     sh_int		    	monthtaken;	/* Month area taken */
     sh_int	        	daytaken;	/* Day area taken */
};

struct clan_member_type
{
     struct clan_member_type   *next;		/* Next member */
     char 		       *member_name;	/* Name duh */
     sh_int			year_joined;	/* Dates */
     sh_int			month_joined;
     sh_int			day_joined;
     long			taxpaid;
     sh_int			clanrank;
};

struct clan_main_type
{
     struct clan_main_type   *next;

     // To increase the possible amount of wars, simply add more pointers here,
     // and update the requisite code in clan.c
     // I didn't use a MAX_ type counter for simplicity elsewhere. If you add
     // more, it may work better to use a struct here
     //
     struct clan_main_type   *war_a;  /* At war with X clan */
     struct clan_main_type   *war_b;  /* At war with Y clan */

     ROOM_INDEX_DATA         *hq;    /* Pointer to Clan's HQ */

	 /*  struct clan_member_type *clan_members[MAX_CLANMEMBERS];
	  struct clan_area_type   *clanareas[MAX_CLANAREAS]; */

     char      *clan_name;		/* The Clan "LongName" */
     char      *clan_short;		/* The Clan "ShortName" Keyword */
     char      *mranks[6];		/* 6 male ranks */
     char      *franks[6];		/* 6 female ranks */
     int  	portalto;	    	/* VNum where the clan portal goes, vnum of HQ! */
     bool 	nosave;			/* If true, clan will not save for next boot. */
     sh_int 	status;     		/* Clan Status */
     int  	clanpk;			/* Number of times the clan has won PKill */
     int  	clandie;		/* Number of times the clan has lost PKill */
     long 	clanbank;	    	/* Clan Bank Account */
     int  	clanmtax;	    	/* Tax on clan's members */
     int  	membercount;		/* How many members now? */
     char      *reason;      		/* Reason an imm has done something to the clan. Usually involving non-recognition. */
     bool 	pkallow;      		/* Does this clan even ALLOW PKill -- if not, can't have a stronghold, declare or set bounties */
     bool 	autoaccept;   		/* Accept anyone who wants to join this clan automatically? */
     int  	moveyear;     		/* Year the clan stronghold was moved. Can't be moved again for 3 years, unless forced */
     char      *demigod;     		/* The demigod to whom this clan owes alliegence */
     bool 	demiapprove;  		/* Does the Demi-God approve of the clan */
     int  	experience;   		/* Clan experience -- Gained through various activities */
     int  	join_level;   		/* Minimum level to join the clan */
     int  	join_cost;    		/* Cost in Gold to join the clan */
     int  	join_minalign; 		/* Minimum alignment to join the clan */
     int  	join_maxalign; 		/* Maximum alignment to join the clan */
	 /* Set the ranks */
     int  	rank_setjoin;  		/* Lowest rank that can set the joining level & cost */
     int  	rank_recruit; 		/* Lowest rank that can recruit	someone */
     int  	rank_outcast; 		/* Lowest rank that can outcast someone lower than them */
     int  	rank_promote; 		/* Lowest rank that can promote a member */
     int  	rank_demote;  		/* Lowest rank that can demote a member */
     int  	rank_settax;  		/* Lowest rank that can set a tax. */
     int  	rank_declare; 		/* Lowest rank that can declare Wars against other clans or Holy Wars */
     int  	rank_claim;   		/* Lowest rank that can claim an area in the name of the clan */
     int 	rank_bounty;  		/* Lowest rank that can set bounties. */
     int 	rank_recall;  		/* Lowest rank that can recall to the clan stronghold */
     int  	rank_move;    		/* Lowest rank that can move the clan stronghold */
};

typedef struct clan_main_type	CLAN_INDEX;
extern  struct clan_main_type	* clan_list;
void    handle_edit_clan args ( ( DESCRIPTOR_DATA *d, char *argument ) );

#endif // _CLAN_H