void TransportBase::BoardPassenger(WorldObject* passenger, Position const& pos, int8 seat) { if (!passenger) return; MAPLOCK_WRITE(GetOwner(), MAP_LOCK_TYPE_MOVEMENT); // Insert our new passenger m_passengers.insert(PassengerMap::value_type(passenger->GetObjectGuid(),TransportInfo(*passenger, *this, pos, seat))); PassengerMap::iterator itr = m_passengers.find(passenger->GetObjectGuid()); MANGOS_ASSERT(itr != m_passengers.end()); // The passenger needs fast access to transportInfo passenger->SetTransportInfo(&itr->second); // Add MI and other data only if successful boarded! if (passenger->isType(TYPEMASK_UNIT)) { ((Unit*)passenger)->m_movementInfo.ClearTransportData(); ((Unit*)passenger)->m_movementInfo.AddMovementFlag(MOVEFLAG_ONTRANSPORT); ((Unit*)passenger)->m_movementInfo.SetTransportData(GetOwner()->GetObjectGuid(), pos, WorldTimer::getMSTime(), -1); } passenger->SetTransportPosition(pos); }
namespace proxygen { const TransportInfo mockTransportInfo = TransportInfo(); const SocketAddress localAddr{"127.0.0.1", 80}; const SocketAddress peerAddr{"127.0.0.1", 12345}; TAsyncTimeoutSet::UniquePtr makeInternalTimeoutSet(EventBase* evb) { return TAsyncTimeoutSet::UniquePtr( new TAsyncTimeoutSet(evb, TimeoutManager::InternalEnum::INTERNAL, std::chrono::milliseconds(500))); } TAsyncTimeoutSet::UniquePtr makeTimeoutSet(EventBase* evb) { return TAsyncTimeoutSet::UniquePtr( new TAsyncTimeoutSet(evb, std::chrono::milliseconds(500))); } testing::NiceMock<MockTAsyncTransport>* newMockTransport(EventBase* evb) { auto transport = new testing::NiceMock<MockTAsyncTransport>(); EXPECT_CALL(*transport, getEventBase()) .WillRepeatedly(testing::Return(evb)); return transport; } }