// Update the global positions of all passengers void TransportBase::UpdateGlobalPositions() { Position pos(m_owner->GetPositionX(), m_owner->GetPositionY(), m_owner->GetPositionZ(), m_owner->GetOrientation()); // Calculate new direction multipliers if (NormalizeOrientation(pos.o - m_lastPosition.o) > 0.01f) { m_sinO = sin(pos.o); m_cosO = cos(pos.o); } // Update global positions for (PassengerMap::const_iterator itr = m_passengers.begin(); itr != m_passengers.end(); ++itr) UpdateGlobalPositionOf(itr->first, itr->second->GetLocalPositionX(), itr->second->GetLocalPositionY(), itr->second->GetLocalPositionZ(), itr->second->GetLocalOrientation()); m_lastPosition = pos; }
// Update the global positions of all passengers void TransportBase::UpdateGlobalPositions(bool /*isParent*/) { WorldLocation pos = m_owner->GetPosition(); // Calculate new direction multipliers if (MapManager::NormalizeOrientation(pos.o - m_lastPosition.o) > 0.01f) { m_sinO = sin(pos.o); m_cosO = cos(pos.o); } if (!m_passengers.empty()) { // Update global positions for (PassengerMap::const_iterator itr = m_passengers.begin(); itr != m_passengers.end(); ++itr) UpdateGlobalPositionOf(itr->first, itr->second.GetLocalPosition()); } m_lastPosition = pos; }