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/shared/tf2/env_laserdesignation.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'game/shared/tf2/env_laserdesignation.h')
| -rw-r--r-- | game/shared/tf2/env_laserdesignation.h | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/game/shared/tf2/env_laserdesignation.h b/game/shared/tf2/env_laserdesignation.h new file mode 100644 index 0000000..c715498 --- /dev/null +++ b/game/shared/tf2/env_laserdesignation.h @@ -0,0 +1,80 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#ifndef ENV_LASERDESIGNATION_H +#define ENV_LASERDESIGNATION_H +#pragma once + +#if defined( CLIENT_DLL ) +#define CEnvLaserDesignation C_EnvLaserDesignation +#endif + +//----------------------------------------------------------------------------- +// Purpose: A laser designation point +//----------------------------------------------------------------------------- +class CEnvLaserDesignation : public CBaseAnimating +{ +public: + DECLARE_NETWORKCLASS(); + DECLARE_PREDICTABLE(); + DECLARE_CLASS( CEnvLaserDesignation, CBaseAnimating ); + + CEnvLaserDesignation( void ); + ~CEnvLaserDesignation( void ); + + virtual void Spawn( void ); + virtual void ChangeTeam( int iTeamNum ); + + // Designation + void SetActive( bool bActive ); + bool IsActive( void ) { return m_bActive; } + + // All predicted weapons need to implement and return true + virtual bool IsPredicted( void ) const + { + return true; + } + + +#if defined( CLIENT_DLL ) + virtual bool ShouldPredict( void ) + { + if ( GetOwnerEntity() == C_BasePlayer::GetLocalPlayer() ) + return true; + + return BaseClass::ShouldPredict(); + } + + DECLARE_ENTITY_PANEL(); + + virtual void OnDataChanged( DataUpdateType_t updateType ); + virtual void SetDormant( bool bDormant ); + + virtual int DrawModel( int flags ); +#else + virtual int UpdateTransmitState(); + virtual int ShouldTransmit( const CCheckTransmitInfo *pInfo ); +#endif + + // Global Designator access + static CEnvLaserDesignation *Create( CBasePlayer *pOwner ); + static CEnvLaserDesignation *CreatePredicted( CBasePlayer *pOwner ); + static int GetNumLaserDesignators( int iTeamNumber ); + static bool GetLaserDesignation( int iTeamNumber, int iDesignator, Vector *vecOrigin ); + +protected: + static CUtlVector< EHANDLE > m_LaserDesignatorsTeam1; + static CUtlVector< EHANDLE > m_LaserDesignatorsTeam2; + + CNetworkVar( bool, m_bActive ); + + bool m_bPrevActive; +private: + CEnvLaserDesignation( const CEnvLaserDesignation& src ); +}; + +#endif // ENV_LASERDESIGNATION_H |