diff options
-rw-r--r-- | src/server/game/Entities/Object/Position.h | 7 | ||||
-rw-r--r-- | src/server/game/Handlers/SpellHandler.cpp | 6 | ||||
-rw-r--r-- | src/server/game/Server/Packets/SpellPackets.cpp | 6 | ||||
-rw-r--r-- | src/server/game/Server/Packets/SpellPackets.h | 7 |
4 files changed, 17 insertions, 9 deletions
diff --git a/src/server/game/Entities/Object/Position.h b/src/server/game/Entities/Object/Position.h index ce4fd7dcfbc..cc528b973f8 100644 --- a/src/server/game/Entities/Object/Position.h +++ b/src/server/game/Entities/Object/Position.h @@ -20,6 +20,8 @@ #include "Common.h" +#include <G3D/Vector3.h> + class ByteBuffer; struct Position @@ -87,6 +89,11 @@ public: m_positionX = pos->m_positionX; m_positionY = pos->m_positionY; m_positionZ = pos->m_positionZ; SetOrientation(pos->m_orientation); } + void Relocate(G3D::Vector3 const& pos) + { + m_positionX = pos.x; m_positionY = pos.y; m_positionZ = pos.z; + } + void RelocateOffset(Position const &offset); void SetOrientation(float orientation) diff --git a/src/server/game/Handlers/SpellHandler.cpp b/src/server/game/Handlers/SpellHandler.cpp index 4d464e8d39d..1a0d5b16663 100644 --- a/src/server/game/Handlers/SpellHandler.cpp +++ b/src/server/game/Handlers/SpellHandler.cpp @@ -579,9 +579,9 @@ void WorldSession::HandleMissileTrajectoryCollision(WorldPackets::Spells::Missil WorldPacket data(SMSG_NOTIFY_MISSILE_TRAJECTORY_COLLISION, 21); data << packet.Target; data << uint8(packet.CastID); - data << float(packet.CollisionPos.m_positionX); - data << float(packet.CollisionPos.m_positionY); - data << float(packet.CollisionPos.m_positionZ); + data << float(packet.CollisionPos.x); + data << float(packet.CollisionPos.y); + data << float(packet.CollisionPos.z); caster->SendMessageToSet(&data, true); } diff --git a/src/server/game/Server/Packets/SpellPackets.cpp b/src/server/game/Server/Packets/SpellPackets.cpp index f066f929faf..ff6ec903990 100644 --- a/src/server/game/Server/Packets/SpellPackets.cpp +++ b/src/server/game/Server/Packets/SpellPackets.cpp @@ -805,7 +805,7 @@ void WorldPackets::Spells::MissileTrajectoryCollision::Read() _worldPacket >> Target; _worldPacket >> SpellID; _worldPacket >> CastID; - _worldPacket >> CollisionPos.PositionXYZStream(); + _worldPacket >> CollisionPos; } void WorldPackets::Spells::UpdateMissileTrajectory::Read() @@ -815,8 +815,8 @@ void WorldPackets::Spells::UpdateMissileTrajectory::Read() _worldPacket >> SpellID; _worldPacket >> Pitch; _worldPacket >> Speed; - _worldPacket >> FirePos.PositionXYZStream(); - _worldPacket >> ImpactPos.PositionXYZStream(); + _worldPacket >> FirePos; + _worldPacket >> ImpactPos; bool hasStatus = _worldPacket.ReadBit(); _worldPacket.ResetBitPos(); diff --git a/src/server/game/Server/Packets/SpellPackets.h b/src/server/game/Server/Packets/SpellPackets.h index 8785313b6fc..4a8c1211a85 100644 --- a/src/server/game/Server/Packets/SpellPackets.h +++ b/src/server/game/Server/Packets/SpellPackets.h @@ -19,6 +19,7 @@ #define SpellPackets_h__ #include "Packet.h" +#include "PacketUtilities.h" #include "Player.h" #include "SpellAuras.h" #include "Spell.h" @@ -835,7 +836,7 @@ namespace WorldPackets ObjectGuid Target; int32 SpellID = 0; uint8 CastID = 0; - Position CollisionPos; + G3D::Vector3 CollisionPos; }; class UpdateMissileTrajectory final : public ClientPacket @@ -850,8 +851,8 @@ namespace WorldPackets int32 SpellID = 0; float Pitch = 0.0; float Speed = 0.0; - Position FirePos; - Position ImpactPos; + G3D::Vector3 FirePos; + G3D::Vector3 ImpactPos; Optional<MovementInfo> Status; }; } |