aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShocker <shocker@freakz.ro>2012-02-09 10:29:45 -0800
committerShocker <shocker@freakz.ro>2012-02-09 10:29:45 -0800
commit4623db0abe917ed7099873456125b906e017ad4b (patch)
tree0104f9d7cd3a9c191b3f373944a4be82f633a589 /src
parentd2e018dbbc7b207c0b7370df4510e17f803e8bef (diff)
parent16300d091464f2202f3f029f0a18f0ed23d915d3 (diff)
Merge pull request #5052 from devilcoredev/fix_003
Core/Spells: Check line of sight for AoE targeted spells
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Spells/Spell.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index b1aeb41a126..67d4c542024 100755
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -4767,6 +4767,16 @@ SpellCastResult Spell::CheckCast(bool strict)
}
}
+ //Check for line of sight for spells with dest
+ if (m_targets.HasDst())
+ {
+ float x, y, z;
+ m_targets.GetDst()->GetPosition(x, y, z);
+
+ if (!(m_spellInfo->AttributesEx2 & SPELL_ATTR2_CAN_TARGET_NOT_IN_LOS) && VMAP::VMapFactory::checkSpellForLoS(m_spellInfo->Id) && !m_caster->IsWithinLOS(x, y, z))
+ return SPELL_FAILED_LINE_OF_SIGHT;
+ }
+
// check pet presence
for (int j = 0; j < MAX_SPELL_EFFECTS; ++j)
{