aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorthenecromancer <none@none>2010-07-21 01:22:52 +0200
committerthenecromancer <none@none>2010-07-21 01:22:52 +0200
commita71d11149f7cdf28cd3b72606452c403f5bdc1ad (patch)
tree726f7e067f629a99a57cd65739e9444f07beb693 /src
parentc9860e3b9f888132ea63de1a3c81d170ae6252e2 (diff)
Make passive auras always visible when they've got some area effect.
--HG-- branch : trunk
Diffstat (limited to 'src')
-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);