1 /* GemRB - Infinity Engine Emulator 2 * Copyright (C) 2003 The GemRB Project 3 * 4 * This program is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU General Public License 6 * as published by the Free Software Foundation; either version 2 7 * of the License, or (at your option) any later version. 8 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 14 * You should have received a copy of the GNU General Public License 15 * along with this program; if not, write to the Free Software 16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 * 18 * 19 */ 20 21 /** 22 * @file ie_stats.h 23 * Definitions of creature stats codes 24 * @author The GemRB Project 25 */ 26 27 28 // !!! NOTE: keep this file synchronized with gemrb/GUIScripts/ie_stats.py !!! 29 30 #ifndef IE_STATS_H 31 #define IE_STATS_H 32 33 namespace GemRB { 34 35 //EA values 36 #define EA_INANIMATE 1 37 #define EA_PC 2 38 #define EA_FAMILIAR 3 39 #define EA_ALLY 4 40 #define EA_CONTROLLED 5 41 #define EA_CHARMED 6 42 //#define EA_REALLYCHARMED 7 // added by EE for the charm opcode, while 6 is for shaman's spirits 43 #define EA_CONTROLLABLE 15 44 #define EA_GOODBUTRED 28 45 #define EA_GOODBUTBLUE 29 46 #define EA_GOODCUTOFF 30 47 #define EA_NOTGOOD 31 48 #define EA_ANYTHING 126 49 #define EA_AREAOBJECT 127 // included in EA groups 31|NOTGOOD, 126|ANYTHING, and 199|NOTEVIL. 50 #define EA_NEUTRAL 128 51 #define EA_NOTNEUTRAL 198 52 #define EA_NOTEVIL 199 53 #define EA_EVILCUTOFF 200 54 #define EA_EVILBUTGREEN 201 55 #define EA_EVILBUTBLUE 202 56 #define EA_CHARMEDPC 254 // EVILBYCHARM in the original 57 #define EA_ENEMY 255 58 59 //GENERAL values 60 #define GEN_HUMANOID 1 //charm? 61 #define GEN_ANIMAL 2 //charm animals 62 #define GEN_DEAD 3 //??? 63 #define GEN_UNDEAD 4 //turn 64 #define GEN_GIANT 5 //??? 65 #define GEN_FROZEN 6 //??? 66 #define GEN_MONSTER 255 67 68 //GENDER values 69 #define SEX_MALE 1 70 #define SEX_FEMALE 2 71 #define SEX_OTHER 3 72 #define SEX_NEITHER 4 73 #define SEX_BOTH 5 74 #define SEX_SUMMON 6 75 #define SEX_ILLUSION 7 // bg2 76 #define SEX_EXTRA 8 // bg2 77 #define SEX_SUMMON_DEMON 9 //bg2 78 #define SEX_EXTRA2 0xa // ToB 79 #define SEX_MAXEXTRA 0x12 // ToB (extra10) 80 81 //alignment values 82 #define AL_GE_MASK 3 //good / evil 83 #define AL_GOOD 1 84 #define AL_GE_NEUTRAL 2 85 #define AL_EVIL 3 86 #define AL_LC_MASK 0x30 //lawful / chaotic 87 #define AL_LAWFUL 0x10 88 #define AL_LC_NEUTRAL 0x20 89 #define AL_CHAOTIC 0x30 90 91 #define AL_LAWFUL_GOOD (AL_LAWFUL|AL_GOOD) 92 #define AL_NEUTRAL_GOOD (AL_LC_NEUTRAL|AL_GOOD) 93 #define AL_CHAOTIC_GOOD (AL_CHAOTIC|AL_GOOD) 94 #define AL_LAWFUL_NEUTRAL (AL_LAWFUL|AL_GE_NEUTRAL) 95 #define AL_TRUE_NEUTRAL (AL_LC_NEUTRAL|AL_GE_NEUTRAL) 96 #define AL_CHAOTIC_NEUTRAL (AL_CHAOTIC|AL_GE_NEUTRAL) 97 #define AL_LAWFUL_EVIL (AL_LAWFUL|AL_EVIL) 98 #define AL_NEUTRAL_EVIL (AL_LC_NEUTRAL|AL_EVIL) 99 #define AL_CHAOTIC_EVIL (AL_CHAOTIC|AL_EVIL) 100 101 //state bits (IE_STATE) 102 #define STATE_SLEEP 0x00000001 103 #define STATE_BERSERK 0x00000002 104 #define STATE_PANIC 0x00000004 105 #define STATE_STUNNED 0x00000008 106 #define STATE_INVISIBLE 0x00000010 107 #define STATE_PST_CURSE 0x00000010 108 #define STATE_HELPLESS 0x00000020 109 #define STATE_FROZEN 0x00000040 110 #define STATE_PETRIFIED 0x00000080 111 #define STATE_EXPLODING 0x00000100 // chunky death 112 #define STATE_PST_MIRROR 0x00000100 // pst version of STATE_MIRROR (overlaps STATE_EXPLODING) 113 #define STATE_FLAME 0x00000200 // charred to death 114 #define STATE_ACID 0x00000400 // disolved to death 115 #define STATE_DEAD 0x00000800 116 #define STATE_SILENCED 0x00001000 117 #define STATE_CHARMED 0x00002000 118 #define STATE_POISONED 0x00004000 119 #define STATE_HASTED 0x00008000 120 #define STATE_CRIT_PROT 0x00008000 121 #define STATE_SLOWED 0x00010000 122 #define STATE_CRIT_ENH 0x00010000 123 #define STATE_INFRA 0x00020000 124 #define STATE_BLIND 0x00040000 125 //this appears to be a mistake in the original state.ids 126 //this flag is the 'deactivate' flag, Activate/Deactivate works on it 127 // NOTE: we use IF_VISIBLE instead, so it could be removed if any conflict with disease arises 128 #define STATE_DISEASED 0x00080000 129 #define STATE_DEACTIVATED 0x00080000 130 #define STATE_FEEBLE 0x00100000 131 #define STATE_NONDET 0x00200000 132 #define STATE_INVIS2 0x00400000 133 #define STATE_EE_DUPL 0x00400000 // pst's enola projectile duplication (overlaps improved invisibility) 134 #define STATE_BLESS 0x00800000 135 #define STATE_CHANT 0x01000000 136 #define STATE_DETECT_EVIL 0x01000000 137 #define STATE_HOLY 0x02000000 138 #define STATE_PST_INVIS 0x02000000 139 #define STATE_LUCK 0x04000000 140 #define STATE_AID 0x08000000 141 #define STATE_CHANTBAD 0x10000000 142 #define STATE_ANTIMAGIC 0x10000000 143 #define STATE_BLUR 0x20000000 144 #define STATE_MIRROR 0x40000000 145 #define STATE_EMBALM 0x40000000 // pst healing with ac bonus 146 #define STATE_CONFUSED 0x80000000 147 148 #define STATE_STILL (STATE_STUNNED | STATE_FROZEN | STATE_PETRIFIED) //0xc8: not animated 149 #define _DEAD_STATES (STATE_EXPLODING|STATE_FLAME|STATE_ACID|STATE_DEAD|STATE_PETRIFIED|STATE_FROZEN) //0x0fc0: just a shorthand 150 #define STATE_MINDLESS (STATE_CONFUSED|STATE_FEEBLE|STATE_CHARMED|STATE_HELPLESS|STATE_SLEEP|STATE_BERSERK|STATE_PANIC) // 0x80102027 151 152 // can't walk or attack - helpless 153 // FIXME: why is STATE_BERSERK on the list? 154 #define STATE_CANTMOVE ((STATE_MINDLESS|STATE_STUNNED|_DEAD_STATES|STATE_DEACTIVATED)^(STATE_CHARMED|STATE_CONFUSED)) // 0x180fef 155 #define STATE_CANTSTEAL (_DEAD_STATES|STATE_DEACTIVATED|STATE_FEEBLE) //can't steal from, 0x00180fc0 156 #define STATE_CANTSEE (_DEAD_STATES|STATE_DEACTIVATED) //can't explore (even itself), 0x00080fc0 157 #define STATE_CANTLISTEN ((STATE_CANTSEE|STATE_STUNNED|STATE_MINDLESS)^(STATE_CHARMED|STATE_FEEBLE)) // 0x80080fef 158 #define STATE_NOSAVE _DEAD_STATES //don't save these, 0x00000fc0 159 160 #define EXTSTATE_PRAYER 0x00000001 161 #define EXTSTATE_PRAYER_BAD 0x00000002 162 #define EXTSTATE_RECITATION 0x00000004 163 #define EXTSTATE_REC_BAD 0x00000008 164 #define EXTSTATE_EYE_MIND 0x00000010 165 #define EXTSTATE_EYE_SWORD 0x00000020 166 #define EXTSTATE_EYE_MAGE 0x00000040 167 #define EXTSTATE_EYE_VENOM 0x00000080 168 #define EXTSTATE_EYE_SPIRIT 0x00000100 169 #define EXTSTATE_EYE_FORT 0x00000200 170 #define EXTSTATE_EYE_STONE 0x00000400 171 #define EXTSTATE_ANIMAL_RAGE 0x00000800 172 #define EXTSTATE_NO_HP 0x00001000 //disable hp info in berserk mode 173 #define EXTSTATE_BERSERK 0x00002000 174 #define EXTSTATE_NO_BACKSTAB 0x00004000 175 #define EXTSTATE_FLOATTEXTS 0x00008000 //weapon chatting (IWD) 176 #define EXTSTATE_UNSTUN 0x00010000 //receiving damage will unstun 177 #define EXTSTATE_DEAF 0x00020000 178 #define EXTSTATE_CHAOTICCMD 0x00040000 179 #define EXTSTATE_MISCAST 0x00080000 180 #define EXTSTATE_PAIN 0x00100000 181 #define EXTSTATE_MALISON 0x00200000 182 #define EXTSTATE_BLOODRAGE 0x00400000 183 #define EXTSTATE_CATSGRACE 0x00800000 184 #define EXTSTATE_MOLD 0x01000000 185 #define EXTSTATE_SHROUD 0x02000000 186 #define EXTSTATE_NO_WAKEUP 0x80000000 //original HoW engine put this on top of eye_mind 187 #define EXTSTATE_SEVEN_EYES 0x000007f0 188 189 //Multiclass flags 190 #define MC_SHOWLONGNAME 0x0001 // in iwd2 this supposedly prevents casting disruption from damage 191 #define MC_NO_DISRUPTION 0x0001 // but it is set on non-casters only (all halfgoblins) and most have no scripts 192 #define MC_REMOVE_CORPSE 0x0002 193 #define MC_KEEP_CORPSE 0x0004 194 #define MC_WAS_FIGHTER 0x0008 195 #define MC_WAS_MAGE 0x0010 196 #define MC_WAS_CLERIC 0x0020 197 #define MC_WAS_THIEF 0x0040 198 #define MC_WAS_DRUID 0x0080 199 #define MC_WAS_RANGER 0x0100 200 #define MC_WAS_ANY 0x01f8 // MC_WAS_FIGHTER | ... | MC_WAS_RANGER 201 #define MC_FALLEN_PALADIN 0x0200 202 #define MC_FALLEN_RANGER 0x0400 203 #define MC_EXPORTABLE 0x0800 // iwd2: either different meaning or leftover cruft (set in a few creatures) 204 #define MC_HIDE_HP 0x1000 // also 'large creature' according to IE dev info (definitely something else in pst) 205 #define MC_PLOT_CRITICAL 0x2000 //if dies, it means game over (IWD2) 206 #define MC_LARGE_CREATURE 0x2000 // creature is subject to alternative melee damage (BG2), overlaps with MC_PLOT_CRITICAL 207 #define MC_LIMBO_CREATURE 0x4000 208 #define MC_BEENINPARTY 0x8000 209 #define MC_ENABLED 0x8000 // TODO iwd2 override; used like activate/deactivate? 210 #define MC_SEENPARTY 0x10000 //iwd2, TODO: non-iwd2: restore item in hand 211 #define MC_INVULNERABLE 0x20000 //iwd2 212 #define MC_NONTHREATENING_ENEMY 0x40000 // iwd2, barrels/kegs 213 #define MC_NO_TALK 0x80000 //ignore dialoginterrupt 214 #define MC_IGNORE_RETURN 0x100000 // iwd2, won't be moved to start position when party rests, TODO: ee, prevent chunking death 215 #define MC_IGNORE_INHIBIT_AI 0x200000 // iwd2 version of IE_ENABLEOFFSCREENAI (guess), elsewhere unused 216 #define MC_NO_NIGHTMARE_MODS 0x400000 // TODO: ee 217 #define MC_NO_TOOLTIPS 0x800000 // bit 23, TODO: ee 218 // the following bits are set in some files in iwd2 and iwd1 219 // it's in the range of the bg2 randomwalk bits 24-30, so likely the same between all the games 220 //#define 0x4000000 // iwd2, unkown, probably irrelevant; set for 50wyv{,h,r} 221 //#define 0x20000000 // iwd2, unkown, probably irrelevant 222 //#define 0x40000000 // iwd2, unkown, probably irrelevant 223 #define MC_HOF_UPGRADED 0x80000000 // last bit, was used in memory only; repurposed to show HoF state 224 225 // specflag values 226 #define SPECF_DRIVEN 1 // automatic concentration success, no morale failure 227 #define SPECF_CRITIMMUNITY 2 // immune to critical hits 228 #define SPECF_PALADINOFF 4 // can't choose paladin levels on level up 229 #define SPECF_MONKOFF 8 // can't choose monk levels on level up 230 231 //stats 232 #define IE_HITPOINTS 0 233 #define IE_MAXHITPOINTS 1 234 #define IE_ARMORCLASS 2 235 #define IE_ACCRUSHINGMOD 3 236 #define IE_ACMISSILEMOD 4 237 #define IE_ACPIERCINGMOD 5 238 #define IE_ACSLASHINGMOD 6 239 #define IE_TOHIT 7 240 #define IE_NUMBEROFATTACKS 8 241 #define IE_SAVEVSDEATH 9 242 #define IE_SAVEVSWANDS 10 243 #define IE_SAVEVSPOLY 11 244 #define IE_SAVEVSBREATH 12 245 #define IE_SAVEVSSPELL 13 246 #define IE_SAVEFORTITUDE 9 247 #define IE_SAVEREFLEX 10 248 #define IE_SAVEWILL 11 249 #define IE_RESISTFIRE 14 250 #define IE_RESISTCOLD 15 251 #define IE_RESISTELECTRICITY 16 252 #define IE_RESISTACID 17 253 #define IE_RESISTMAGIC 18 254 #define IE_RESISTMAGICFIRE 19 255 #define IE_RESISTMAGICCOLD 20 256 #define IE_RESISTSLASHING 21 257 #define IE_RESISTCRUSHING 22 258 #define IE_RESISTPIERCING 23 259 #define IE_RESISTMISSILE 24 260 #define IE_LORE 25 261 #define IE_LOCKPICKING 26 262 #define IE_STEALTH 27 263 #define IE_TRAPS 28 264 #define IE_PICKPOCKET 29 265 #define IE_FATIGUE 30 266 #define IE_INTOXICATION 31 267 #define IE_LUCK 32 268 #define IE_TRACKING 33 269 #define IE_LEVEL 34 270 #define IE_LEVELFIGHTER 34 //for pst, iwd2 271 #define IE_SEX 35 272 #define IE_STR 36 273 #define IE_STREXTRA 37 274 #define IE_INT 38 275 #define IE_WIS 39 276 #define IE_DEX 40 277 #define IE_CON 41 278 #define IE_CHR 42 279 #define IE_XPVALUE 43 280 #define IE_CR 43 //for iwd2, not sure if this is a good idea yet 281 #define IE_XP 44 282 #define IE_GOLD 45 283 #define IE_MORALEBREAK 46 284 #define IE_MORALERECOVERYTIME 47 285 #define IE_REPUTATION 48 286 #define IE_HATEDRACE 49 287 #define IE_DAMAGEBONUS 50 288 #define IE_SPELLFAILUREMAGE 51 289 #define IE_SPELLFAILUREPRIEST 52 290 #define IE_SPELLDURATIONMODMAGE 53 291 #define IE_SPELLDURATIONMODPRIEST 54 292 #define IE_TURNUNDEADLEVEL 55 293 #define IE_BACKSTABDAMAGEMULTIPLIER 56 294 #define IE_LAYONHANDSAMOUNT 57 295 #define IE_HELD 58 296 #define IE_POLYMORPHED 59 297 #define IE_TRANSLUCENT 60 298 #define IE_IDENTIFYMODE 61 299 #define IE_ENTANGLE 62 300 #define IE_SANCTUARY 63 301 #define IE_MINORGLOBE 64 302 #define IE_SHIELDGLOBE 65 303 #define IE_GREASE 66 304 #define IE_WEB 67 305 #define IE_LEVEL2 68 306 #define IE_LEVELMAGE 68 //pst, iwd2 307 #define IE_LEVEL3 69 308 #define IE_LEVELTHIEF 69 //pst, iwd2 309 #define IE_CASTERHOLD 70 310 #define IE_ENCUMBRANCE 71 311 #define IE_MISSILEHITBONUS 72 312 #define IE_MAGICDAMAGERESISTANCE 73 313 #define IE_RESISTPOISON 74 314 #define IE_DONOTJUMP 75 315 #define IE_AURACLEANSING 76 316 #define IE_MENTALSPEED 77 317 #define IE_PHYSICALSPEED 78 318 #define IE_CASTINGLEVELBONUSMAGE 79 319 #define IE_CASTINGLEVELBONUSCLERIC 80 320 #define IE_SEEINVISIBLE 81 321 #define IE_IGNOREDIALOGPAUSE 82 322 #define IE_MINHITPOINTS 83 323 #define IE_HITBONUSRIGHT 84 324 #define IE_HITBONUSLEFT 85 325 #define IE_DAMAGEBONUSRIGHT 86 326 #define IE_DAMAGEBONUSLEFT 87 327 #define IE_STONESKINS 88 328 #define IE_FEAT_BOW 89 329 #define IE_FEAT_CROSSBOW 90 330 #define IE_FEAT_SLING 91 331 #define IE_FEAT_AXE 92 332 #define IE_FEAT_MACE 93 333 #define IE_FEAT_FLAIL 94 334 #define IE_FEAT_POLEARM 95 335 #define IE_FEAT_HAMMER 96 336 #define IE_FEAT_STAFF 97 337 #define IE_FEAT_GREAT_SWORD 98 338 #define IE_FEAT_LARGE_SWORD 99 339 #define IE_FEAT_SMALL_SWORD 100 340 #define IE_FEAT_TOUGHNESS 101 341 #define IE_FEAT_ARMORED_ARCANA 102 342 #define IE_FEAT_CLEAVE 103 343 #define IE_FEAT_ARMOUR 104 344 #define IE_FEAT_ENCHANTMENT 105 345 #define IE_FEAT_EVOCATION 106 346 #define IE_FEAT_NECROMANCY 107 347 #define IE_FEAT_TRANSMUTATION 108 348 #define IE_FEAT_SPELL_PENETRATION 109 349 #define IE_FEAT_EXTRA_RAGE 110 350 #define IE_FEAT_EXTRA_SHAPE 111 351 #define IE_FEAT_EXTRA_SMITING 112 352 #define IE_FEAT_EXTRA_TURNING 113 353 #define IE_FEAT_BASTARDSWORD 114 354 #define IE_PROFICIENCYBASTARDSWORD 89 355 #define IE_PROFICIENCYLONGSWORD 90 356 #define IE_PROFICIENCYSHORTSWORD 91 357 #define IE_PROFICIENCYAXE 92 358 #define IE_PROFICIENCYTWOHANDEDSWORD 93 359 #define IE_PROFICIENCYKATANA 94 360 #define IE_PROFICIENCYSCIMITAR 95 //wakisashininjato 361 #define IE_PROFICIENCYDAGGER 96 362 #define IE_PROFICIENCYWARHAMMER 97 363 #define IE_PROFICIENCYSPEAR 98 364 #define IE_PROFICIENCYHALBERD 99 365 #define IE_PROFICIENCYFLAIL 100 //morningstar 366 #define IE_PROFICIENCYMACE 101 367 #define IE_PROFICIENCYQUARTERSTAFF 102 368 #define IE_PROFICIENCYCROSSBOW 103 369 #define IE_PROFICIENCYLONGBOW 104 370 #define IE_PROFICIENCYSHORTBOW 105 371 #define IE_PROFICIENCYDART 106 372 #define IE_PROFICIENCYSLING 107 373 #define IE_PROFICIENCYBLACKJACK 108 374 #define IE_PROFICIENCYGUN 109 375 #define IE_UNDEADLEVEL 109 //if i calculated correctly, this is the 21th byte in the profs array 376 #define IE_PROFICIENCYMARTIALARTS 110 377 #define IE_PROFICIENCY2HANDED 111 378 #define IE_PROFICIENCYSWORDANDSHIELD 112 379 #define IE_PROFICIENCYSINGLEWEAPON 113 380 #define IE_PROFICIENCY2WEAPON 114 381 #define IE_PROFICIENCYCLUB 115 382 #define IE_ALCHEMY 115 383 #define IE_EXTRAPROFICIENCY2 116 384 #define IE_ANIMALS 116 385 #define IE_EXTRAPROFICIENCY3 117 386 #define IE_BLUFF 117 387 #define IE_EXTRAPROFICIENCY4 118 388 #define IE_CONCENTRATION 118 389 #define IE_EXTRAPROFICIENCY5 119 390 #define IE_DIPLOMACY 119 391 #define IE_EXTRAPROFICIENCY6 120 392 #define IE_INTIMIDATE 120 393 #define IE_EXTRAPROFICIENCY7 121 394 #define IE_SEARCH 121 395 #define IE_EXTRAPROFICIENCY8 122 396 #define IE_SPELLCRAFT 122 397 #define IE_EXTRAPROFICIENCY9 123 398 #define IE_MAGICDEVICE 123 399 #define IE_EXTRAPROFICIENCY10 124 400 #define IE_SPECFLAGS 124 401 #define IE_EXTRAPROFICIENCY11 125 402 #define IE_UNCANNY_DODGE 125 403 #define IE_EXTRAPROFICIENCY12 126 404 #define IE_EXTRAPROFICIENCY13 127 405 #define IE_EXTRAPROFICIENCY14 128 406 #define IE_EXTRAPROFICIENCY15 129 407 #define IE_EXTRAPROFICIENCY16 130 408 #define IE_EXTRAPROFICIENCY17 131 409 #define IE_FEATS1 131 410 #define IE_EXTRAPROFICIENCY18 132 411 #define IE_FEATS2 132 412 #define IE_EXTRAPROFICIENCY19 133 413 #define IE_FEATS3 133 414 #define IE_EXTRAPROFICIENCY20 134 415 #define IE_FREESLOTS 134 //same as above 416 #define IE_HIDEINSHADOWS 135 417 #define IE_DETECTILLUSIONS 136 418 #define IE_SETTRAPS 137 419 #define IE_PUPPETMASTERID 138 420 #define IE_PUPPETMASTERTYPE 139 421 #define IE_PUPPETTYPE 140 422 #define IE_PUPPETID 141 423 #define IE_CHECKFORBERSERK 142 424 #define IE_BERSERKSTAGE1 143 425 #define IE_BERSERKSTAGE2 144 //attack anyone 426 #define IE_DAMAGELUCK 145 427 #define IE_CRITICALHITBONUS 146 428 #define IE_VISUALRANGE 147 429 #define IE_EXPLORE 148 430 #define IE_THRULLCHARM 149 431 #define IE_SUMMONDISABLE 150 432 #define IE_HITBONUS 151 433 #define IE_KIT 152 434 #define IE_FORCESURGE 153 435 #define IE_SURGEMOD 154 436 #define IE_IMPROVEDHASTE 155 437 #define IE_INTERNAL_0 156 438 #define IE_INTERNAL_1 157 439 #define IE_INTERNAL_2 158 440 #define IE_INTERNAL_3 159 441 #define IE_INTERNAL_4 160 442 #define IE_INTERNAL_5 161 443 #define IE_INTERNAL_6 162 444 #define IE_INTERNAL_7 163 445 #define IE_INTERNAL_8 164 446 #define IE_INTERNAL_9 165 447 #define IE_SCRIPTINGSTATE1 156 448 #define IE_SCRIPTINGSTATE2 157 449 #define IE_SCRIPTINGSTATE3 158 450 #define IE_SCRIPTINGSTATE4 159 451 #define IE_SCRIPTINGSTATE5 160 452 #define IE_SCRIPTINGSTATE6 161 453 #define IE_SCRIPTINGSTATE7 162 454 #define IE_SCRIPTINGSTATE8 163 455 #define IE_SCRIPTINGSTATE9 164 456 #define IE_SCRIPTINGSTATE10 165 457 //these are genuine bg2 stats found by research 458 #define IE_MELEETOHIT 166 459 #define IE_MELEEDAMAGE 167 460 #define IE_MISSILEDAMAGE 168 461 #define IE_NOCIRCLE 169 462 #define IE_FISTHIT 170 463 #define IE_FISTDAMAGE 171 464 #define IE_TITLE1 172 465 #define IE_TITLE2 173 466 #define IE_DISABLEOVERLAY 174 467 #define IE_DISABLEBACKSTAB 175 468 //these are clashing with GemRB now 469 //176 IE_OPEN_LOCK_BONUS 470 //177 IE_MOVE_SILENTLY_BONUS 471 //178 IE_FIND_TRAPS_BONUS 472 //179 IE_PICK_POCKETS_BONUS 473 //180 IE_HIDE_IN_SHADOWS_BONUS 474 //181 DETECT_ILLUSIONS_BONUS 475 //182 SET_TRAPS_BONUS 476 477 // some bg2 mods use these 478 #define IE_SCRIPTINGSTATE21 176 479 #define IE_SCRIPTINGSTATE22 177 480 #define IE_SCRIPTINGSTATE23 178 481 #define IE_SCRIPTINGSTATE24 179 482 #define IE_SCRIPTINGSTATE25 180 483 #define IE_SCRIPTINGSTATE26 181 484 #define IE_SCRIPTINGSTATE27 182 485 486 #define IE_ENABLEOFFSCREENAI 183 // bg2 has this on this spot 487 #define IE_EXISTANCEDELAY 184 // affects the displaying of EXISTANCE strings 488 #define IE_ATTACKNUMBERDOUBLE 185 // used by haste option 2 489 #define IE_DISABLECHUNKING 186 // no permanent death 490 #define IE_NOTURNABLE 187 // immune to turn 491 //the IE sets this stat the same time as stat 150 492 //188 IE_SUMMONDISABLE2 493 #define IE_CHAOSSHIELD 189 // defense against wild surge 494 #define IE_NPCBUMP 190 // allow npcs to be bumped? 495 #define IE_CANUSEANYITEM 191 496 #define IE_ALWAYSBACKSTAB 192 497 #define IE_SEX_CHANGED 193 // modified by opcode 0x47 498 #define IE_SPELLFAILUREINNATE 194 499 #define IE_NOTRACKING 195 // tracking doesn't detect this 500 #define IE_DEADMAGIC 196 501 #define IE_DISABLETIMESTOP 197 502 #define IE_NOSEQUESTER 198 // this doesn't work in IE, but intended 503 #define IE_STONESKINSGOLEM 199 504 //actually this stat is not used for level drain 505 #define IE_LEVELDRAIN 200 506 #define IE_AVATARREMOVAL 201 507 508 //GemRB Specific Defines 509 //these are temporary only 510 #define IE_XP_MAGE 176 // XP2 511 #define IE_XP_THIEF 177 // XP3 512 //the rest are relocated at 250+ 513 514 #define IE_ETHEREALNESS 202 515 #define IE_IMMUNITY 203 516 #define IE_DISABLEDBUTTON 204 517 #define IE_ANIMATION_ID 205 //cd 518 #define IE_STATE_ID 206 519 #define IE_EXTSTATE_ID 207 //used in how/iwd2 520 #define IE_METAL_COLOR 208 //d0 521 #define IE_COLORS 208 //same 522 #define IE_MINOR_COLOR 209 523 #define IE_MAJOR_COLOR 210 524 #define IE_SKIN_COLOR 211 525 #define IE_LEATHER_COLOR 212 526 #define IE_ARMOR_COLOR 213 527 #define IE_HAIR_COLOR 214 528 #define IE_COLORCOUNT 214 //same 529 #define IE_MC_FLAGS 215 530 #define IE_CLASSLEVELSUM 216 //iwd2 531 #define IE_ALIGNMENT 217 532 #define IE_CASTING 218 533 #define IE_ARMOR_TYPE 219 534 #define IE_TEAM 220 535 #define IE_FACTION 221 536 #define IE_SUBRACE 222 537 #define IE_SPECIES 223 // pst specific 538 #define IE_UNUSED_SKILLPTS 223 // iwd2 specific 539 //temporarily here for iwd2 540 #define IE_HATEDRACE2 224 541 #define IE_HATEDRACE3 225 542 #define IE_HATEDRACE4 226 543 #define IE_HATEDRACE5 227 544 #define IE_HATEDRACE6 228 545 #define IE_HATEDRACE7 229 546 #define IE_HATEDRACE8 230 547 #define IE_RACE 231 548 #define IE_CLASS 232 549 #define IE_GENERAL 233 550 #define IE_EA 234 551 #define IE_SPECIFIC 235 552 #define IE_SAVEDXPOS 236 553 #define IE_SAVEDYPOS 237 554 #define IE_SAVEDFACE 238 555 #define IE_USERSTAT 239 //user defined stat 556 //These are in IWD2, but in a different place 557 //core class levels (fighter, mage, thief are already stored) 558 #define IE_LEVELBARBARIAN 240 559 #define IE_LEVELBARD 241 560 #define IE_LEVELCLERIC 242 561 #define IE_LEVELDRUID 243 562 #define IE_LEVELMONK 244 563 #define IE_LEVELPALADIN 245 564 #define IE_LEVELRANGER 246 565 #define IE_LEVELSORCERER 247 566 // place for 2 more classes 567 #define IE_LEVELCLASS12 248 568 #define IE_LEVELCLASS13 249 569 570 //more GemRB internal stats 571 #define IE_DIALOGRANGE 250 // iwd2 572 #define IE_MOVEMENTRATE 251 573 #define IE_MORALE 252 // this has no place 574 #define IE_BOUNCE 253 // has projectile bouncing effect 575 #define IE_MIRRORIMAGES 254 576 577 } 578 579 #endif // ! IE_STATS_H 580