Strictify item ability enum
This commit is contained in:
@@ -114,7 +114,7 @@ cItemRec::cItemRec(){
|
||||
type = eWeapType::NOT_MELEE;
|
||||
magic_use_type = 0;
|
||||
graphic_num = 0;
|
||||
ability = ITEM_NO_ABILITY;
|
||||
ability = eItemAbil::NONE;
|
||||
ability_strength = 0;
|
||||
type_flag = 0;
|
||||
is_special = 0;
|
||||
@@ -133,7 +133,7 @@ cItemRec::cItemRec(){
|
||||
}
|
||||
|
||||
cItemRec::cItemRec(long preset){
|
||||
ability = ITEM_NO_ABILITY;
|
||||
ability = eItemAbil::NONE;
|
||||
ability_strength = 0;
|
||||
type_flag = 0;
|
||||
is_special = 0;
|
||||
@@ -440,6 +440,7 @@ std::istream& operator >> (std::istream& in, eItemType& e){
|
||||
return in;
|
||||
}
|
||||
|
||||
// TODO: Perhaps this should understand symbolic names as well?
|
||||
std::istream& operator >> (std::istream& in, eItemAbil& e){
|
||||
int i;
|
||||
in >> i;
|
||||
@@ -447,6 +448,6 @@ std::istream& operator >> (std::istream& in, eItemAbil& e){
|
||||
(i > 69 && i < 95) || (i > 109 && i < 136) ||
|
||||
(i > 149 && i < 162) || (i > 169 && i < 177))
|
||||
e = (eItemAbil) i;
|
||||
else e = ITEM_NO_ABILITY;
|
||||
else e = eItemAbil::NONE;
|
||||
return in;
|
||||
}
|
||||
|
@@ -297,134 +297,155 @@ inline bool isWeaponType(eItemType type) {
|
||||
}
|
||||
|
||||
/* items[i].ability */
|
||||
enum eItemAbil {
|
||||
enum class eItemAbil {
|
||||
// Weapon abilities
|
||||
ITEM_NO_ABILITY = 0,
|
||||
ITEM_FLAMING_WEAPON = 1,
|
||||
ITEM_DEMON_SLAYER = 2,
|
||||
ITEM_UNDEAD_SLAYER = 3,
|
||||
ITEM_LIZARD_SLAYER = 4,
|
||||
ITEM_GIANT_SLAYER = 5,
|
||||
ITEM_MAGE_SLAYER = 6,
|
||||
ITEM_PRIEST_SLAYER = 7,
|
||||
ITEM_BUG_SLAYER = 8,
|
||||
ITEM_ACIDIC_WEAPON = 9,
|
||||
ITEM_SOULSUCKER = 10,
|
||||
ITEM_DRAIN_MISSILES = 11,
|
||||
ITEM_WEAK_WEAPON = 12,
|
||||
ITEM_CAUSES_FEAR = 13,
|
||||
ITEM_POISONED_WEAPON = 14,
|
||||
NONE = 0,
|
||||
FLAMING_WEAPON = 1,
|
||||
DEMON_SLAYER = 2,
|
||||
UNDEAD_SLAYER = 3,
|
||||
LIZARD_SLAYER = 4,
|
||||
GIANT_SLAYER = 5,
|
||||
MAGE_SLAYER = 6,
|
||||
PRIEST_SLAYER = 7,
|
||||
BUG_SLAYER = 8,
|
||||
ACIDIC_WEAPON = 9,
|
||||
SOULSUCKER = 10,
|
||||
DRAIN_MISSILES = 11,
|
||||
WEAK_WEAPON = 12,
|
||||
CAUSES_FEAR = 13,
|
||||
POISONED_WEAPON = 14,
|
||||
// General abilities
|
||||
ITEM_PROTECTION = 30,
|
||||
ITEM_FULL_PROTECTION = 31,
|
||||
ITEM_FIRE_PROTECTION = 32,
|
||||
ITEM_COLD_PROTECTION = 33,
|
||||
ITEM_POISON_PROTECTION = 34,
|
||||
ITEM_MAGIC_PROTECTION = 35,
|
||||
ITEM_ACID_PROTECTION = 36,
|
||||
ITEM_SKILL = 37,
|
||||
ITEM_STRENGTH = 38,
|
||||
ITEM_DEXTERITY = 39,
|
||||
ITEM_INTELLIGENCE = 40,
|
||||
ITEM_ACCURACY = 41,
|
||||
ITEM_THIEVING = 42,
|
||||
ITEM_GIANT_STRENGTH = 43,
|
||||
ITEM_LIGHTER_OBJECT = 44,
|
||||
ITEM_HEAVIER_OBJECT = 45,
|
||||
ITEM_OCCASIONAL_BLESS = 46,
|
||||
ITEM_OCCASIONAL_HASTE = 47,
|
||||
ITEM_LIFE_SAVING = 48,
|
||||
ITEM_PROTECT_FROM_PETRIFY = 49,
|
||||
ITEM_REGENERATE = 50,
|
||||
ITEM_POISON_AUGMENT = 51,
|
||||
ITEM_DISEASE_PARTY = 52,
|
||||
ITEM_WILL = 53,
|
||||
ITEM_FREE_ACTION = 54,
|
||||
ITEM_SPEED = 55,
|
||||
ITEM_SLOW_WEARER = 56,
|
||||
ITEM_PROTECT_FROM_UNDEAD = 57,
|
||||
ITEM_PROTECT_FROM_DEMONS = 58,
|
||||
ITEM_PROTECT_FROM_HUMANOIDS = 59,
|
||||
ITEM_PROTECT_FROM_REPTILES = 60,
|
||||
ITEM_PROTECT_FROM_GIANTS = 61,
|
||||
ITEM_PROTECT_FROM_DISEASE = 62,
|
||||
PROTECTION = 30,
|
||||
FULL_PROTECTION = 31,
|
||||
FIRE_PROTECTION = 32,
|
||||
COLD_PROTECTION = 33,
|
||||
POISON_PROTECTION = 34,
|
||||
MAGIC_PROTECTION = 35,
|
||||
ACID_PROTECTION = 36,
|
||||
SKILL = 37,
|
||||
STRENGTH = 38,
|
||||
DEXTERITY = 39,
|
||||
INTELLIGENCE = 40,
|
||||
ACCURACY = 41,
|
||||
THIEVING = 42,
|
||||
GIANT_STRENGTH = 43,
|
||||
LIGHTER_OBJECT = 44,
|
||||
HEAVIER_OBJECT = 45,
|
||||
OCCASIONAL_BLESS = 46,
|
||||
OCCASIONAL_HASTE = 47,
|
||||
LIFE_SAVING = 48,
|
||||
PROTECT_FROM_PETRIFY = 49,
|
||||
REGENERATE = 50,
|
||||
POISON_AUGMENT = 51,
|
||||
DISEASE_PARTY = 52,
|
||||
WILL = 53,
|
||||
FREE_ACTION = 54,
|
||||
SPEED = 55,
|
||||
SLOW_WEARER = 56,
|
||||
PROTECT_FROM_UNDEAD = 57,
|
||||
PROTECT_FROM_DEMONS = 58,
|
||||
PROTECT_FROM_HUMANOIDS = 59,
|
||||
PROTECT_FROM_REPTILES = 60,
|
||||
PROTECT_FROM_GIANTS = 61,
|
||||
PROTECT_FROM_DISEASE = 62,
|
||||
// Nonspell Usable
|
||||
ITEM_POISON_WEAPON = 70, //put poison on weapon
|
||||
ITEM_BLESS_CURSE = 71,
|
||||
ITEM_AFFECT_POISON = 72,
|
||||
ITEM_HASTE_SLOW = 73,
|
||||
ITEM_AFFECT_INVULN = 74,
|
||||
ITEM_AFFECT_MAGIC_RES = 75,
|
||||
ITEM_AFFECT_WEB = 76,
|
||||
ITEM_AFFECT_DISEASE = 77,
|
||||
ITEM_AFFECT_SANCTUARY = 78,
|
||||
ITEM_AFFECT_DUMBFOUND = 79,
|
||||
ITEM_AFFECT_MARTYRS_SHIELD = 80,
|
||||
ITEM_AFFECT_SLEEP = 81,
|
||||
ITEM_AFFECT_PARALYSIS = 82,
|
||||
ITEM_AFFECT_ACID = 83,
|
||||
ITEM_BLISS = 84,
|
||||
ITEM_AFFECT_EXPERIENCE = 85,
|
||||
ITEM_AFFECT_SKILL_POINTS = 86,
|
||||
ITEM_AFFECT_HEALTH = 87,
|
||||
ITEM_AFFECT_SPELL_POINTS = 88,
|
||||
ITEM_DOOM = 89,
|
||||
ITEM_LIGHT = 90,
|
||||
ITEM_STEALTH = 91,
|
||||
ITEM_FIREWALK = 92,
|
||||
ITEM_FLYING = 93,
|
||||
ITEM_MAJOR_HEALING = 94,
|
||||
ITEM_CALL_SPECIAL = 95,
|
||||
POISON_WEAPON = 70, //put poison on weapon
|
||||
BLESS_CURSE = 71,
|
||||
AFFECT_POISON = 72,
|
||||
HASTE_SLOW = 73,
|
||||
AFFECT_INVULN = 74,
|
||||
AFFECT_MAGIC_RES = 75,
|
||||
AFFECT_WEB = 76,
|
||||
AFFECT_DISEASE = 77,
|
||||
AFFECT_SANCTUARY = 78,
|
||||
AFFECT_DUMBFOUND = 79,
|
||||
AFFECT_MARTYRS_SHIELD = 80,
|
||||
AFFECT_SLEEP = 81,
|
||||
AFFECT_PARALYSIS = 82,
|
||||
AFFECT_ACID = 83,
|
||||
BLISS = 84,
|
||||
AFFECT_EXPERIENCE = 85,
|
||||
AFFECT_SKILL_POINTS = 86,
|
||||
AFFECT_HEALTH = 87,
|
||||
AFFECT_SPELL_POINTS = 88,
|
||||
DOOM = 89,
|
||||
LIGHT = 90,
|
||||
STEALTH = 91,
|
||||
FIREWALK = 92,
|
||||
FLYING = 93,
|
||||
MAJOR_HEALING = 94,
|
||||
CALL_SPECIAL = 95,
|
||||
// Spell Usable
|
||||
ITEM_SPELL_FLAME = 110,
|
||||
ITEM_SPELL_FIREBALL = 111,
|
||||
ITEM_SPELL_FIRESTORM = 112,
|
||||
ITEM_SPELL_KILL = 113,
|
||||
ITEM_SPELL_ICE_BOLT = 114,
|
||||
ITEM_SPELL_SLOW = 115,
|
||||
ITEM_SPELL_SHOCKWAVE = 116,
|
||||
ITEM_SPELL_DISPEL_UNDEAD = 117,
|
||||
ITEM_SPELL_DISPEL_SPIRIT = 118,
|
||||
ITEM_SPELL_SUMMONING = 119,
|
||||
ITEM_SPELL_MASS_SUMMONING = 120,
|
||||
ITEM_SPELL_ACID_SPRAY = 121,
|
||||
ITEM_SPELL_STINKING_CLOUD = 122,
|
||||
ITEM_SPELL_SLEEP_FIELD = 123,
|
||||
ITEM_SPELL_VENOM = 124,
|
||||
ITEM_SPELL_SHOCKSTORM = 125,
|
||||
ITEM_SPELL_PARALYSIS = 126,
|
||||
ITEM_SPELL_WEB_SPELL = 127,
|
||||
ITEM_SPELL_STRENGTHEN_TARGET = 128, //wand of carrunos effect
|
||||
ITEM_SPELL_QUICKFIRE = 129,
|
||||
ITEM_SPELL_MASS_CHARM = 130,
|
||||
ITEM_SPELL_MAGIC_MAP = 131,
|
||||
ITEM_SPELL_DISPEL_BARRIER = 132,
|
||||
ITEM_SPELL_MAKE_ICE_WALL = 133,
|
||||
ITEM_SPELL_CHARM_SPELL = 134,
|
||||
ITEM_SPELL_ANTIMAGIC_CLOUD = 135,
|
||||
FLAME = 110,
|
||||
FIREBALL = 111,
|
||||
FIRESTORM = 112,
|
||||
KILL = 113,
|
||||
ICE_BOLT = 114,
|
||||
SLOW = 115,
|
||||
SHOCKWAVE = 116,
|
||||
DISPEL_UNDEAD = 117,
|
||||
DISPEL_SPIRIT = 118,
|
||||
SUMMONING = 119,
|
||||
MASS_SUMMONING = 120,
|
||||
ACID_SPRAY = 121,
|
||||
STINKING_CLOUD = 122,
|
||||
SLEEP_FIELD = 123,
|
||||
VENOM = 124,
|
||||
SHOCKSTORM = 125,
|
||||
PARALYSIS = 126,
|
||||
WEB = 127,
|
||||
STRENGTHEN_TARGET = 128, //wand of carrunos effect
|
||||
QUICKFIRE = 129,
|
||||
MASS_CHARM = 130,
|
||||
MAGIC_MAP = 131,
|
||||
DISPEL_BARRIER = 132,
|
||||
ICE_WALL = 133,
|
||||
CHARM_SPELL = 134,
|
||||
ANTIMAGIC_CLOUD = 135,
|
||||
// Reagents
|
||||
ITEM_HOLLY = 150, // Holly/Toadstool
|
||||
ITEM_COMFREY_ROOT = 151,
|
||||
ITEM_GLOWING_NETTLE = 152,
|
||||
ITEM_WORMGRASS = 153, // Crypt Shroom/Wormgr.
|
||||
ITEM_ASPTONGUE_MOLD = 154,
|
||||
ITEM_EMBER_FLOWERS = 155,
|
||||
ITEM_GRAYMOLD = 156,
|
||||
ITEM_MANDRAKE = 157,
|
||||
ITEM_SAPPHIRE = 158,
|
||||
ITEM_SMOKY_CRYSTAL = 159,
|
||||
ITEM_RESSURECTION_BALM = 160,
|
||||
ITEM_LOCKPICKS = 161,
|
||||
HOLLY = 150, // Holly/Toadstool
|
||||
COMFREY = 151, // Comfreey Root
|
||||
NETTLE = 152, // Glowing Nettle
|
||||
WORMGRASS = 153, // Crypt Shroom/Wormgrass
|
||||
ASPTONGUE = 154, // Asptongue Mold
|
||||
EMBERF = 155, // Ember Flower
|
||||
GRAYMOLD = 156,
|
||||
MANDRAKE = 157,
|
||||
SAPPHIRE = 158,
|
||||
SMOKY_CRYSTAL = 159,
|
||||
RESSURECTION_BALM = 160,
|
||||
LOCKPICKS = 161,
|
||||
// Missile Abilities
|
||||
ITEM_MISSILE_RETURNING = 170,
|
||||
ITEM_MISSILE_LIGHTNING = 171,
|
||||
ITEM_MISSILE_EXPLODING = 172,
|
||||
ITEM_MISSILE_ACID = 173,
|
||||
ITEM_MISSILE_SLAY_UNDEAD = 174,
|
||||
ITEM_MISSILE_SLAY_DEMON = 175,
|
||||
ITEM_MISSILE_HEAL_TARGET = 176,
|
||||
MISSILE_RETURNING = 170,
|
||||
MISSILE_LIGHTNING = 171,
|
||||
MISSILE_EXPLODING = 172,
|
||||
MISSILE_ACID = 173,
|
||||
MISSILE_SLAY_UNDEAD = 174,
|
||||
MISSILE_SLAY_DEMON = 175,
|
||||
MISSILE_HEAL_TARGET = 176,
|
||||
};
|
||||
|
||||
enum class eItemAbilCat {
|
||||
INVALID = -1,
|
||||
WEAPON, GENERAL, NONSPELL, SPELL, REAGENT, MISSILE
|
||||
};
|
||||
|
||||
inline eItemAbilCat getItemAbilCategory(eItemAbil abil) {
|
||||
int code = (int) abil;
|
||||
if(code >= 0 && code <= 14)
|
||||
return eItemAbilCat::WEAPON;
|
||||
if(code >= 30 && code <= 62)
|
||||
return eItemAbilCat::GENERAL;
|
||||
if(code >= 70 && code <= 95)
|
||||
return eItemAbilCat::NONSPELL;
|
||||
if(code >= 110 && code <= 135)
|
||||
return eItemAbilCat::SPELL;
|
||||
if(code >= 150 && code <= 161)
|
||||
return eItemAbilCat::REAGENT;
|
||||
if(code >= 170 && code <= 176)
|
||||
return eItemAbilCat::MISSILE;
|
||||
return eItemAbilCat::INVALID;
|
||||
}
|
||||
|
||||
/* adven[i].skills */ //complete
|
||||
enum eSkill {
|
||||
|
Reference in New Issue
Block a user