aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Entities/Object/Position.h7
-rw-r--r--src/server/game/Handlers/SpellHandler.cpp6
-rw-r--r--src/server/game/Server/Packets/SpellPackets.cpp6
-rw-r--r--src/server/game/Server/Packets/SpellPackets.h7
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;
};
}