diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /game/server/tf2/orders.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'game/server/tf2/orders.h')
| -rw-r--r-- | game/server/tf2/orders.h | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/game/server/tf2/orders.h b/game/server/tf2/orders.h new file mode 100644 index 0000000..0aa68e2 --- /dev/null +++ b/game/server/tf2/orders.h @@ -0,0 +1,90 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: Order handling +// +// $NoKeywords: $ +//=============================================================================// + +#ifndef ORDERS_H +#define ORDERS_H +#ifdef _WIN32 +#pragma once +#endif + + +class CTFTeam; +class CBaseTFPlayer; + + +#include "order_events.h" + + +//----------------------------------------------------------------------------- +// Purpose: Datatable container class for orders +//----------------------------------------------------------------------------- +class COrder : public CBaseEntity +{ + DECLARE_CLASS( COrder, CBaseEntity ); +public: + DECLARE_SERVERCLASS(); + + COrder(); + virtual void UpdateOnRemove( void ); + + virtual int UpdateTransmitState() { return SetTransmitState( FL_EDICT_FULLCHECK ); } + virtual int ShouldTransmit( const CCheckTransmitInfo *pInfo ); + + // This is called when removing the order. + void DetachFromPlayer(); + + +// Overridables. +public: + + // Purpose: for updates on the order. Return true if the order should be removed. + virtual bool Update( void ); + virtual bool UpdateOnEvent( COrderEvent_Base *pEvent ); + + + +public: + + CBaseTFPlayer *GetOwner( void ); + CBaseEntity *GetTargetEntity( void ); + int GetType( void ); + + void SetOwner( CBaseTFPlayer *pPlayer ); + void SetType( int iOrderType ); + void SetTarget( CBaseEntity *pTarget ); + void SetDistance( float flDistance ); + void SetLifetime( float flLifetime ); + +public: + // Sent via datatable + CNetworkVar( int, m_iOrderType ); + float m_flDistanceToRemove; + + // When the order goes away. + double m_flDieTime; + + // Personal order owner + CHandle< CBaseTFPlayer > m_hOwningPlayer; + EHANDLE m_hTarget; + CNetworkVar( int, m_iTargetEntIndex ); +}; + + + +//----------------------------------------------------------------------------- +// ORDER CREATION DATA +//----------------------------------------------------------------------------- +// Time between personal order updates +#define PERSONAL_ORDER_UPDATE_TIME 2.0 + +// KILL orders +#define ORDER_KILL_ENEMY_DISTANCE 2048 // Distance the enemy must be within for this player to receive this order + +// HEAL orders +#define ORDER_HEAL_FRIENDLY_DISTANCE 2048 // Distance the friendly must be within this player to receive this order + +#endif // ORDERS_H |