aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/Spell.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2020-11-15 21:59:18 +0100
committerShauren <shauren.trinity@gmail.com>2020-12-08 18:16:46 +0100
commit7f6eef37e61ea3d47bf8028c6e37175ba0a71373 (patch)
treec7220fc9dba28d51779c8c1a5a613f07d6cb7794 /src/server/game/Spells/Spell.cpp
parent587ec1fd21ac7cba275fbe9131ae5a694465834d (diff)
Core/Spells: Use new spell visual structure instead of just SpellXSpellVisualID
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
-rw-r--r--src/server/game/Spells/Spell.cpp27
1 files changed, 16 insertions, 11 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 818307d47cd..8cf98594710 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -591,7 +591,7 @@ m_spellValue(new SpellValue(m_spellInfo, caster)), _spellEvent(nullptr)
focusObject = nullptr;
m_castId = ObjectGuid::Create<HighGuid::Cast>(SPELL_CAST_SOURCE_NORMAL, m_caster->GetMapId(), m_spellInfo->Id, m_caster->GetMap()->GenerateLowGuid<HighGuid::Cast>());
memset(m_misc.Raw.Data, 0, sizeof(m_misc.Raw.Data));
- m_SpellVisual = caster->GetCastSpellXSpellVisualId(m_spellInfo);
+ m_SpellVisual.SpellXSpellVisualID = caster->GetCastSpellXSpellVisualId(m_spellInfo);
m_triggeredByAuraSpell = nullptr;
m_spellAura = nullptr;
@@ -3994,7 +3994,7 @@ void Spell::SendCastResult(SpellCastResult result, uint32* param1 /*= nullptr*/,
result = SPELL_FAILED_DONT_REPORT;
WorldPackets::Spells::CastFailed castFailed;
- castFailed.Visual.SpellXSpellVisualID = m_SpellVisual;
+ castFailed.Visual = m_SpellVisual;
FillSpellCastFailedArgs(castFailed, m_castId, m_spellInfo, result, m_customError, param1, param2, m_caster->ToPlayer());
m_caster->ToPlayer()->SendDirectMessage(castFailed.Write());
}
@@ -4016,13 +4016,13 @@ void Spell::SendPetCastResult(SpellCastResult result, uint32* param1 /*= nullptr
owner->ToPlayer()->SendDirectMessage(petCastFailed.Write());
}
-void Spell::SendCastResult(Player* caster, SpellInfo const* spellInfo, uint32 spellVisual, ObjectGuid cast_count, SpellCastResult result, SpellCustomErrors customError /*= SPELL_CUSTOM_ERROR_NONE*/, uint32* param1 /*= nullptr*/, uint32* param2 /*= nullptr*/)
+void Spell::SendCastResult(Player* caster, SpellInfo const* spellInfo, SpellCastVisual spellVisual, ObjectGuid cast_count, SpellCastResult result, SpellCustomErrors customError /*= SPELL_CUSTOM_ERROR_NONE*/, uint32* param1 /*= nullptr*/, uint32* param2 /*= nullptr*/)
{
if (result == SPELL_CAST_OK)
return;
WorldPackets::Spells::CastFailed packet;
- packet.Visual.SpellXSpellVisualID = spellVisual;
+ packet.Visual = spellVisual;
FillSpellCastFailedArgs(packet, cast_count, spellInfo, result, customError, param1, param2, caster);
caster->SendDirectMessage(packet.Write());
}
@@ -4083,7 +4083,7 @@ void Spell::SendSpellStart()
castData.CastID = m_castId;
castData.OriginalCastID = m_originalCastId;
castData.SpellID = m_spellInfo->Id;
- castData.Visual.SpellXSpellVisualID = m_SpellVisual;
+ castData.Visual = m_SpellVisual;
castData.CastFlags = castFlags;
castData.CastFlagsEx = m_castFlagsEx;
castData.CastTime = m_casttime;
@@ -4199,7 +4199,7 @@ void Spell::SendSpellGo()
castData.CastID = m_castId;
castData.OriginalCastID = m_originalCastId;
castData.SpellID = m_spellInfo->Id;
- castData.Visual.SpellXSpellVisualID = m_SpellVisual;
+ castData.Visual = m_SpellVisual;
castData.CastFlags = castFlags;
castData.CastFlagsEx = m_castFlagsEx;
castData.CastTime = getMSTime();
@@ -4476,7 +4476,7 @@ void Spell::SendInterrupted(uint8 result)
failurePacket.CasterUnit = m_caster->GetGUID();
failurePacket.CastID = m_castId;
failurePacket.SpellID = m_spellInfo->Id;
- failurePacket.Visual.SpellXSpellVisualID = m_SpellVisual;
+ failurePacket.Visual = m_SpellVisual;
failurePacket.Reason = result;
m_caster->SendMessageToSet(failurePacket.Write(), true);
@@ -4484,7 +4484,7 @@ void Spell::SendInterrupted(uint8 result)
failedPacket.CasterUnit = m_caster->GetGUID();
failedPacket.CastID = m_castId;
failedPacket.SpellID = m_spellInfo->Id;
- failedPacket.Visual.SpellXSpellVisualID = m_SpellVisual;
+ failedPacket.Visual = m_SpellVisual;
failedPacket.Reason = result;
m_caster->SendMessageToSet(failedPacket.Write(), true);
}
@@ -4495,7 +4495,7 @@ void Spell::SendChannelUpdate(uint32 time)
{
m_caster->ClearChannelObjects();
m_caster->SetChannelSpellId(0);
- m_caster->SetChannelSpellXSpellVisualId(0);
+ m_caster->SetChannelSpellXSpellVisualId({});
}
WorldPackets::Spells::SpellChannelUpdate spellChannelUpdate;
@@ -4509,7 +4509,7 @@ void Spell::SendChannelStart(uint32 duration)
WorldPackets::Spells::SpellChannelStart spellChannelStart;
spellChannelStart.CasterGUID = m_caster->GetGUID();
spellChannelStart.SpellID = m_spellInfo->Id;
- spellChannelStart.Visual.SpellXSpellVisualID = m_SpellVisual;
+ spellChannelStart.Visual = m_SpellVisual;
spellChannelStart.ChannelDuration = duration;
m_caster->SendMessageToSet(spellChannelStart.Write(), true);
@@ -7176,7 +7176,7 @@ bool Spell::IsAutoActionResetSpell() const
bool Spell::IsNeedSendToClient() const
{
- return m_SpellVisual || m_spellInfo->IsChanneled() ||
+ return m_SpellVisual.SpellXSpellVisualID || m_SpellVisual.ScriptVisualID || m_spellInfo->IsChanneled() ||
(m_spellInfo->HasAttribute(SPELL_ATTR8_AURA_SEND_AMOUNT)) || m_spellInfo->HasHitDelay() || (!m_triggeredByAuraSpell && !IsTriggered());
}
@@ -8048,3 +8048,8 @@ bool WorldObjectSpellTrajTargetCheck::operator()(WorldObject* target)
}
} //namespace Trinity
+
+SpellCastVisual::operator WorldPackets::Spells::SpellCastVisual() const
+{
+ return { int32(SpellXSpellVisualID), int32(ScriptVisualID) };
+}