#ifndef __OVERHEAD_TYPES_H
#define __OVERHEAD_TYPES_H
// GLOBAL HEADER FOR DATA, TYPES FOR TACTICAL ENGINE


#define REFINE_AIM_1					0
#define REFINE_AIM_MID1				1
#define REFINE_AIM_2					2
#define REFINE_AIM_MID2				3
#define REFINE_AIM_3					4
#define REFINE_AIM_MID3				5
#define REFINE_AIM_4					6
#define REFINE_AIM_MID4				7
#define REFINE_AIM_5					8
#define REFINE_AIM_BURST			-1	// SANDRO - I've changed this from 10 to -1, so when the code asks about how much we aim, it does not return this high value when we don't aim at all
										// hopefully, it will not cause any troubles anywhere .. it shouldn't 

#define AIM_SHOT_RANDOM				0
#define AIM_SHOT_HEAD					1
#define AIM_SHOT_TORSO				2
#define AIM_SHOT_LEGS					3
#define AIM_SHOT_GLAND				4

#define MIN_AMB_LEVEL_FOR_MERC_LIGHTS		9


#define		MAXTEAMS_SP				6 // WANNE: for singleplayer
#define     MAXTEAMS				11 //hayden
#define		MAXMERCS				MAX_NUM_SOLDIERS

//TACTICAL OVERHEAD STUFF
//#define			NO_SOLDIER			TOTAL_SOLDIERS // SAME AS NOBODY
//#define			NOBODY				NO_SOLDIER
#define				NOBODY				TOTAL_SOLDIERS




// TACTICAL ENGINE STATUS FLAGS
#define			REALTIME						0x000000002
#define			TURNBASED						0x000000004
#define			IN_ENDGAME_SEQUENCE			 		0x000000008
#define			SHOW_ALL_ITEMS											0x000000010
#define			SHOW_AP_LEFT												0x000000020
#define			SHOW_ALL_MERCS											0x000000040
#define			TRANSLUCENCY_TYPE										0x000000080
#define			GODMODE															0x000000100
#define			DEMOMODE														0x000000200
#define			PLAYER_TEAM_DEAD										0x000000400
#define			NPC_TEAM_DEAD												0x000000800
#define			DISALLOW_SIGHT											0x000001000
#define			CHECK_SIGHT_AT_END_OF_ATTACK				0x000002000
#define	 IN_CREATURE_LAIR					0x000004000
#define			HIDE_TREES													0x000008000
#define			NOHIDE_REDUNDENCY										0x000010000
#define			DEBUGCLIFFS													0x000020000
#define			INCOMBAT														0x000040000
#define			WANT_MILITIA_REINFORCEMENTS										0x000080000
#define			ACTIVE															0x000100000
#define			SHOW_Z_BUFFER												0x000200000
#define			SLOW_ANIMATION											0x000400000
#define			ENGAGED_IN_CONV											0x000800000
#define			LOADING_SAVED_GAME									0x001000000
#define			OUR_MERCS_AUTO_MOVE									0x002000000
#define			SHOW_ALL_ROOFS											0x004000000
#define			NEWLY_ENTERED_SECTOR								0x008000000
#define			RED_ITEM_GLOW_ON										0x010000000				
#define			IGNORE_ENGAGED_IN_CONV_UI_UNLOCK		0x020000000
#define			IGNORE_ALL_OBSTACLES								0x040000000
#define			IN_DEIDRANNA_ENDGAME								0x080000000
#define			DONE_DEIDRANNA_ENDGAME							0x100000000
	
#define			OKBREATH						10
#define			OKLIFE							15
#define			CONSCIOUSNESS				10

// VIEWRANGE DEFINES
#define	 NORMAL_VIEW_RANGE					13
#define			MIN_RANGE_FOR_BLOWNAWAY		40

// MODIFIERS FOR AP COST FOR MOVEMENT 
#define RUNDIVISOR				1.8
#define WALKCOST					-1
#define SWATCOST					0
#define CRAWLCOST					1

// CHRISL: AP Cost Movement modifiers when wearing a backpack
#define RUNDIVISORBPACK				1.5
#define WALKCOSTBPACK					0
#define SWATCOSTBPACK					1
#define CRAWLCOSTBPACK					2

