From a8f01e07d111ea14cbe843d82fbfce19f63faa12 Mon Sep 17 00:00:00 2001 From: Shauren Date: Tue, 14 Oct 2025 13:11:41 +0200 Subject: Core/Entities: Merge duplicate functions calculating relative positions - remove CalculatePassengerPosition/CalculatePassengerOffset from TransportBase class --- src/server/game/Handlers/MovementHandler.cpp | 30 +++++++++++++--------------- 1 file changed, 14 insertions(+), 16 deletions(-) (limited to 'src/server/game/Handlers/MovementHandler.cpp') diff --git a/src/server/game/Handlers/MovementHandler.cpp b/src/server/game/Handlers/MovementHandler.cpp index 5d40526d315..c897e588fb7 100644 --- a/src/server/game/Handlers/MovementHandler.cpp +++ b/src/server/game/Handlers/MovementHandler.cpp @@ -119,14 +119,13 @@ void WorldSession::HandleMoveWorldportAck() if (player->m_teleport_dest.TransportGuid) { - if (Transport* newTransport = newMap->GetTransport(*player->m_teleport_dest.TransportGuid)) + if (GameObject* go = newMap->GetTransport(*player->m_teleport_dest.TransportGuid)) { - newTransport->AddPassenger(player); - player->m_movementInfo.transport.pos.Relocate(loc.Location); - float x, y, z, o; - loc.Location.GetPosition(x, y, z, o); - newTransport->CalculatePassengerPosition(x, y, z, &o); - player->Relocate(x, y, z, o); + if (TransportBase* newTransport = go->ToTransportBase()) + { + newTransport->AddPassenger(player, loc.Location); + player->Relocate(newTransport->GetPositionWithOffset(loc.Location)); + } } } else if (TransportBase* transport = player->GetTransport()) @@ -297,14 +296,13 @@ void WorldSession::HandleMoveTeleportAck(WorldPackets::Movement::MoveTeleportAck if (dest.TransportGuid) { - if (Transport* transport = plMover->GetMap()->GetTransport(*dest.TransportGuid)) + if (GameObject* go = plMover->GetMap()->GetGameObject(*dest.TransportGuid)) { - transport->AddPassenger(plMover); - plMover->m_movementInfo.transport.pos.Relocate(destLocation); - float x, y, z, o; - dest.Location.GetPosition(x, y, z, o); - transport->CalculatePassengerPosition(x, y, z, &o); - destLocation.Relocate(x, y, z, o); + if (TransportBase* transport = go->ToTransportBase()) + { + transport->AddPassenger(plMover, destLocation); + destLocation.Relocate(transport->GetPositionWithOffset(plMover->m_movementInfo.transport.pos)); + } } } @@ -397,7 +395,7 @@ void WorldSession::HandleMovementOpcode(OpcodeClient opcode, MovementInfo& movem { if (GameObject* go = plrMover->GetMap()->GetGameObject(movementInfo.transport.guid)) if (TransportBase* transport = go->ToTransportBase()) - transport->AddPassenger(plrMover); + transport->AddPassenger(plrMover, movementInfo.transport.pos); } else if (plrMover->GetTransport()->GetTransportGUID() != movementInfo.transport.guid) { @@ -405,7 +403,7 @@ void WorldSession::HandleMovementOpcode(OpcodeClient opcode, MovementInfo& movem if (GameObject* go = plrMover->GetMap()->GetGameObject(movementInfo.transport.guid)) { if (TransportBase* transport = go->ToTransportBase()) - transport->AddPassenger(plrMover); + transport->AddPassenger(plrMover, movementInfo.transport.pos); else movementInfo.ResetTransport(); } -- cgit v1.2.3