本文整理汇总了C++中CVehicle::GetRespawnEnabled方法的典型用法代码示例。如果您正苦于以下问题:C++ CVehicle::GetRespawnEnabled方法的具体用法?C++ CVehicle::GetRespawnEnabled怎么用?C++ CVehicle::GetRespawnEnabled使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CVehicle
的用法示例。
在下文中一共展示了CVehicle::GetRespawnEnabled方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: DoVehicleRespawning
void CMapManager::DoVehicleRespawning ( void )
{
// TODO: needs speeding up (no good looping through thousands of vehicles each frame)
CVehicleSpawnPacket VehicleSpawnPacket;
CVehicle* pVehicle = NULL;
// Grab the current time
unsigned long ulTime = GetTime ();
bool bRespawn, bExploded;
unsigned long ulBlowTime, ulIdleTime;
// Loop through all the vehicles
list < CVehicle* > ::const_iterator iter = m_pVehicleManager->IterBegin ();
for ( ; iter != m_pVehicleManager->IterEnd (); iter++ )
{
pVehicle = *iter;
bRespawn = false, bExploded = false;
// It's been set to respawn
if ( pVehicle->GetRespawnEnabled () )
{
// Did we get deserted?
bool bDeserted = ( !pVehicle->GetFirstOccupant () );
// Grab when it blew and when it was last not touched
ulBlowTime = pVehicle->GetBlowTime ();
ulIdleTime = pVehicle->GetIdleTime ();
// Been blown long enough?
if ( ulBlowTime != 0 && ulTime >= ( ulBlowTime + pVehicle->GetRespawnTime () ) )
{
bRespawn = true;
bExploded = true;
}
// Been deserted long enough?
else if ( bDeserted && ulIdleTime != 0 &&
ulTime >= ( ulIdleTime + pVehicle->GetIdleRespawnTime () ) )
{
bRespawn = true;
}
}
// Need to respawn?
if ( bRespawn )
{
// Respawn it and add it to the packet
pVehicle->Respawn ();
VehicleSpawnPacket.Add ( pVehicle );
// Call the respawn event
CLuaArguments Arguments;
Arguments.PushBoolean ( bExploded );
pVehicle->CallEvent ( "onVehicleRespawn", Arguments );
}
}
// Send it
m_pPlayerManager->BroadcastOnlyJoined ( VehicleSpawnPacket );
}