1
0
mirror of https://github.com/alliedmodders/hl2sdk.git synced 2025-01-05 17:13:36 +08:00
hl2sdk/game/client/swarm/c_asw_computer_area.h
2010-07-22 01:46:14 -05:00

114 lines
3.6 KiB
C++

#ifndef _DEFINED_C_ASW_COMPUTER_AREA_H
#define _DEFINED_C_ASW_COMPUTER_AREA_H
#include "c_asw_use_area.h"
class C_ASW_Door;
class C_ASW_Player;
class C_ASW_Computer_Area : public C_ASW_Use_Area
{
DECLARE_CLASS( C_ASW_Computer_Area, C_ASW_Use_Area );
DECLARE_CLIENTCLASS();
public:
C_ASW_Computer_Area();
bool IsLocked() { return m_bIsLocked; }
int GetHackLevel() { return m_iHackLevel; }
C_ASW_Door* GetDoor();
Class_T Classify( void ) { return (Class_T) CLASS_ASW_COMPUTER_AREA; }
// accessors for icons
int GetLockedIconTextureID();
const char* GetLockedIconText() { return "#asw_attempt_access"; }
int GetOpenIconTextureID();
const char* GetOpenIconText() { return "#asw_open"; }
int GetCloseIconTextureID();
const char* GetCloseIconText() { return "#asw_close"; }
int GetUseIconTextureID();
const char* GetUseIconText() { return "#asw_access_terminal"; }
int GetHackIconTextureID();
const char* GetHackIconText() { return "#asw_access_terminal"; }
int GetUseIconPDATextureID();
const char* GetUseIconPDAText() { return "#asw_access_pda"; }
virtual float GetTumblerProgress(C_ASW_Marine *pUser);
virtual bool GetUseAction(ASWUseAction &action, C_ASW_Marine *pUser);
virtual void CustomPaint( int ix, int iy, int alpha, vgui::Panel *pUseIcon ) { }
virtual C_BaseEntity* GetGlowEntity() { return m_hPanelProp.Get(); }
int GetNumMenuOptions();
CNetworkString( m_MailFile, 255 );
CNetworkString( m_NewsFile, 255 );
CNetworkString( m_StocksSeed, 255 );
CNetworkString( m_WeatherSeed, 255 );
CNetworkString( m_PlantFile, 255 );
CNetworkString( m_PDAName, 255 );
CNetworkString( m_SecurityCamLabel1, 255 );
CNetworkString( m_SecurityCamLabel2, 255 );
CNetworkString( m_SecurityCamLabel3, 255 );
CNetworkString( m_TurretLabel1, 255 );
CNetworkString( m_TurretLabel2, 255 );
CNetworkString( m_TurretLabel3, 255 );
CNetworkString( m_DownloadObjectiveName, 255 );
CNetworkVar( bool, m_bDownloadedDocs );
CNetworkVar( bool, m_bSecurityCam1Locked );
CNetworkVar( bool, m_bTurret1Locked );
CNetworkVar( bool, m_bMailFileLocked );
CNetworkVar( bool, m_bNewsFileLocked );
CNetworkVar( bool, m_bStocksFileLocked );
CNetworkVar( bool, m_bWeatherFileLocked );
CNetworkVar( bool, m_bPlantFileLocked );
CNetworkHandle( CBaseEntity, m_hSecurityCam1 );
CNetworkHandle( CBaseEntity, m_hTurret1 );
// traditional Swarm hacking
float GetHackProgress() { return m_fHackProgress; }
CNetworkVar(bool, m_bIsInUse);
CNetworkVar(float, m_fHackProgress);
bool IsWaitingForInput( void ) const { return m_bWaitingForInput; }
int m_iActiveCam;
// does this computer area represent a PDA instead of a typical computer?
bool IsPDA();
void PlayPositiveSound(C_ASW_Player *pPlayer);
void PlayNegativeSound(C_ASW_Player *pPlayer);
float m_fLastPositiveSoundTime;
protected:
bool m_bIsLocked;
bool m_bWaitingForInput;
bool m_bOldWaitingForInput;
int m_iHackLevel;
float m_fDownloadTime;
C_ASW_Computer_Area( const C_ASW_Computer_Area & ); // not defined, not accessible
// icons used to interact with computers
static bool s_bLoadedLockedIconTexture;
static int s_nLockedIconTextureID;
static bool s_bLoadedOpenIconTexture;
static int s_nOpenIconTextureID;
static bool s_bLoadedCloseIconTexture;
static int s_nCloseIconTextureID;
static bool s_bLoadedUseIconTexture;
static int s_nUseIconTextureID;
static bool s_bLoadedHackIconTexture;
static int s_nHackIconTextureID;
static bool s_bLoadedUseIconPDA;
static int s_nUseIconPDA;
};
#endif /* _DEFINED_C_ASW_COMPUTER_AREA_H */