//----------------------------------------------------------------------------- // Returns true if the entity may be teleported //----------------------------------------------------------------------------- bool CPointTeleport::EntityMayTeleport( CBaseEntity *pTarget ) { if ( pTarget->GetMoveParent() != NULL ) { // Passengers in a vehicle are allowed to teleport; their behavior handles it CBaseCombatCharacter *pBCC = pTarget->MyCombatCharacterPointer(); if ( pBCC == NULL || ( pBCC != NULL && pBCC->IsInAVehicle() == false ) ) return false; } return true; }
//----------------------------------------------------------------------------- // Purpose: Determines if an enemy is inside a vehicle or not // Output : Returns true if the enemy is outside the vehicle. //----------------------------------------------------------------------------- bool CAI_PassengerBehaviorZombie::EnemyInVehicle( void ) { // Obviously they're not... if ( GetOuter()->GetEnemy() == NULL ) return false; // See if they're in a vehicle, currently CBaseCombatCharacter *pCCEnemy = GetOuter()->GetEnemy()->MyCombatCharacterPointer(); if ( pCCEnemy && pCCEnemy->IsInAVehicle() ) return true; return false; }
bool CAI_ScriptConditions::EvalActorInVehicle( const EvalArgs_t &args ) { // We don't care if ( m_fActorInVehicle == TRS_NONE ) return true; if ( !args.pActor ) return true; // Must be able to be in a vehicle at all CBaseCombatCharacter *pBCC = args.pActor->MyCombatCharacterPointer(); if ( pBCC == NULL ) return false; // Desired states must match return ( !!pBCC->IsInAVehicle() == m_fActorInVehicle ); }