// defines
// ######################################################
#define MAX_PATH_LIST_SIZE		30
#define NUM_SOLDIER_SHADES		48
#define NUM_SOLDIER_EFFECTSHADES		2

// TIMER DELAYS
#define	DAMAGE_DISPLAY_DELAY		250
#define	FADE_DELAY							150
#define	FLASH_SELECTOR_DELAY		4000
#define	BLINK_SELECTOR_DELAY		250

#define PTR_OURTEAM	 (pSoldier->bTeam == gbPlayerNum)


#define DONTLOOK				0
#define LOOK						1


#define NOLOCATE		0
#define LOCATE			1

#define DONTSETLOCATOR									0
#define SETLOCATOR											1
#define SETANDREMOVEPREVIOUSLOCATOR			2
#define SETLOCATORFAST									3

#define NOCENTERING	 0


#define NOUPDATE		0
#define UPDATE			1


// ORDERS
enum
{
	STATIONARY = 0,		// moves max 1 sq., no matter what's going on
	ONGUARD,					// moves max 2 sqs. until alerted by something
	CLOSEPATROL,			// patrols within 5 spaces until alerted
	FARPATROL,				// patrols within 15 spaces
	POINTPATROL,			// patrols using patrolGrids
	ONCALL,						// helps buddies anywhere within the sector
	SEEKENEMY,				// not tied down to any one particular spot
	RNDPTPATROL,			// patrols randomly using patrolGrids
	SNIPER,					// snipes
	MAXORDERS
};

// ATTITUDES
enum
{
	DEFENSIVE = 0,
	BRAVESOLO,
	BRAVEAID,
	CUNNINGSOLO,
	CUNNINGAID,
	AGGRESSIVE,
	MAXATTITUDES,
	ATTACKSLAYONLY // special hyperaggressive vs Slay only value for Carmen the bounty hunter
};

// alert status types
enum
{
	STATUS_GREEN = 0,	// everything's OK, no suspicion
	STATUS_YELLOW,		// he or his friend heard something
	STATUS_RED,				// has definite evidence of opponent
	STATUS_BLACK,			// currently sees an active opponent
	NUM_STATUS_STATES
};

enum
{
	MORALE_HOPELESS = 0,
	MORALE_WORRIED,
	MORALE_NORMAL,
	MORALE_CONFIDENT,
	MORALE_FEARLESS,
	NUM_MORALE_STATES
};

// DEFINES FOR WEAPON HIT EVENT SPECIAL PARAM
#define		FIRE_WEAPON_NO_SPECIAL				0
#define		FIRE_WEAPON_BURST_SPECIAL			1
#define		FIRE_WEAPON_HEAD_EXPLODE_SPECIAL	2
#define		FIRE_WEAPON_CHEST_EXPLODE_SPECIAL	3
#define		FIRE_WEAPON_LEG_FALLDOWN_SPECIAL	4
#define		FIRE_WEAPON_HIT_BY_KNIFE_SPECIAL	5
#define		FIRE_WEAPON_SLEEP_DART_SPECIAL		6
#define		FIRE_WEAPON_BLINDED_BY_SPIT_SPECIAL 7
#define		FIRE_WEAPON_TOSSED_OBJECT_SPECIAL   8
#define		FIRE_WEAPON_BLINDED					9
#define		FIRE_WEAPON_DEAFENED				10
#define		FIRE_WEAPON_BLINDED_AND_DEAFENED	11
#define		FIRE_WEAPON_BLINDED_SPECIAL			12	// Flugente: works like FIRE_WEAPON_BLINDED_BY_SPIT_SPECIAL but without the damage dependency
#define		FIRE_WEAPON_VEHICLE_TRAUMA			13


#define NO_INTERRUPTS			0
#define ALLOW_INTERRUPTS		1


#define SIGHT_LOOK		0x1
//#define SIGHT_SEND		0x2	// no longer needed using LOCAL OPPLISTs
#define SIGHT_RADIO	 0x4
#define SIGHT_INTERRUPT 0x8
#define SIGHT_ALL		0xF


// CHANGE THIS VALUE TO AFFECT TOTAL SIGHT RANGE
//#define STRAIGHT_RANGE gGameExternalOptions.ubStraightSightRange

