Core/Transports: restrict passenger position update upon entering a transport for units only

This commit is contained in:
Ovahlord
2019-11-24 14:36:26 +01:00
parent 39f021a800
commit e4e5115694

View File

@@ -68,13 +68,17 @@ void Transport::AddPassenger(WorldObject* passenger)
passenger->SetTransport(this);
passenger->m_movementInfo.transport.guid = GetGUID();
passenger->m_movementInfo.transport.time = GetTimer();
float x, y, z, o;
passenger->GetPosition(x, y, z, o);
TransportBase::CalculatePassengerOffset(x, y, z, &o, GetPositionX(), GetPositionY(), GetPositionZ(), GetOrientation());
passenger->m_movementInfo.transport.pos.Relocate(x, y, z, o);
if (IsInWorld() && passenger->IsInWorld())
UpdatePositionForPassenger(passenger);
if (passenger->GetTypeId() == TYPEID_UNIT)
{
float x, y, z, o;
passenger->GetPosition(x, y, z, o);
TransportBase::CalculatePassengerOffset(x, y, z, &o, GetPositionX(), GetPositionY(), GetPositionZ(), GetOrientation());
passenger->m_movementInfo.transport.pos.Relocate(x, y, z, o);
if (IsInWorld() && passenger->IsInWorld())
UpdatePositionForPassenger(passenger);
}
TC_LOG_DEBUG("entities.transport", "Object %s boarded transport %s.", passenger->GetName().c_str(), GetName().c_str());