aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/Spell.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2015-07-19 00:31:11 +0200
committerShauren <shauren.trinity@gmail.com>2015-07-19 00:31:11 +0200
commit1273c0b5376c158d3009397071fa2dde5b1f384b (patch)
treef1624b6e58db9c56213d7c586b7d2bb3e9c88f14 /src/server/game/Spells/Spell.cpp
parentf4536f38123c536d90733d047e1072b4dd88e910 (diff)
Core/PacketIO: Updated and enabled spell packets
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
-rw-r--r--src/server/game/Spells/Spell.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 5dd7a7cb2fe..8bca6ab88d5 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -4240,6 +4240,7 @@ void Spell::SendInterrupted(uint8 result)
failurePacket.CasterUnit = m_caster->GetGUID();
failurePacket.CastID = m_cast_count;
failurePacket.SpellID = m_spellInfo->Id;
+ failurePacket.SpelXSpellVisualID = m_SpellVisual;
failurePacket.Reason = result;
m_caster->SendMessageToSet(failurePacket.Write(), true);
@@ -4278,6 +4279,16 @@ void Spell::SendChannelStart(uint32 duration)
spellChannelStart.ChannelDuration = duration;
m_caster->SendMessageToSet(spellChannelStart.Write(), true);
+ uint32 schoolImmunityMask = m_caster->GetSchoolImmunityMask();
+ uint32 mechanicImmunityMask = m_caster->GetMechanicImmunityMask();
+
+ if (schoolImmunityMask || mechanicImmunityMask)
+ {
+ spellChannelStart.InterruptImmunities = boost::in_place();
+ spellChannelStart.InterruptImmunities->SchoolImmunities = schoolImmunityMask;
+ spellChannelStart.InterruptImmunities->Immunities = mechanicImmunityMask;
+ }
+
m_timer = duration;
if (!channelTarget.IsEmpty())
m_caster->SetChannelObjectGuid(channelTarget);