From df73a6836aae1d9d7cba2bdc14a284876ea8a567 Mon Sep 17 00:00:00 2001 From: Shauren Date: Tue, 18 Aug 2026 00:09:59 +0200 Subject: [PATCH] Core/PacketIO: Use std::span instead of pointer to vector in SMSG_MOVE_UPDATE_TELEPORT --- src/server/game/Entities/Unit/Unit.cpp | 2 +- src/server/game/Server/Packets/MovementPackets.cpp | 7 +++---- src/server/game/Server/Packets/MovementPackets.h | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 886f0a77a3..76d3abd6c6 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -13073,7 +13073,7 @@ void Unit::SendTeleportPacket(TeleportLocation const& teleportLocation) WorldPackets::Movement::MoveUpdateTeleport moveUpdateTeleport; moveUpdateTeleport.Status = &m_movementInfo; if (_movementForces) - moveUpdateTeleport.MovementForces = _movementForces->GetForces(); + moveUpdateTeleport.MovementForces = *_movementForces->GetForces(); // should this really be the unit _being_ moved? not the unit doing the moving? if (Player* playerMover = Unit::ToPlayer(GetUnitBeingMoved())) diff --git a/src/server/game/Server/Packets/MovementPackets.cpp b/src/server/game/Server/Packets/MovementPackets.cpp index e11f49c6b9..c037e10476 100644 --- a/src/server/game/Server/Packets/MovementPackets.cpp +++ b/src/server/game/Server/Packets/MovementPackets.cpp @@ -829,7 +829,7 @@ WorldPacket const* MoveUpdateTeleport::Write() { _worldPacket << *Status; - _worldPacket << uint32(MovementForces ? MovementForces->size() : 0); + _worldPacket << Size(MovementForces); _worldPacket << OptionalInit(WalkSpeed); _worldPacket << OptionalInit(RunSpeed); _worldPacket << OptionalInit(RunBackSpeed); @@ -841,9 +841,8 @@ WorldPacket const* MoveUpdateTeleport::Write() _worldPacket << OptionalInit(PitchRate); _worldPacket.FlushBits(); - if (MovementForces) - for (MovementForce const& force : *MovementForces) - _worldPacket << force; + for (MovementForce const& force : MovementForces) + _worldPacket << force; if (WalkSpeed) _worldPacket << *WalkSpeed; diff --git a/src/server/game/Server/Packets/MovementPackets.h b/src/server/game/Server/Packets/MovementPackets.h index a3f6ed5060..a362ccd098 100644 --- a/src/server/game/Server/Packets/MovementPackets.h +++ b/src/server/game/Server/Packets/MovementPackets.h @@ -359,7 +359,7 @@ namespace WorldPackets WorldPacket const* Write() override; MovementInfo* Status = nullptr; - ::MovementForces::Container const* MovementForces = nullptr; + std::span MovementForces; Optional SwimBackSpeed; Optional FlightSpeed; Optional SwimSpeed;