diff options
-rw-r--r-- | src/server/game/Spells/Auras/SpellAuras.cpp | 5 | ||||
-rw-r--r-- | src/server/game/Spells/SpellMgr.h | 8 |
2 files changed, 9 insertions, 4 deletions
diff --git a/src/server/game/Spells/Auras/SpellAuras.cpp b/src/server/game/Spells/Auras/SpellAuras.cpp index 3ebfa44492c..fea26e09e9e 100644 --- a/src/server/game/Spells/Auras/SpellAuras.cpp +++ b/src/server/game/Spells/Auras/SpellAuras.cpp @@ -754,10 +754,7 @@ bool Aura::CanBeSaved() const bool Aura::IsVisible() const { - // Is this blizzlike? show totem passive auras - if (GetOwner()->GetTypeId() == TYPEID_UNIT && m_owner->ToCreature()->isTotem() && IsPassive()) - return true; - return !IsPassive() || HasEffectType(SPELL_AURA_ABILITY_IGNORE_AURASTATE); + return !IsPassive() || HasAreaAuraEffect(GetSpellProto()) || HasEffectType(SPELL_AURA_ABILITY_IGNORE_AURASTATE); } void Aura::UnregisterSingleTarget() diff --git a/src/server/game/Spells/SpellMgr.h b/src/server/game/Spells/SpellMgr.h index 872a19a27f1..8f030fc9c87 100644 --- a/src/server/game/Spells/SpellMgr.h +++ b/src/server/game/Spells/SpellMgr.h @@ -408,6 +408,14 @@ inline bool IsAreaAuraEffect(uint32 effect) return false; } +inline bool HasAreaAuraEffect(SpellEntry const *spellInfo) +{ + for (uint8 i=0;i<MAX_SPELL_EFFECTS;++i) + if (IsAreaAuraEffect(spellInfo->Effect[i])) + return true; + return false; +} + inline bool IsUnitOwnedAuraEffect(uint32 effect) { return (IsAreaAuraEffect(effect) || effect == SPELL_EFFECT_APPLY_AURA); |