diff options
Diffstat (limited to 'game/server/tf/func_passtime_no_ball_zone.cpp')
| -rw-r--r-- | game/server/tf/func_passtime_no_ball_zone.cpp | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/game/server/tf/func_passtime_no_ball_zone.cpp b/game/server/tf/func_passtime_no_ball_zone.cpp new file mode 100644 index 0000000..bcf0359 --- /dev/null +++ b/game/server/tf/func_passtime_no_ball_zone.cpp @@ -0,0 +1,48 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#include "cbase.h" +#include "func_passtime_no_ball_zone.h" +#include "passtime_convars.h" +#include "tf_player.h" + +//----------------------------------------------------------------------------- +BEGIN_DATADESC( CFuncPasstimeNoBallZone ) +END_DATADESC() + +//----------------------------------------------------------------------------- +LINK_ENTITY_TO_CLASS( func_passtime_no_ball_zone, CFuncPasstimeNoBallZone ) + +//----------------------------------------------------------------------------- +IMPLEMENT_AUTO_LIST( IFuncPasstimeNoBallZoneAutoList ); + +//----------------------------------------------------------------------------- +void CFuncPasstimeNoBallZone::Spawn() +{ + AddSpawnFlags( SF_TRIGGER_ALLOW_CLIENTS | SF_TRIGGER_ALLOW_PHYSICS ); + BaseClass::Spawn(); + InitTrigger(); + SetNextThink( TICK_NEVER_THINK ); + SetThink( NULL ); +} + +//----------------------------------------------------------------------------- +// Purpose: Is a given point contained within a no ball zone? +//----------------------------------------------------------------------------- +bool EntityIsInNoBallZone( CBaseEntity *pTarget ) +{ + const auto &allNoBallZones = IFuncPasstimeNoBallZoneAutoList::AutoList(); + for ( int i = 0; i < allNoBallZones.Count(); ++i ) + { + CFuncPasstimeNoBallZone *pNoBallZone = static_cast< CFuncPasstimeNoBallZone* >( allNoBallZones[i] ); + if ( pTarget && pNoBallZone->IsTouching(pTarget) ) + { + return true; + } + } + return false; +} |