//----------------------------------------------------------------------------- // Here's where we deal with weapons, ladders, etc. //----------------------------------------------------------------------------- void CVehicleTeleportStation::OnItemPostFrame( CBaseTFPlayer *pDriver ) { // I can't do anything if I'm not active if ( !ShouldBeActive() ) return; if ( GetPassengerRole( pDriver ) != VEHICLE_DRIVER ) return; if ( !IsDeployed() && ( pDriver->m_afButtonPressed & IN_ATTACK ) ) { if ( ValidDeployPosition() ) { Deploy(); } } else if ( IsDeployed() && ( pDriver->m_afButtonPressed & IN_ATTACK ) ) { UnDeploy(); SetControlPanelsActive( false ); SetBodygroup( 1, true ); RemoveCornerSprites(); SetContextThink( NULL, 0, TELEPORT_STATION_THINK_CONTEXT ); } }
//----------------------------------------------------------------------------- // Here's where we deal with weapons //----------------------------------------------------------------------------- void CVehicleMortar::OnItemPostFrame( CBaseTFPlayer *pDriver ) { // I can't do anything if I'm not active if ( !ShouldBeActive() ) return; if ( GetPassengerRole( pDriver ) != VEHICLE_ROLE_DRIVER ) return; }
//----------------------------------------------------------------------------- // Process input //----------------------------------------------------------------------------- void CBaseTFVehicle::ItemPostFrame( CBasePlayer *pPassenger ) { #ifndef CLIENT_DLL Assert( GetPassengerRole( pPassenger ) != -1 ); if (pPassenger->m_afButtonPressed & (IN_USE /*| IN_JUMP*/)) { // Get the player out.. pPassenger->LeaveVehicle(); return; } #endif OnItemPostFrame( static_cast<CBaseTFPlayer*>(pPassenger) ); }
//----------------------------------------------------------------------------- // Purpose: Here's where we deal with weapons //----------------------------------------------------------------------------- void CBaseTFVehicle::OnItemPostFrame( CBaseTFPlayer *pDriver ) { // If we have a gun for the driver, handle it if ( m_hDriverGun ) { if ( GetPassengerRole(pDriver) != VEHICLE_DRIVER ) return; if ( pDriver->m_nButtons & (IN_ATTACK | IN_ATTACK2) ) { // Time to fire? if ( m_hDriverGun->CanFireNow() ) { m_hDriverGun->Fire( pDriver ); } } } }
//----------------------------------------------------------------------------- // Here's where we deal with weapons, ladders, etc. //----------------------------------------------------------------------------- void CVehicleSiegeTower::OnItemPostFrame( CBaseTFPlayer *pDriver ) { // I can't do anything if I'm not active if ( !ShouldBeActive() ) return; if ( GetPassengerRole( pDriver ) != VEHICLE_DRIVER ) return; if ( !IsDeployed() && ( pDriver->m_afButtonPressed & IN_ATTACK ) ) { InternalDeploy(); } else if ( IsDeployed() && ( pDriver->m_afButtonPressed & IN_ATTACK ) ) { InternalUnDeploy(); } }
//----------------------------------------------------------------------------- // Is a particular player in the vehicle? //----------------------------------------------------------------------------- bool CBaseTFVehicle::IsPlayerInVehicle( CBaseTFPlayer *pPlayer ) { return (GetPassengerRole( pPlayer ) >= 0); }