You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
112 lines
3.4 KiB
112 lines
3.4 KiB
5 years ago
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||
|
//
|
||
|
// Purpose: Client's CObjectSentrygun
|
||
|
//
|
||
|
// $NoKeywords: $
|
||
|
//=============================================================================//
|
||
|
#include "cbase.h"
|
||
|
#include "hud.h"
|
||
|
#include "CommanderOverlay.h"
|
||
|
#include "c_baseobject.h"
|
||
|
#include "vgui_healthbar.h"
|
||
|
#include "ObjectControlPanel.h"
|
||
|
#include "c_shield.h"
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|
||
|
// Purpose: Resupply Station object
|
||
|
//-----------------------------------------------------------------------------
|
||
|
class C_ObjectShieldWallBase : public C_BaseObject
|
||
|
{
|
||
|
DECLARE_CLASS( C_ObjectShieldWallBase, C_BaseObject );
|
||
|
|
||
|
public:
|
||
|
C_ObjectShieldWallBase() {}
|
||
|
|
||
|
public:
|
||
|
CHandle<C_Shield> m_hDeployedShield;
|
||
|
|
||
|
private:
|
||
|
C_ObjectShieldWallBase( const C_ObjectShieldWallBase & ); // not defined, not accessible
|
||
|
};
|
||
|
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|
||
|
//
|
||
|
// Projected shield wall
|
||
|
//
|
||
|
//-----------------------------------------------------------------------------
|
||
|
class C_ObjectShieldWall : public C_ObjectShieldWallBase
|
||
|
{
|
||
|
DECLARE_CLASS( C_ObjectShieldWall, C_ObjectShieldWallBase );
|
||
|
public:
|
||
|
DECLARE_CLIENTCLASS();
|
||
|
DECLARE_ENTITY_PANEL();
|
||
|
|
||
|
C_ObjectShieldWall( void );
|
||
|
|
||
|
virtual void SetDormant( bool bDormant );
|
||
|
virtual void RecalculateIDString( void );
|
||
|
|
||
|
private:
|
||
|
C_ObjectShieldWall( const C_ObjectShieldWall & ); // not defined, not accessible
|
||
|
};
|
||
|
|
||
|
IMPLEMENT_CLIENTCLASS_DT(C_ObjectShieldWall, DT_ObjectShieldWall, CObjectShieldWall)
|
||
|
RecvPropEHandle(RECVINFO(m_hDeployedShield)),
|
||
|
END_RECV_TABLE()
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|
||
|
// Purpose:
|
||
|
//-----------------------------------------------------------------------------
|
||
|
C_ObjectShieldWall::C_ObjectShieldWall( void )
|
||
|
{
|
||
|
}
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|
||
|
// Purpose:
|
||
|
//-----------------------------------------------------------------------------
|
||
|
void C_ObjectShieldWall::SetDormant( bool bDormant )
|
||
|
{
|
||
|
BaseClass::SetDormant( bDormant );
|
||
|
ENTITY_PANEL_ACTIVATE( "shield_wall", !bDormant );
|
||
|
}
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|
||
|
// Purpose:
|
||
|
//-----------------------------------------------------------------------------
|
||
|
void C_ObjectShieldWall::RecalculateIDString( void )
|
||
|
{
|
||
|
if ( m_hDeployedShield )
|
||
|
{
|
||
|
// Report shield strength
|
||
|
Q_snprintf( m_szIDString, sizeof(m_szIDString), "Shield Strength: %.0f percent", m_hDeployedShield->GetPowerLevel() * 100 );
|
||
|
}
|
||
|
|
||
|
BaseClass::RecalculateIDString();
|
||
|
}
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|
||
|
// Control screen
|
||
|
//-----------------------------------------------------------------------------
|
||
|
class CShieldWallControlPanel : public CRotatingObjectControlPanel
|
||
|
{
|
||
|
DECLARE_CLASS( CShieldWallControlPanel, CRotatingObjectControlPanel );
|
||
|
|
||
|
public:
|
||
|
CShieldWallControlPanel( vgui::Panel *parent, const char *panelName );
|
||
|
};
|
||
|
|
||
|
|
||
|
DECLARE_VGUI_SCREEN_FACTORY( CShieldWallControlPanel, "shieldwall_control_panel" );
|
||
|
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|
||
|
// Constructor:
|
||
|
//-----------------------------------------------------------------------------
|
||
|
CShieldWallControlPanel::CShieldWallControlPanel( vgui::Panel *parent, const char *panelName )
|
||
|
: BaseClass( parent, "CShieldWallControlPanel" )
|
||
|
{
|
||
|
}
|
||
|
|
||
|
|