diff options
author | Shauren <shauren.trinity@gmail.com> | 2022-10-31 14:57:36 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-10-31 14:57:36 +0100 |
commit | f205e50f929955e9daafb6d85d8c1f57d9c0dbdc (patch) | |
tree | 8fcf0991c5142ba5a0b6d8509f382032b9516b24 /src | |
parent | 6bd40a31dea586088f3e1d1efe251103aef8a895 (diff) |
Core/Creatures: Update creature transport offsets when teleporting while on transport
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index a5a605fc19e..ac0da0fef82 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -12288,6 +12288,13 @@ void Unit::SendTeleportPacket(Position const& pos) moveUpdateTeleport.Status->guid = GetGUID(); moveUpdateTeleport.Status->pos.Relocate(pos); moveUpdateTeleport.Status->time = getMSTime(); + if (TransportBase* transportBase = GetDirectTransport()) + { + float tx, ty, tz, to; + pos.GetPosition(tx, ty, tz, to); + transportBase->CalculatePassengerOffset(tx, ty, tz, &to); + moveUpdateTeleport.Status->transport.pos.Relocate(tx, ty, tz, to); + } } // Broadcast the packet to everyone except self. |