// CHANGE THESE VALUES TO ADJUST VARIOUS FOV ANGLES
#define STRAIGHT_RATIO	1 //* 1.5
#define ANGLE_RATIO			0.857 //* 1.5
#define SIDE_RATIO			0.571 //* 1.5
// CJC: Changed SBEHIND_RATIO (side-behind ratio) to be 0 to make stealth attacks easier
// Changed on September 21, 1998
//#define SBEHIND_RATIO		0.142
#define SBEHIND_RATIO		0
#define BEHIND_RATIO		0

// looking distance defines
//#define BEHIND			(INT8)( BEHIND_RATIO * STRAIGHT_RANGE )
//#define SBEHIND		 (INT8)( SBEHIND_RATIO * STRAIGHT_RANGE )
//#define SIDE			(INT8)( SIDE_RATIO * STRAIGHT_RANGE )
//#define ANGLE			(INT8)( ANGLE_RATIO * STRAIGHT_RANGE )
//#define STRAIGHT		(INT8)( STRAIGHT_RATIO * STRAIGHT_RANGE )
 

// opplist value constants
#define HEARD_3_TURNS_AGO		-4
#define HEARD_2_TURNS_AGO		-3
#define HEARD_LAST_TURN		 -2
#define HEARD_THIS_TURN		 -1
#define NOT_HEARD_OR_SEEN		0
#define SEEN_CURRENTLY			1
#define SEEN_THIS_TURN			2
#define SEEN_LAST_TURN			3
#define SEEN_2_TURNS_AGO		 4
#define SEEN_3_TURNS_AGO		 5

#define OLDEST_SEEN_VALUE			SEEN_3_TURNS_AGO
#define OLDEST_HEARD_VALUE	 HEARD_3_TURNS_AGO

#define UNDER_FIRE							2
#define UNDER_FIRE_LAST_TURN		1


#define		MAX_DISTANCE_FOR_PROXIMITY_SIGHT		15		




// DEFINES FOR BODY TYPE SUBSTITUTIONS
#define			SUB_ANIM_BIGGUYSHOOT2							0x00000001
#define			SUB_ANIM_BIGGUYTHREATENSTANCE			0x00000002


// Enumerate directions
enum WorldDirections
{
	NORTH = 0,
	NORTHEAST,
	EAST,
	SOUTHEAST,
	SOUTH,
	SOUTHWEST,
	WEST,
	NORTHWEST,
	NUM_WORLD_DIRECTIONS,
	DIRECTION_IRRELEVANT,
	DIRECTION_EXITGRID = 255,
};


// Starting Sector
// HEADROCK HAM 3.5: Externalized.
//UINT8 startingX = 9;
//UINT8 startingY = 1;
const int startingZ = 0;


// ENUMERATION OF SOLDIER POSIITONS IN GLOBAL SOLDIER LIST
// WDS - make number of mercenaries, etc. be configurable
#define CODE_MAXIMUM_NUMBER_OF_PLAYER_MERCS 256	//32
extern UINT16	giMAXIMUM_NUMBER_OF_PLAYER_MERCS;
#define CODE_MAXIMUM_NUMBER_OF_PLAYER_VEHICLES 20	//6
extern UINT16	giMAXIMUM_NUMBER_OF_PLAYER_VEHICLES;
#define CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS CODE_MAXIMUM_NUMBER_OF_PLAYER_MERCS+CODE_MAXIMUM_NUMBER_OF_PLAYER_VEHICLES
extern UINT16	giMAXIMUM_NUMBER_OF_PLAYER_SLOTS;
#define CODE_MAXIMUM_NUMBER_OF_ENEMIES 512	// 64
extern UINT16	giMAXIMUM_NUMBER_OF_ENEMIES;
#define CODE_MAXIMUM_NUMBER_OF_CREATURES 512	//40
extern UINT16	giMAXIMUM_NUMBER_OF_CREATURES;
#define CODE_MAXIMUM_NUMBER_OF_REBELS 512	//64
extern UINT16	giMAXIMUM_NUMBER_OF_REBELS;
#define CODE_MAXIMUM_NUMBER_OF_CIVS 512	//40
extern UINT16	giMAXIMUM_NUMBER_OF_CIVS;

// The following should be the largest from the above set of constants.
//   Note: Is there any way to compute this via the preprocessor?
#define LARGEST_NUMBER_IN_ANY_GROUP 512	//64

