コード例 #1
0
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);
}
コード例 #2
0
ファイル: TestUtils.cpp プロジェクト: Abioy/proxygen
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;
}

}