hl2_src-leak-2017/src/game/shared/tf2/env_laserdesignation.h

81 lines
2.1 KiB
C++

//========= 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