#define	MAX_NUM_SOLDIERS		(CODE_MAXIMUM_NUMBER_OF_PLAYER_MERCS+CODE_MAXIMUM_NUMBER_OF_PLAYER_VEHICLES+CODE_MAXIMUM_NUMBER_OF_ENEMIES+CODE_MAXIMUM_NUMBER_OF_CREATURES+CODE_MAXIMUM_NUMBER_OF_REBELS+CODE_MAXIMUM_NUMBER_OF_CIVS)
#define	NUM_PLANNING_MERCS		8
#define	TOTAL_SOLDIERS			( NUM_PLANNING_MERCS + MAX_NUM_SOLDIERS )

// If there are more than (one less the size of the field used to store IDs (currently a char)) then fail
#if TOTAL_SOLDIERS > 2332	// 254
#error Too many!
#endif
#if CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS > LARGEST_NUMBER_IN_ANY_GROUP
#error _LARGEST_NUMBER_IN_ANY_GROUP is too small
#endif
#if CODE_MAXIMUM_NUMBER_OF_ENEMIES > LARGEST_NUMBER_IN_ANY_GROUP
#error _LARGEST_NUMBER_IN_ANY_GROUP is too small
#endif
#if CODE_MAXIMUM_NUMBER_OF_CREATURES > LARGEST_NUMBER_IN_ANY_GROUP
#error _LARGEST_NUMBER_IN_ANY_GROUP is too small
#endif
#if CODE_MAXIMUM_NUMBER_OF_REBELS > LARGEST_NUMBER_IN_ANY_GROUP
#error _LARGEST_NUMBER_IN_ANY_GROUP is too small
#endif
#if CODE_MAXIMUM_NUMBER_OF_CIVS > LARGEST_NUMBER_IN_ANY_GROUP
#error _LARGEST_NUMBER_IN_ANY_GROUP is too small
#endif

// DEFINE TEAMS
#define OUR_TEAM				0
#define ENEMY_TEAM			1
#define CREATURE_TEAM		2
#define MILITIA_TEAM		3
#define CIV_TEAM				4
#define LAST_TEAM				LAN_TEAM_FOUR
#define	PLAYER_PLAN			5

#define LAN_TEAM_ONE 6
#define LAN_TEAM_TWO 7
#define LAN_TEAM_THREE 8
#define LAN_TEAM_FOUR 9
//hayden

