aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Spells/Auras/SpellAuras.cpp5
-rw-r--r--src/server/game/Spells/SpellMgr.h8
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);