diff options
Diffstat (limited to 'game/server/tf2/order_buildshieldwall.cpp')
| -rw-r--r-- | game/server/tf2/order_buildshieldwall.cpp | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/game/server/tf2/order_buildshieldwall.cpp b/game/server/tf2/order_buildshieldwall.cpp new file mode 100644 index 0000000..f561f5b --- /dev/null +++ b/game/server/tf2/order_buildshieldwall.cpp @@ -0,0 +1,51 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#include "cbase.h" +#include "order_buildshieldwall.h" +#include "tf_team.h" +#include "order_helpers.h" + + +// The defender will get orders to cover objects with sentry guns this far away. +#define SANDBAG_ORDER_DIST 3500 + + +IMPLEMENT_SERVERCLASS_ST( COrderBuildShieldWall, DT_OrderBuildShieldWall ) +END_SEND_TABLE() + + +bool COrderBuildShieldWall::CreateOrder( CPlayerClass *pClass ) +{ + COrderBuildShieldWall *pOrder = new COrderBuildShieldWall; + if ( OrderCreator_GenericObject( pClass, OBJ_SHIELDWALL, 2000, pOrder ) ) + { + return true; + } + else + { + UTIL_RemoveImmediate( pOrder ); + return false; + } +} + + +bool COrderBuildShieldWall::Update() +{ + CBaseEntity *pEnt = GetTargetEntity(); + if( !pEnt ) + return true; + + if ( !m_hOwningPlayer.Get() || m_hOwningPlayer->CanBuild( OBJ_SHIELDWALL ) != CB_CAN_BUILD ) + return true; + + CTFTeam *pTeam = m_hOwningPlayer->GetTFTeam(); + if ( pTeam->GetNumShieldWallsCoveringPosition( pEnt->GetAbsOrigin() ) ) + return true; + + return false; +} |