//-----------------------------------------------
//
// civilian "sub teams":
enum
{
	NON_CIV_GROUP = 0,
	REBEL_CIV_GROUP,
	KINGPIN_CIV_GROUP,
	SANMONA_ARMS_GROUP,
	ANGELS_GROUP,
	BEGGARS_CIV_GROUP,
	TOURISTS_CIV_GROUP,
	ALMA_MILITARY_CIV_GROUP,
	DOCTORS_CIV_GROUP,
	COUPLE1_CIV_GROUP,
	HICKS_CIV_GROUP,
	WARDEN_CIV_GROUP,
	JUNKYARD_CIV_GROUP,
	FACTORY_KIDS_GROUP,
	QUEENS_CIV_GROUP,
	UNNAMED_CIV_GROUP_15,
	UNNAMED_CIV_GROUP_16,
	UNNAMED_CIV_GROUP_17,
	UNNAMED_CIV_GROUP_18,
	UNNAMED_CIV_GROUP_19,
	ASSASSIN_CIV_GROUP,		// Flugente: enemy assassins belong to this group
	POW_PRISON_CIV_GROUP,	// Flugente: prisoners of war the player caught are in this group
	UNNAMED_CIV_GROUP_22,
	UNNAMED_CIV_GROUP_23,
	VOLUNTEER_CIV_GROUP,	// Flugente: civilians that the player recruited
	BOUNTYHUNTER_CIV_GROUP,	// Flugente: hostile bounty hunters
	DOWNEDPILOT_CIV_GROUP,	// Flugente: downed pilots
	SCIENTIST_GROUP,		// Flugente: enemy civilian personnel
	RADAR_TECHNICIAN_GROUP,
	AIRPORT_STAFF_GROUP,
	BARRACK_STAFF_GROUP,
	FACTORY_GROUP,
	ADMINISTRATIVE_STAFF_GROUP,
	LOYAL_CIV_GROUP,		// civil population deeply loyal to the queen
	BLACKMARKET_GROUP,		// black market dealer and bodyguards
	UNNAMED_CIV_GROUP_35,
	UNNAMED_CIV_GROUP_36,
	UNNAMED_CIV_GROUP_37,
	UNNAMED_CIV_GROUP_38,
	UNNAMED_CIV_GROUP_39,
	UNNAMED_CIV_GROUP_40,
	UNNAMED_CIV_GROUP_41,
	UNNAMED_CIV_GROUP_42,
	UNNAMED_CIV_GROUP_43,
	UNNAMED_CIV_GROUP_44,
	UNNAMED_CIV_GROUP_45,
	UNNAMED_CIV_GROUP_46,
	UNNAMED_CIV_GROUP_47,
	UNNAMED_CIV_GROUP_48,
	UNNAMED_CIV_GROUP_49,
	UNNAMED_CIV_GROUP_50,
	UNNAMED_CIV_GROUP_51,
	UNNAMED_CIV_GROUP_52,
	UNNAMED_CIV_GROUP_53,
	UNNAMED_CIV_GROUP_54,
	UNNAMED_CIV_GROUP_55,
	UNNAMED_CIV_GROUP_56,
	UNNAMED_CIV_GROUP_57,
	UNNAMED_CIV_GROUP_58,
	UNNAMED_CIV_GROUP_59,
	UNNAMED_CIV_GROUP_60,	
	UNNAMED_CIV_GROUP_61,
	UNNAMED_CIV_GROUP_62,
	UNNAMED_CIV_GROUP_63,
	UNNAMED_CIV_GROUP_64,
	UNNAMED_CIV_GROUP_65,
	UNNAMED_CIV_GROUP_66,
	UNNAMED_CIV_GROUP_67,
	UNNAMED_CIV_GROUP_68,
	UNNAMED_CIV_GROUP_69,
	UNNAMED_CIV_GROUP_70,
	UNNAMED_CIV_GROUP_71,
	UNNAMED_CIV_GROUP_72,
	UNNAMED_CIV_GROUP_73,
	UNNAMED_CIV_GROUP_74,
	UNNAMED_CIV_GROUP_75,
	UNNAMED_CIV_GROUP_76,
	UNNAMED_CIV_GROUP_77,
	UNNAMED_CIV_GROUP_78,
	UNNAMED_CIV_GROUP_79,
	UNNAMED_CIV_GROUP_80,
	UNNAMED_CIV_GROUP_81,
	UNNAMED_CIV_GROUP_82,
	UNNAMED_CIV_GROUP_83,
	UNNAMED_CIV_GROUP_84,
	UNNAMED_CIV_GROUP_85,
	UNNAMED_CIV_GROUP_86,
	UNNAMED_CIV_GROUP_87,
	UNNAMED_CIV_GROUP_88,
	UNNAMED_CIV_GROUP_89,
	UNNAMED_CIV_GROUP_90,
	UNNAMED_CIV_GROUP_91,
	UNNAMED_CIV_GROUP_92,
	UNNAMED_CIV_GROUP_93,
	UNNAMED_CIV_GROUP_94,
	UNNAMED_CIV_GROUP_95,
	UNNAMED_CIV_GROUP_96,
	UNNAMED_CIV_GROUP_97,
	UNNAMED_CIV_GROUP_98,
	UNNAMED_CIV_GROUP_99,
	UNNAMED_CIV_GROUP_100,
	UNNAMED_CIV_GROUP_101,
	UNNAMED_CIV_GROUP_102,
	UNNAMED_CIV_GROUP_103,
	UNNAMED_CIV_GROUP_104,
	UNNAMED_CIV_GROUP_105,
	UNNAMED_CIV_GROUP_106,
	UNNAMED_CIV_GROUP_107,
	UNNAMED_CIV_GROUP_108,
	UNNAMED_CIV_GROUP_109,
	UNNAMED_CIV_GROUP_110,
	UNNAMED_CIV_GROUP_111,
	UNNAMED_CIV_GROUP_112,
	UNNAMED_CIV_GROUP_113,
	UNNAMED_CIV_GROUP_114,
	UNNAMED_CIV_GROUP_115,
	UNNAMED_CIV_GROUP_116,
	UNNAMED_CIV_GROUP_117,
	UNNAMED_CIV_GROUP_118,
	UNNAMED_CIV_GROUP_119,
	UNNAMED_CIV_GROUP_120,
	UNNAMED_CIV_GROUP_121,
	UNNAMED_CIV_GROUP_122,
	UNNAMED_CIV_GROUP_123,
	UNNAMED_CIV_GROUP_124,
	UNNAMED_CIV_GROUP_125,
	UNNAMED_CIV_GROUP_126,
	UNNAMED_CIV_GROUP_127,
	UNNAMED_CIV_GROUP_128,
	UNNAMED_CIV_GROUP_129,
	UNNAMED_CIV_GROUP_130,
	UNNAMED_CIV_GROUP_131,
	UNNAMED_CIV_GROUP_132,
	UNNAMED_CIV_GROUP_133,
	UNNAMED_CIV_GROUP_134,
	UNNAMED_CIV_GROUP_135,
	UNNAMED_CIV_GROUP_136,
	UNNAMED_CIV_GROUP_137,
	UNNAMED_CIV_GROUP_138,
	UNNAMED_CIV_GROUP_139,
	UNNAMED_CIV_GROUP_140,
	
