diff options
| author | Rat <gmstreetrat@gmail.com> | 2014-11-30 15:37:11 +0100 |
|---|---|---|
| committer | Rat <gmstreetrat@gmail.com> | 2014-11-30 15:37:11 +0100 |
| commit | 065e1ec3cd13bd1d3fb099c95ff30d6164bf5435 (patch) | |
| tree | 049f78a5ee82aa92e3d83b06998e1b16dba30419 /src/server/game/Spells/Spell.cpp | |
| parent | eda9094226983fc719378af5c1eca1a7ce93428e (diff) | |
Core/Spells: some work on auras and packets
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
| -rw-r--r-- | src/server/game/Spells/Spell.cpp | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index bc386f0ba65..0a55735eae5 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -57,6 +57,7 @@ #include "DB2Stores.h" #include "Battlefield.h" #include "BattlefieldMgr.h" +#include "SpellPackets.h" extern pEffect SpellEffects[TOTAL_SPELL_EFFECTS]; @@ -118,6 +119,28 @@ SpellCastTargets::SpellCastTargets() : m_elevation(0), m_speed(0), m_strTarget() m_targetMask = 0; } +SpellCastTargets::SpellCastTargets(Unit* caster, uint32 targetMask, ObjectGuid targetGuid, ObjectGuid itemTargetGuid, ObjectGuid srcTransportGuid, ObjectGuid destTransportGuid, Position srcPos, Position destPos, float elevation, float missileSpeed, std::string targetString) : + m_targetMask(targetMask), m_objectTargetGUID(targetGuid), m_itemTargetGUID(itemTargetGuid), m_elevation(elevation), m_speed(missileSpeed), m_strTarget(targetString) +{ + m_objectTarget = NULL; + m_itemTarget = NULL; + m_itemTargetEntry = 0; + + m_src._transportGUID = srcTransportGuid; + if (m_src._transportGUID != ObjectGuid::Empty) + m_src._transportOffset.Relocate(srcPos); + else + m_src._position.Relocate(srcPos); + + m_dst._transportGUID = destTransportGuid; + if (m_dst._transportGUID != ObjectGuid::Empty) + m_dst._transportOffset.Relocate(destPos); + else + m_dst._position.Relocate(destPos); + + Update(caster); +} + SpellCastTargets::~SpellCastTargets() { } void SpellCastTargets::Read(ByteBuffer& data, Unit* caster) @@ -3841,7 +3864,10 @@ void Spell::SendSpellStart() if (m_spellInfo->RuneCostID && m_spellInfo->PowerType == POWER_RUNES) castFlags |= CAST_FLAG_NO_GCD; // not needed, but Blizzard sends it - WorldPacket data(SMSG_SPELL_START, (8+8+4+4+2)); + WorldPackets::Spells::SendSpellStart spellStart; + spellStart.spell = this; + + /*WorldPacket data(SMSG_SPELL_START, (8+8+4+4+2)); if (m_CastItem) data << m_CastItem->GetPackGUID(); else @@ -3901,9 +3927,9 @@ void Spell::SendSpellStart() data << uint8(0); // unkByte // if (unkByte == 2) // data.append(0); - } + }*/ - m_caster->SendMessageToSet(&data, true); + m_caster->SendMessageToSet(spellStart.Write(), true); } void Spell::SendSpellGo() |
