diff options
| author | Shauren <shauren.trinity@gmail.com> | 2017-02-18 21:55:28 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2017-02-18 21:55:28 +0100 |
| commit | 5e437f5d3d500b735eb623914a6cfc6bcb35247b (patch) | |
| tree | 19544b0c8685de73eaf6772b70b7721ec2b52623 /src/server/game/Server | |
| parent | 255dd29562ae42a73c5947c2a8907faac888af31 (diff) | |
Core/Movement: Implement SpellEffectExtraData curve modifiers
Diffstat (limited to 'src/server/game/Server')
| -rw-r--r-- | src/server/game/Server/Packets/MovementPackets.cpp | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/src/server/game/Server/Packets/MovementPackets.cpp b/src/server/game/Server/Packets/MovementPackets.cpp index 3156a8516b3..20405fbd097 100644 --- a/src/server/game/Server/Packets/MovementPackets.cpp +++ b/src/server/game/Server/Packets/MovementPackets.cpp @@ -302,7 +302,7 @@ void WorldPackets::Movement::CommonMovement::WriteCreateObjectSplineDataBlock(:: data.WriteBits(moveSpline.getPath().size(), 16); data.WriteBits(uint8(moveSpline.spline.mode()), 2); // Mode data.WriteBit(0); // HasSplineFilter - data.WriteBit(0); // HasSpellEffectExtraData + data.WriteBit(moveSpline.spell_effect_extra.is_initialized()); // HasSpellEffectExtraData data.FlushBits(); //if (HasSplineFilterKey) @@ -341,13 +341,13 @@ void WorldPackets::Movement::CommonMovement::WriteCreateObjectSplineDataBlock(:: data.append<G3D::Vector3>(&moveSpline.getPath()[0], moveSpline.getPath().size()); - //if (HasSpellEffectExtraData) - //{ - // data << ObjectGuid(TargetGUID); - // data << uint32(SpellVisualID); - // data << uint32(ProgressCurveID); - // data << uint32(ParabolicCurveID); - //} + if (moveSpline.spell_effect_extra) + { + data << moveSpline.spell_effect_extra->Target; + data << uint32(moveSpline.spell_effect_extra->SpellVisualId); + data << uint32(moveSpline.spell_effect_extra->ProgressCurveId); + data << uint32(moveSpline.spell_effect_extra->ParabolicCurveId); + } } } @@ -381,6 +381,15 @@ void WorldPackets::Movement::MonsterMove::InitializeSplineData(::Movement::MoveS if (splineFlags.fadeObject) movementSpline.SpecialTime = moveSpline.effect_start_time; + if (moveSpline.spell_effect_extra) + { + movementSpline.SpellEffectExtraData = boost::in_place(); + movementSpline.SpellEffectExtraData->TargetGUID = moveSpline.spell_effect_extra->Target; + movementSpline.SpellEffectExtraData->SpellVisualID = moveSpline.spell_effect_extra->SpellVisualId; + movementSpline.SpellEffectExtraData->ProgressCurveID = moveSpline.spell_effect_extra->ProgressCurveId; + movementSpline.SpellEffectExtraData->ParabolicCurveID = moveSpline.spell_effect_extra->ParabolicCurveId; + } + ::Movement::Spline<int32> const& spline = moveSpline.spline; std::vector<G3D::Vector3> const& array = spline.getPoints(); |