	UNNAMED_CIV_GROUP_141,
	UNNAMED_CIV_GROUP_142,
	UNNAMED_CIV_GROUP_143,
	UNNAMED_CIV_GROUP_144,
	UNNAMED_CIV_GROUP_145,
	UNNAMED_CIV_GROUP_146,
	UNNAMED_CIV_GROUP_147,
	UNNAMED_CIV_GROUP_148,
	UNNAMED_CIV_GROUP_149,
	UNNAMED_CIV_GROUP_150,
	UNNAMED_CIV_GROUP_151,
	UNNAMED_CIV_GROUP_152,
	UNNAMED_CIV_GROUP_153,
	UNNAMED_CIV_GROUP_154,
	UNNAMED_CIV_GROUP_155,
	UNNAMED_CIV_GROUP_156,
	UNNAMED_CIV_GROUP_157,
	UNNAMED_CIV_GROUP_158,
	UNNAMED_CIV_GROUP_159,
	UNNAMED_CIV_GROUP_160,
	UNNAMED_CIV_GROUP_161,
	UNNAMED_CIV_GROUP_162,
	UNNAMED_CIV_GROUP_163,
	UNNAMED_CIV_GROUP_164,
	UNNAMED_CIV_GROUP_165,
	UNNAMED_CIV_GROUP_166,
	UNNAMED_CIV_GROUP_167,
	UNNAMED_CIV_GROUP_168,
	UNNAMED_CIV_GROUP_169,
	UNNAMED_CIV_GROUP_170,
	
	UNNAMED_CIV_GROUP_171,
	UNNAMED_CIV_GROUP_172,
	UNNAMED_CIV_GROUP_173,
	UNNAMED_CIV_GROUP_174,
	UNNAMED_CIV_GROUP_175,
	UNNAMED_CIV_GROUP_176,
	UNNAMED_CIV_GROUP_177,
	UNNAMED_CIV_GROUP_178,
	UNNAMED_CIV_GROUP_179,
	UNNAMED_CIV_GROUP_180,
	UNNAMED_CIV_GROUP_181,
	UNNAMED_CIV_GROUP_182,
	UNNAMED_CIV_GROUP_183,
	UNNAMED_CIV_GROUP_184,
	UNNAMED_CIV_GROUP_185,
	UNNAMED_CIV_GROUP_186,
	UNNAMED_CIV_GROUP_187,
	UNNAMED_CIV_GROUP_188,
	UNNAMED_CIV_GROUP_189,
	UNNAMED_CIV_GROUP_190,
	UNNAMED_CIV_GROUP_191,
	UNNAMED_CIV_GROUP_192,
	UNNAMED_CIV_GROUP_193,
	UNNAMED_CIV_GROUP_194,
	UNNAMED_CIV_GROUP_195,
	UNNAMED_CIV_GROUP_196,
	UNNAMED_CIV_GROUP_197,
	UNNAMED_CIV_GROUP_198,
	UNNAMED_CIV_GROUP_199,
	UNNAMED_CIV_GROUP_200,
	
