/* GemRB - Infinity Engine Emulator
 * Copyright (C) 2003 The GemRB Project
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.

 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.

 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 *
 *
 */

/**
 * @file ie_stats.h
 * Definitions of creature stats codes
 * @author The GemRB Project
 */


// !!! NOTE: keep this file synchronized with gemrb/GUIScripts/ie_stats.py !!!

#ifndef IE_STATS_H
#define IE_STATS_H

namespace GemRB {

//EA values
#define EA_INANIMATE   		1
#define EA_PC  			2
#define EA_FAMILIAR		3
#define EA_ALLY			4
#define EA_CONTROLLED  		5
#define EA_CHARMED 		6
//#define EA_REALLYCHARMED 		7 // added by EE for the charm opcode, while 6 is for shaman's spirits
#define EA_CONTROLLABLE         15
#define EA_GOODBUTRED  		28
#define EA_GOODBUTBLUE 		29
#define EA_GOODCUTOFF  		30
#define EA_NOTGOOD 		31
#define EA_ANYTHING		126
#define EA_AREAOBJECT	127 // included in EA groups 31|NOTGOOD, 126|ANYTHING, and 199|NOTEVIL.
#define EA_NEUTRAL 		128
#define EA_NOTNEUTRAL  	198
#define EA_NOTEVIL 		199
#define EA_EVILCUTOFF  		200
#define EA_EVILBUTGREEN		201
#define EA_EVILBUTBLUE 		202
#define EA_CHARMEDPC            254 // EVILBYCHARM in the original
#define EA_ENEMY   		255

//GENERAL values
#define GEN_HUMANOID  1  //charm?
#define GEN_ANIMAL    2  //charm animals
#define GEN_DEAD      3  //???
#define GEN_UNDEAD    4  //turn
#define GEN_GIANT     5  //???
#define GEN_FROZEN    6  //???
#define GEN_MONSTER   255

//GENDER values
#define SEX_MALE      1
#define SEX_FEMALE    2
#define SEX_OTHER     3
#define SEX_NEITHER   4
#define SEX_BOTH      5
#define SEX_SUMMON    6
#define SEX_ILLUSION  7 // bg2
#define SEX_EXTRA     8 // bg2
#define SEX_SUMMON_DEMON 9 //bg2
#define SEX_EXTRA2    0xa // ToB
#define SEX_MAXEXTRA  0x12 // ToB (extra10)

//alignment values
#define AL_GE_MASK     3  //good / evil
#define AL_GOOD        1
#define AL_GE_NEUTRAL  2
#define AL_EVIL        3
#define AL_LC_MASK     0x30 //lawful / chaotic
#define AL_LAWFUL      0x10
#define AL_LC_NEUTRAL  0x20
#define AL_CHAOTIC     0x30

#define AL_LAWFUL_GOOD (AL_LAWFUL|AL_GOOD)
#define AL_NEUTRAL_GOOD (AL_LC_NEUTRAL|AL_GOOD)
#define AL_CHAOTIC_GOOD (AL_CHAOTIC|AL_GOOD)
#define AL_LAWFUL_NEUTRAL (AL_LAWFUL|AL_GE_NEUTRAL)
#define AL_TRUE_NEUTRAL (AL_LC_NEUTRAL|AL_GE_NEUTRAL)
#define AL_CHAOTIC_NEUTRAL (AL_CHAOTIC|AL_GE_NEUTRAL)
#define AL_LAWFUL_EVIL (AL_LAWFUL|AL_EVIL)
#define AL_NEUTRAL_EVIL (AL_LC_NEUTRAL|AL_EVIL)
#define AL_CHAOTIC_EVIL (AL_CHAOTIC|AL_EVIL)

//state bits (IE_STATE)
#define STATE_SLEEP      0x00000001
#define STATE_BERSERK    0x00000002
#define STATE_PANIC      0x00000004
#define STATE_STUNNED    0x00000008
#define STATE_INVISIBLE  0x00000010
#define STATE_PST_CURSE  0x00000010
#define STATE_HELPLESS   0x00000020
#define STATE_FROZEN     0x00000040
#define STATE_PETRIFIED  0x00000080
#define STATE_EXPLODING  0x00000100 // chunky death
#define STATE_PST_MIRROR 0x00000100 // pst version of STATE_MIRROR (overlaps STATE_EXPLODING)
#define STATE_FLAME      0x00000200 // charred to death
#define STATE_ACID       0x00000400 // disolved to death
#define STATE_DEAD       0x00000800
#define STATE_SILENCED   0x00001000
#define STATE_CHARMED    0x00002000
#define STATE_POISONED   0x00004000
#define STATE_HASTED     0x00008000
#define STATE_CRIT_PROT  0x00008000
#define STATE_SLOWED     0x00010000
#define STATE_CRIT_ENH   0x00010000
#define STATE_INFRA      0x00020000
#define STATE_BLIND      0x00040000
//this appears to be a mistake in the original state.ids
//this flag is the 'deactivate' flag, Activate/Deactivate works on it
// NOTE: we use IF_VISIBLE instead, so it could be removed if any conflict with disease arises
#define STATE_DISEASED   0x00080000
#define STATE_DEACTIVATED 0x00080000
#define STATE_FEEBLE     0x00100000
#define STATE_NONDET     0x00200000
#define STATE_INVIS2     0x00400000
#define STATE_EE_DUPL    0x00400000 // pst's enola projectile duplication (overlaps improved invisibility)
#define STATE_BLESS      0x00800000
#define STATE_CHANT      0x01000000
#define STATE_DETECT_EVIL 0x01000000
#define STATE_HOLY       0x02000000
#define STATE_PST_INVIS  0x02000000
#define STATE_LUCK       0x04000000
#define STATE_AID        0x08000000
#define STATE_CHANTBAD   0x10000000
#define STATE_ANTIMAGIC  0x10000000
#define STATE_BLUR       0x20000000
#define STATE_MIRROR     0x40000000
#define STATE_EMBALM     0x40000000 // pst healing with ac bonus
#define STATE_CONFUSED   0x80000000

#define STATE_STILL      (STATE_STUNNED | STATE_FROZEN | STATE_PETRIFIED) //0xc8: not animated
#define _DEAD_STATES     (STATE_EXPLODING|STATE_FLAME|STATE_ACID|STATE_DEAD|STATE_PETRIFIED|STATE_FROZEN) //0x0fc0: just a shorthand
#define STATE_MINDLESS  (STATE_CONFUSED|STATE_FEEBLE|STATE_CHARMED|STATE_HELPLESS|STATE_SLEEP|STATE_BERSERK|STATE_PANIC) // 0x80102027

// can't walk or attack - helpless
// FIXME: why is STATE_BERSERK on the list?
#define STATE_CANTMOVE ((STATE_MINDLESS|STATE_STUNNED|_DEAD_STATES|STATE_DEACTIVATED)^(STATE_CHARMED|STATE_CONFUSED)) // 0x180fef
#define STATE_CANTSTEAL  (_DEAD_STATES|STATE_DEACTIVATED|STATE_FEEBLE) //can't steal from, 0x00180fc0
#define STATE_CANTSEE    (_DEAD_STATES|STATE_DEACTIVATED) //can't explore (even itself), 0x00080fc0
#define STATE_CANTLISTEN ((STATE_CANTSEE|STATE_STUNNED|STATE_MINDLESS)^(STATE_CHARMED|STATE_FEEBLE)) // 0x80080fef
#define STATE_NOSAVE     _DEAD_STATES //don't save these, 0x00000fc0

#define EXTSTATE_PRAYER      0x00000001
#define EXTSTATE_PRAYER_BAD  0x00000002
#define EXTSTATE_RECITATION  0x00000004
#define EXTSTATE_REC_BAD     0x00000008
#define EXTSTATE_EYE_MIND    0x00000010
#define EXTSTATE_EYE_SWORD   0x00000020
#define EXTSTATE_EYE_MAGE    0x00000040
#define EXTSTATE_EYE_VENOM   0x00000080
#define EXTSTATE_EYE_SPIRIT  0x00000100
#define EXTSTATE_EYE_FORT    0x00000200
#define EXTSTATE_EYE_STONE   0x00000400
#define EXTSTATE_ANIMAL_RAGE 0x00000800
#define EXTSTATE_NO_HP       0x00001000  //disable hp info in berserk mode
#define EXTSTATE_BERSERK     0x00002000
#define EXTSTATE_NO_BACKSTAB 0x00004000
#define EXTSTATE_FLOATTEXTS  0x00008000  //weapon chatting (IWD)
#define EXTSTATE_UNSTUN      0x00010000  //receiving damage will unstun
#define EXTSTATE_DEAF        0x00020000
#define EXTSTATE_CHAOTICCMD  0x00040000
#define EXTSTATE_MISCAST     0x00080000
#define EXTSTATE_PAIN        0x00100000
#define EXTSTATE_MALISON     0x00200000
#define EXTSTATE_BLOODRAGE   0x00400000
#define EXTSTATE_CATSGRACE   0x00800000
#define EXTSTATE_MOLD        0x01000000
#define EXTSTATE_SHROUD      0x02000000
#define EXTSTATE_NO_WAKEUP   0x80000000  //original HoW engine put this on top of eye_mind
#define EXTSTATE_SEVEN_EYES  0x000007f0

//Multiclass flags
#define MC_SHOWLONGNAME         0x0001 // in iwd2 this supposedly prevents casting disruption from damage
#define MC_NO_DISRUPTION        0x0001 // but it is set on non-casters only (all halfgoblins) and most have no scripts
#define MC_REMOVE_CORPSE        0x0002
#define MC_KEEP_CORPSE          0x0004
#define MC_WAS_FIGHTER		0x0008
#define MC_WAS_MAGE		0x0010
#define MC_WAS_CLERIC		0x0020
#define MC_WAS_THIEF		0x0040
#define MC_WAS_DRUID		0x0080
#define MC_WAS_RANGER		0x0100
#define MC_WAS_ANY	        0x01f8 // MC_WAS_FIGHTER | ... | MC_WAS_RANGER
#define MC_FALLEN_PALADIN	0x0200
#define MC_FALLEN_RANGER	0x0400
#define MC_EXPORTABLE           0x0800  // iwd2: either different meaning or leftover cruft (set in a few creatures)
#define MC_HIDE_HP              0x1000  // also 'large creature' according to IE dev info (definitely something else in pst)
#define MC_PLOT_CRITICAL        0x2000  //if dies, it means game over (IWD2)
#define MC_LARGE_CREATURE       0x2000  // creature is subject to alternative melee damage (BG2), overlaps with MC_PLOT_CRITICAL
#define MC_LIMBO_CREATURE       0x4000
#define MC_BEENINPARTY          0x8000
#define MC_ENABLED              0x8000  // TODO iwd2 override; used like activate/deactivate?
#define MC_SEENPARTY            0x10000 //iwd2, TODO: non-iwd2: restore item in hand
#define MC_INVULNERABLE         0x20000 //iwd2
#define MC_NONTHREATENING_ENEMY 0x40000 // iwd2, barrels/kegs
#define MC_NO_TALK              0x80000 //ignore dialoginterrupt
#define MC_IGNORE_RETURN        0x100000 // iwd2, won't be moved to start position when party rests, TODO: ee, prevent chunking death
#define MC_IGNORE_INHIBIT_AI    0x200000 // iwd2 version of IE_ENABLEOFFSCREENAI (guess), elsewhere unused
#define MC_NO_NIGHTMARE_MODS    0x400000 // TODO: ee
#define MC_NO_TOOLTIPS          0x800000 // bit 23, TODO: ee
// the following bits are set in some files in iwd2 and iwd1
// it's in the range of the bg2 randomwalk bits 24-30, so likely the same between all the games
//#define                       0x4000000 // iwd2, unkown, probably irrelevant; set for 50wyv{,h,r}
//#define                       0x20000000 // iwd2, unkown, probably irrelevant
//#define                       0x40000000 // iwd2, unkown, probably irrelevant
#define MC_HOF_UPGRADED         0x80000000 // last bit, was used in memory only; repurposed to show HoF state

// specflag values
#define SPECF_DRIVEN          1 // automatic concentration success, no morale failure
#define SPECF_CRITIMMUNITY    2 // immune to critical hits
#define SPECF_PALADINOFF      4 // can't choose paladin levels on level up
#define SPECF_MONKOFF         8 // can't choose monk levels on level up

//stats
#define IE_HITPOINTS		0
#define IE_MAXHITPOINTS		1
#define IE_ARMORCLASS		2
#define IE_ACCRUSHINGMOD	3
#define IE_ACMISSILEMOD		4
#define IE_ACPIERCINGMOD	5
#define IE_ACSLASHINGMOD	6
#define IE_TOHIT		7
#define IE_NUMBEROFATTACKS	8
#define IE_SAVEVSDEATH		9
#define IE_SAVEVSWANDS		10
#define IE_SAVEVSPOLY		11
#define IE_SAVEVSBREATH		12
#define IE_SAVEVSSPELL		13
#define IE_SAVEFORTITUDE    	9
#define IE_SAVEREFLEX     	10
#define IE_SAVEWILL         	11
#define IE_RESISTFIRE		14
#define IE_RESISTCOLD		15
#define IE_RESISTELECTRICITY	16
#define IE_RESISTACID		17
#define IE_RESISTMAGIC		18
#define IE_RESISTMAGICFIRE	19
#define IE_RESISTMAGICCOLD	20
#define IE_RESISTSLASHING	21
#define IE_RESISTCRUSHING	22
#define IE_RESISTPIERCING	23
#define IE_RESISTMISSILE	24
#define IE_LORE	        	25
#define IE_LOCKPICKING  	26
#define IE_STEALTH		27
#define IE_TRAPS		28
#define IE_PICKPOCKET   	29
#define IE_FATIGUE		30
#define IE_INTOXICATION 	31
#define IE_LUCK	        	32
#define IE_TRACKING     	33
#define IE_LEVEL		34
#define IE_LEVELFIGHTER      	34 //for pst, iwd2
#define IE_SEX	        	35
#define IE_STR          	36
#define IE_STREXTRA     	37
#define IE_INT               	38
#define IE_WIS          	39
#define IE_DEX   		40
#define IE_CON  		41
#define IE_CHR  		42
#define IE_XPVALUE      	43
#define IE_CR                 	43      //for iwd2, not sure if this is a good idea yet
#define IE_XP   		44
#define IE_GOLD	        	45
#define IE_MORALEBREAK   	46
#define IE_MORALERECOVERYTIME	47
#define IE_REPUTATION        	48
#define IE_HATEDRACE         	49
#define IE_DAMAGEBONUS       	50
#define IE_SPELLFAILUREMAGE	51 
#define IE_SPELLFAILUREPRIEST	52 
#define IE_SPELLDURATIONMODMAGE	53
#define IE_SPELLDURATIONMODPRIEST	54
#define IE_TURNUNDEADLEVEL	55
#define IE_BACKSTABDAMAGEMULTIPLIER	56
#define IE_LAYONHANDSAMOUNT	57
#define IE_HELD 		58
#define IE_POLYMORPHED          59
#define IE_TRANSLUCENT          60
#define IE_IDENTIFYMODE         61
#define IE_ENTANGLE          	62
#define IE_SANCTUARY     	63
#define IE_MINORGLOBE    	64
#define IE_SHIELDGLOBE   	65
#define IE_GREASE		66
#define IE_WEB   		67
#define IE_LEVEL2               68
#define IE_LEVELMAGE            68 //pst, iwd2
#define IE_LEVEL3        	69
#define IE_LEVELTHIEF           69 //pst, iwd2
#define IE_CASTERHOLD       	70
#define IE_ENCUMBRANCE          71
#define IE_MISSILEHITBONUS	72  
#define IE_MAGICDAMAGERESISTANCE  73
#define IE_RESISTPOISON 	 74
#define IE_DONOTJUMP           	 75
#define IE_AURACLEANSING	 76
#define IE_MENTALSPEED  	 77
#define IE_PHYSICALSPEED	 78
#define IE_CASTINGLEVELBONUSMAGE	79
#define IE_CASTINGLEVELBONUSCLERIC  80
#define IE_SEEINVISIBLE 		81
#define IE_IGNOREDIALOGPAUSE		82
#define IE_MINHITPOINTS 		83
#define IE_HITBONUSRIGHT  		84
#define IE_HITBONUSLEFT   		85
#define IE_DAMAGEBONUSRIGHT 		86
#define IE_DAMAGEBONUSLEFT  		87
#define IE_STONESKINS  			88
#define IE_FEAT_BOW                  	89
#define IE_FEAT_CROSSBOW              	90
#define IE_FEAT_SLING                 	91
#define IE_FEAT_AXE                   	92
#define IE_FEAT_MACE                   	93
#define IE_FEAT_FLAIL                  	94
#define IE_FEAT_POLEARM                 95
#define IE_FEAT_HAMMER 96
#define IE_FEAT_STAFF 97
#define IE_FEAT_GREAT_SWORD 98
#define IE_FEAT_LARGE_SWORD 99
#define IE_FEAT_SMALL_SWORD 100
#define IE_FEAT_TOUGHNESS 101
#define IE_FEAT_ARMORED_ARCANA 102
#define IE_FEAT_CLEAVE 103
#define IE_FEAT_ARMOUR 104
#define IE_FEAT_ENCHANTMENT 105
#define IE_FEAT_EVOCATION 106
#define IE_FEAT_NECROMANCY 107
#define IE_FEAT_TRANSMUTATION 108
#define IE_FEAT_SPELL_PENETRATION 109
#define IE_FEAT_EXTRA_RAGE 110
#define IE_FEAT_EXTRA_SHAPE 111
#define IE_FEAT_EXTRA_SMITING 112
#define IE_FEAT_EXTRA_TURNING 113
#define IE_FEAT_BASTARDSWORD 114
#define IE_PROFICIENCYBASTARDSWORD		89
#define IE_PROFICIENCYLONGSWORD		90
#define IE_PROFICIENCYSHORTSWORD		91
#define IE_PROFICIENCYAXE			92
#define IE_PROFICIENCYTWOHANDEDSWORD	93
#define IE_PROFICIENCYKATANA		94
#define IE_PROFICIENCYSCIMITAR   	95        //wakisashininjato
#define IE_PROFICIENCYDAGGER		96
#define IE_PROFICIENCYWARHAMMER	97
#define IE_PROFICIENCYSPEAR	98
#define IE_PROFICIENCYHALBERD		99
#define IE_PROFICIENCYFLAIL	100       //morningstar
#define IE_PROFICIENCYMACE			101
#define IE_PROFICIENCYQUARTERSTAFF		102
#define IE_PROFICIENCYCROSSBOW			103
#define IE_PROFICIENCYLONGBOW			104
#define IE_PROFICIENCYSHORTBOW			105
#define IE_PROFICIENCYDART			106
#define IE_PROFICIENCYSLING			107
#define IE_PROFICIENCYBLACKJACK			108
#define IE_PROFICIENCYGUN			109
#define IE_UNDEADLEVEL                          109 //if i calculated correctly, this is the 21th byte in the profs array
#define IE_PROFICIENCYMARTIALARTS		110
#define IE_PROFICIENCY2HANDED		   	111 
#define IE_PROFICIENCYSWORDANDSHIELD		112
#define IE_PROFICIENCYSINGLEWEAPON		113
#define IE_PROFICIENCY2WEAPON		 114  
#define IE_PROFICIENCYCLUB		 115
#define IE_ALCHEMY                       115
#define IE_EXTRAPROFICIENCY2 		 116
#define IE_ANIMALS                       116
#define IE_EXTRAPROFICIENCY3 		 117
#define IE_BLUFF                         117
#define IE_EXTRAPROFICIENCY4 		 118
#define IE_CONCENTRATION                 118
#define IE_EXTRAPROFICIENCY5 		 119
#define IE_DIPLOMACY                     119
#define IE_EXTRAPROFICIENCY6 		 120
#define IE_INTIMIDATE                    120
#define IE_EXTRAPROFICIENCY7 		 121
#define IE_SEARCH                        121
#define IE_EXTRAPROFICIENCY8 		 122
#define IE_SPELLCRAFT                    122
#define IE_EXTRAPROFICIENCY9 		 123
#define IE_MAGICDEVICE                   123
#define IE_EXTRAPROFICIENCY10 		 124
#define IE_SPECFLAGS                     124
#define IE_EXTRAPROFICIENCY11 		 125
#define IE_UNCANNY_DODGE                 125
#define IE_EXTRAPROFICIENCY12 		 126
#define IE_EXTRAPROFICIENCY13 		 127
#define IE_EXTRAPROFICIENCY14 		 128
#define IE_EXTRAPROFICIENCY15 		 129
#define IE_EXTRAPROFICIENCY16 		 130
#define IE_EXTRAPROFICIENCY17 		 131
#define IE_FEATS1                        131
#define IE_EXTRAPROFICIENCY18 		 132
#define IE_FEATS2                        132
#define IE_EXTRAPROFICIENCY19 		 133
#define IE_FEATS3                        133
#define IE_EXTRAPROFICIENCY20 		 134
#define IE_FREESLOTS	 		 134 //same as above
#define IE_HIDEINSHADOWS			  135
#define IE_DETECTILLUSIONS  		  136
#define IE_SETTRAPS 				  137
#define IE_PUPPETMASTERID   		  138
#define IE_PUPPETMASTERTYPE 		  139
#define IE_PUPPETTYPE   			  140
#define IE_PUPPETID 				  141
#define IE_CHECKFORBERSERK  		  142
#define IE_BERSERKSTAGE1			  143
#define IE_BERSERKSTAGE2			  144 //attack anyone
#define IE_DAMAGELUCK   			  145
#define IE_CRITICALHITBONUS 		  146
#define IE_VISUALRANGE  			  147
#define IE_EXPLORE  				  148
#define IE_THRULLCHARM  			  149
#define IE_SUMMONDISABLE			  150
#define IE_HITBONUS 				  151    
#define IE_KIT  				  152 
#define IE_FORCESURGE   			  153
#define IE_SURGEMOD 				  154
#define IE_IMPROVEDHASTE			  155
#define IE_INTERNAL_0            156
#define IE_INTERNAL_1            157
#define IE_INTERNAL_2            158
#define IE_INTERNAL_3            159
#define IE_INTERNAL_4            160
#define IE_INTERNAL_5            161
#define IE_INTERNAL_6            162
#define IE_INTERNAL_7            163
#define IE_INTERNAL_8            164
#define IE_INTERNAL_9            165
#define IE_SCRIPTINGSTATE1	 156
#define IE_SCRIPTINGSTATE2	 157
#define IE_SCRIPTINGSTATE3	 158
#define IE_SCRIPTINGSTATE4  	 159
#define IE_SCRIPTINGSTATE5  	 160
#define IE_SCRIPTINGSTATE6  	 161
#define IE_SCRIPTINGSTATE7  	162   
#define IE_SCRIPTINGSTATE8  	163
#define IE_SCRIPTINGSTATE9  	164
#define IE_SCRIPTINGSTATE10 	165
//these are genuine bg2 stats found by research
#define IE_MELEETOHIT		166
#define IE_MELEEDAMAGE		167
#define IE_MISSILEDAMAGE	168
#define IE_NOCIRCLE		169
#define IE_FISTHIT		170
#define IE_FISTDAMAGE		171
#define IE_TITLE1		172
#define IE_TITLE2		173
#define IE_DISABLEOVERLAY	174
#define IE_DISABLEBACKSTAB	175
//these are clashing with GemRB now
//176 IE_OPEN_LOCK_BONUS
//177 IE_MOVE_SILENTLY_BONUS
//178 IE_FIND_TRAPS_BONUS
//179 IE_PICK_POCKETS_BONUS
//180 IE_HIDE_IN_SHADOWS_BONUS
//181 DETECT_ILLUSIONS_BONUS
//182 SET_TRAPS_BONUS

// some bg2 mods use these
#define IE_SCRIPTINGSTATE21	 176
#define IE_SCRIPTINGSTATE22	 177
#define IE_SCRIPTINGSTATE23	 178
#define IE_SCRIPTINGSTATE24	 179
#define IE_SCRIPTINGSTATE25	 180
#define IE_SCRIPTINGSTATE26	 181
#define IE_SCRIPTINGSTATE27	 182

#define IE_ENABLEOFFSCREENAI    183 // bg2 has this on this spot
#define IE_EXISTANCEDELAY       184 // affects the displaying of EXISTANCE strings
#define IE_ATTACKNUMBERDOUBLE   185 // used by haste option 2
#define IE_DISABLECHUNKING      186 // no permanent death
#define IE_NOTURNABLE           187 // immune to turn
//the IE sets this stat the same time as stat 150
//188 IE_SUMMONDISABLE2
#define IE_CHAOSSHIELD          189 // defense against wild surge
#define IE_NPCBUMP              190 // allow npcs to be bumped?
#define IE_CANUSEANYITEM        191
#define IE_ALWAYSBACKSTAB       192
#define IE_SEX_CHANGED          193 // modified by opcode 0x47
#define IE_SPELLFAILUREINNATE   194
#define IE_NOTRACKING           195 // tracking doesn't detect this
#define IE_DEADMAGIC            196
#define IE_DISABLETIMESTOP      197
#define IE_NOSEQUESTER          198 // this doesn't work in IE, but intended
#define IE_STONESKINSGOLEM	199
//actually this stat is not used for level drain
#define IE_LEVELDRAIN		200
#define IE_AVATARREMOVAL        201

//GemRB Specific Defines
//these are temporary only
#define IE_XP_MAGE              176 // XP2 
#define IE_XP_THIEF             177 // XP3
//the rest are relocated at 250+

#define IE_ETHEREALNESS         202
#define IE_IMMUNITY             203
#define IE_DISABLEDBUTTON       204
#define IE_ANIMATION_ID		205 //cd
#define IE_STATE_ID		206
#define IE_EXTSTATE_ID		207     //used in how/iwd2
#define IE_METAL_COLOR		208 //d0
#define IE_COLORS		208 //same
#define IE_MINOR_COLOR		209
#define IE_MAJOR_COLOR		210
#define IE_SKIN_COLOR		211
#define IE_LEATHER_COLOR	212
#define IE_ARMOR_COLOR		213
#define IE_HAIR_COLOR		214
#define IE_COLORCOUNT		214 //same
#define IE_MC_FLAGS		215
#define IE_CLASSLEVELSUM	216 //iwd2
#define IE_ALIGNMENT		217
#define IE_CASTING		218
#define IE_ARMOR_TYPE		219
#define IE_TEAM			220
#define IE_FACTION		221
#define IE_SUBRACE		222
#define IE_SPECIES              223 // pst specific
#define IE_UNUSED_SKILLPTS 223 // iwd2 specific
//temporarily here for iwd2
#define IE_HATEDRACE2       224
#define IE_HATEDRACE3       225
#define IE_HATEDRACE4       226
#define IE_HATEDRACE5       227
#define IE_HATEDRACE6       228
#define IE_HATEDRACE7       229
#define IE_HATEDRACE8       230
#define IE_RACE			231
#define IE_CLASS		232
#define IE_GENERAL		233
#define IE_EA			234
#define IE_SPECIFIC		235
#define IE_SAVEDXPOS             236
#define IE_SAVEDYPOS             237
#define IE_SAVEDFACE             238
#define IE_USERSTAT              239 //user defined stat
//These are in IWD2, but in a different place
//core class levels (fighter, mage, thief are already stored)
#define IE_LEVELBARBARIAN        240
#define IE_LEVELBARD             241 
#define IE_LEVELCLERIC           242 
#define IE_LEVELDRUID            243
#define IE_LEVELMONK             244
#define IE_LEVELPALADIN          245
#define IE_LEVELRANGER           246
#define IE_LEVELSORCERER         247
// place for 2 more classes
#define IE_LEVELCLASS12          248
#define IE_LEVELCLASS13          249

//more GemRB internal stats
#define IE_DIALOGRANGE          250 // iwd2
#define IE_MOVEMENTRATE         251
#define IE_MORALE               252 // this has no place
#define IE_BOUNCE               253 // has projectile bouncing effect
#define IE_MIRRORIMAGES         254

}

#endif  // ! IE_STATS_H
