diff options
Diffstat (limited to 'src/server/game/Spells/SpellMgr.h')
-rw-r--r-- | src/server/game/Spells/SpellMgr.h | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/server/game/Spells/SpellMgr.h b/src/server/game/Spells/SpellMgr.h index b547c154c79..95f67f2cdaa 100644 --- a/src/server/game/Spells/SpellMgr.h +++ b/src/server/game/Spells/SpellMgr.h @@ -30,7 +30,7 @@ #include "RaceMask.h" #include "SharedDefines.h" #include "SpellDefines.h" - +#include <bitset> #include <functional> #include <map> #include <set> @@ -64,6 +64,7 @@ struct SpellShapeshiftEntry; struct SpellTargetRestrictionsEntry; struct SpellTotemsEntry; struct SpellXSpellVisualEntry; +enum AuraType : uint32; // only used in code enum SpellCategories @@ -593,6 +594,17 @@ struct SpellLearnSpellNode bool AutoLearned; // This marks the spell as automatically learned from another source that - will only be used for unlearning }; +struct CreatureImmunities +{ + std::bitset<MAX_SPELL_SCHOOL> School; + std::bitset<DISPEL_MAX> DispelType; + std::bitset<MAX_MECHANIC> Mechanic; + std::vector<SpellEffectName> Effect; + std::vector<AuraType> Aura; + bool ImmuneAoE = false; // NYI + bool ImmuneChain = false; // NYI +}; + typedef std::multimap<uint32, SpellLearnSpellNode> SpellLearnSpellMap; typedef std::pair<SpellLearnSpellMap::const_iterator, SpellLearnSpellMap::const_iterator> SpellLearnSpellMapBounds; @@ -745,6 +757,9 @@ class TC_GAME_API SpellMgr SpellAreaForAuraMapBounds GetSpellAreaForAuraMapBounds(uint32 spell_id) const; SpellAreaForAreaMapBounds GetSpellAreaForAreaMapBounds(uint32 area_id) const; + // Immunities + static CreatureImmunities const* GetCreatureImmunities(int32 creatureImmunitiesId); + // SpellInfo object management SpellInfo const* GetSpellInfo(uint32 spellId, Difficulty difficulty) const; |