	UNNAMED_CIV_GROUP_201,
	UNNAMED_CIV_GROUP_202,
	UNNAMED_CIV_GROUP_203,
	UNNAMED_CIV_GROUP_204,
	UNNAMED_CIV_GROUP_205,
	UNNAMED_CIV_GROUP_206,
	UNNAMED_CIV_GROUP_207,
	UNNAMED_CIV_GROUP_208,
	UNNAMED_CIV_GROUP_209,
	UNNAMED_CIV_GROUP_210,
	UNNAMED_CIV_GROUP_211,
	UNNAMED_CIV_GROUP_212,
	UNNAMED_CIV_GROUP_213,
	UNNAMED_CIV_GROUP_214,
	UNNAMED_CIV_GROUP_215,
	UNNAMED_CIV_GROUP_216,
	UNNAMED_CIV_GROUP_217,
	UNNAMED_CIV_GROUP_218,
	UNNAMED_CIV_GROUP_219,
	UNNAMED_CIV_GROUP_220,
	UNNAMED_CIV_GROUP_221,
	UNNAMED_CIV_GROUP_222,
	UNNAMED_CIV_GROUP_223,
	UNNAMED_CIV_GROUP_224,
	UNNAMED_CIV_GROUP_225,
	UNNAMED_CIV_GROUP_226,
	UNNAMED_CIV_GROUP_227,
	UNNAMED_CIV_GROUP_228,
	UNNAMED_CIV_GROUP_229,
	UNNAMED_CIV_GROUP_230,
	
	UNNAMED_CIV_GROUP_231,
	UNNAMED_CIV_GROUP_232,
	UNNAMED_CIV_GROUP_233,
	UNNAMED_CIV_GROUP_234,
	UNNAMED_CIV_GROUP_235,
	UNNAMED_CIV_GROUP_236,
	UNNAMED_CIV_GROUP_237,
	UNNAMED_CIV_GROUP_238,
	UNNAMED_CIV_GROUP_239,
	UNNAMED_CIV_GROUP_240,
	UNNAMED_CIV_GROUP_241,
	UNNAMED_CIV_GROUP_242,
	UNNAMED_CIV_GROUP_243,
	UNNAMED_CIV_GROUP_244,
	UNNAMED_CIV_GROUP_245,
	UNNAMED_CIV_GROUP_246,
	UNNAMED_CIV_GROUP_247,
	UNNAMED_CIV_GROUP_248,
	UNNAMED_CIV_GROUP_249,
	UNNAMED_CIV_GROUP_250,
	
	UNNAMED_CIV_GROUP_251,
	UNNAMED_CIV_GROUP_252,
	UNNAMED_CIV_GROUP_253,
	UNNAMED_CIV_GROUP_254,
	NUM_CIV_GROUPS
};

#define CIV_GROUP_NEUTRAL 0
#define CIV_GROUP_WILL_EVENTUALLY_BECOME_HOSTILE 1
#define CIV_GROUP_WILL_BECOME_HOSTILE 2
#define CIV_GROUP_HOSTILE 3


// boxing state
enum BoxingStates
{
	NOT_BOXING = 0,
	BOXING_WAITING_FOR_PLAYER,
	PRE_BOXING,
	BOXING,
	DISQUALIFIED,
	WON_ROUND,
	LOST_ROUND
} ;

//NOTE:	The editor uses these enumerations, so please update the text as well if you modify or
//			add new groups.	Try to abbreviate the team name as much as possible.	The text is in 
//			EditorMercs.c
#ifdef JA2EDITOR
	extern CHAR16 gszCivGroupNames[ NUM_CIV_GROUPS ][ 128 ];
#endif
//
//-----------------------------------------------

// PALETTE SUBSITUTION TYPES
typedef struct 
{
	UINT8		ubStart;
	UINT8		ubEnd;

} PaletteSubRangeType;

typedef CHAR8 PaletteRepID[ 30 ];

typedef struct 
{
	UINT8					ubType;
	PaletteRepID	ID;
	UINT8					ubPaletteSize;
	UINT8					*r;
	UINT8					*g;
	UINT8					*b;

} PaletteReplacementType;

// MACROS
// This will set an animation ID
#define			SET_PALETTEREP_ID( a, b )				( strcpy( a, b ) )
																						// strcmp returns 0 if true!		
#define	 COMPARE_PALETTEREP_ID( a, b )		( strcmp( a, b ) ? FALSE : TRUE )

#endif
