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.
85 lines
2.6 KiB
85 lines
2.6 KiB
1 year ago
|
#ifndef _DEFINED_ASW_BUTTON_AREA_H
|
||
|
#define _DEFINED_ASW_BUTTON_AREA_H
|
||
|
|
||
|
#include "asw_use_area.h"
|
||
|
#include "asw_shareddefs.h"
|
||
|
|
||
|
class CASW_Player;
|
||
|
class CASW_Door;
|
||
|
class CASW_Hack;
|
||
|
class CASW_Marine;
|
||
|
|
||
|
class CASW_Button_Area : public CASW_Use_Area
|
||
|
{
|
||
|
DECLARE_CLASS( CASW_Button_Area, CASW_Use_Area );
|
||
|
public:
|
||
|
CASW_Button_Area();
|
||
|
virtual ~CASW_Button_Area();
|
||
|
virtual void Spawn( void );
|
||
|
virtual void Precache();
|
||
|
void ActivateUnlockedButton(CASW_Marine* pMarine);
|
||
|
CASW_Door* GetDoor();
|
||
|
CASW_Hack* GetCurrentHack();
|
||
|
virtual bool KeyValue( const char *szKeyName, const char *szValue );
|
||
|
virtual bool IsLocked() { return m_bIsLocked.Get(); }
|
||
|
virtual bool HasPower() { return !m_bNoPower.Get(); }
|
||
|
float m_fStartedHackTime;
|
||
|
|
||
|
Class_T Classify( void ) { return (Class_T) CLASS_ASW_BUTTON_PANEL; }
|
||
|
|
||
|
static bool WaitingForInputVismonEvaluator( CBaseEntity *pVisibleEntity, CBasePlayer *pViewingPlayer );
|
||
|
static bool WaitingForInputVismonCallback( CBaseEntity *pVisibleEntity, CBasePlayer *pViewingPlayer );
|
||
|
|
||
|
DECLARE_SERVERCLASS();
|
||
|
DECLARE_DATADESC();
|
||
|
|
||
|
CNetworkVar( int, m_iHackLevel );
|
||
|
CNetworkVar( bool, m_bIsLocked );
|
||
|
CNetworkVar( bool, m_bIsDoorButton );
|
||
|
CNetworkVar( bool, m_bNoPower );
|
||
|
CNetworkVar( bool, m_bWaitingForInput );
|
||
|
CNetworkString( m_NoPowerMessage, 255 );
|
||
|
|
||
|
// settings for the wire puzzle
|
||
|
int m_iWireColumns;
|
||
|
int m_iWireRows;
|
||
|
int m_iNumWires;
|
||
|
|
||
|
EHANDLE m_hDoorHack;
|
||
|
|
||
|
COutputEvent m_OnButtonHackStarted;
|
||
|
COutputEvent m_OnButtonHackAt25Percent;
|
||
|
COutputEvent m_OnButtonHackAt50Percent;
|
||
|
COutputEvent m_OnButtonHackAt75Percent;
|
||
|
COutputEvent m_OnButtonHackCompleted;
|
||
|
COutputEvent m_OnButtonActivated;
|
||
|
|
||
|
void InputPowerOff( inputdata_t &inputdata );
|
||
|
void InputPowerOn( inputdata_t &inputdata );
|
||
|
void InputResetHack( inputdata_t &inputdata );
|
||
|
void InputUnlock( inputdata_t &inputdata );
|
||
|
|
||
|
virtual void ActivateUseIcon( CASW_Marine* pMarine, int nHoldType );
|
||
|
virtual void MarineUsing(CASW_Marine* pMarine, float deltatime);
|
||
|
virtual void MarineStartedUsing(CASW_Marine* pMarine);
|
||
|
virtual void MarineStoppedUsing(CASW_Marine* pMarine);
|
||
|
virtual bool IsActive( void );
|
||
|
virtual bool IsWaitingForInput( void ) const { return m_bWaitingForInput; }
|
||
|
|
||
|
virtual void UpdateWaitingForInput();
|
||
|
virtual void UpdatePanelSkin();
|
||
|
|
||
|
virtual void SetHackProgress(float f, CASW_Marine *pMarine);
|
||
|
float GetHackProgress() { return m_fHackProgress; }
|
||
|
|
||
|
CNetworkVar(bool, m_bIsInUse);
|
||
|
CNetworkVar(float, m_fHackProgress);
|
||
|
bool m_bWasLocked;
|
||
|
bool m_bUseAfterHack;
|
||
|
bool m_bDisableAfterUse;
|
||
|
int m_iAliensKilledBeforeHack;
|
||
|
|
||
|
float m_fLastButtonUseTime;
|
||
|
};
|
||
|
|
||
|
#endif /* _DEFINED_ASW_BUTTON_AREA_H */
|