summaryrefslogtreecommitdiff
path: root/game/shared/tf2/env_laserdesignation.h
diff options
context:
space:
mode:
Diffstat (limited to 'game/shared/tf2/env_laserdesignation.h')
-rw-r--r--game/shared/tf2/env_laserdesignation.h80
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