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.
61 lines
2.0 KiB
61 lines
2.0 KiB
#ifndef _DEFINED_ASW_USE_AREA_H |
|
#define _DEFINED_ASW_USE_AREA_H |
|
|
|
#include "triggers.h" |
|
#include "asw_shareddefs.h" |
|
#include "iasw_server_usable_entity.h" |
|
|
|
class CASW_Player; |
|
|
|
DECLARE_AUTO_LIST( IASW_Use_Area_List ); |
|
|
|
class CASW_Use_Area : public CTriggerMultiple, public IASW_Server_Usable_Entity, public IASW_Use_Area_List |
|
{ |
|
DECLARE_CLASS( CASW_Use_Area, CTriggerMultiple ); |
|
public: |
|
CASW_Use_Area(); |
|
void Spawn( void ); |
|
|
|
virtual int ShouldTransmit( const CCheckTransmitInfo *pInfo ); |
|
virtual int UpdateTransmitState(); |
|
|
|
DECLARE_SERVERCLASS(); |
|
DECLARE_DATADESC(); |
|
|
|
string_t m_iUseTargetName; // the name of the door area's door; linked into m_pParent during Activate() |
|
CNetworkHandle( CBaseEntity, m_hUseTarget ); // the door we're attached to |
|
CNetworkVar( bool, m_bUseAreaEnabled ); |
|
int m_nPlayersRequired; |
|
|
|
COutputEvent m_OnRequirementFailed; |
|
|
|
virtual Class_T Classify() { return CLASS_HACKED_ROLLERMINE; } |
|
|
|
// IASW_Server_Usable_Entity implementation |
|
virtual CBaseEntity* GetEntity() { return this; } |
|
virtual bool IsUsable(CBaseEntity *pUser); |
|
virtual bool RequirementsMet(CBaseEntity *pUser); |
|
// fill in by subclasses |
|
virtual void ActivateUseIcon( CASW_Marine* pMarine, int nHoldType ) { } |
|
virtual void MarineStartedUsing(CASW_Marine* pMarine) { } |
|
virtual void MarineStoppedUsing(CASW_Marine* pMarine) { } |
|
virtual void MarineUsing(CASW_Marine* pMarine, float fDeltaTime) { } |
|
virtual void ActivateMultiTrigger(CBaseEntity *pActivator); |
|
virtual bool NeedsLOSCheck() { return false; } |
|
|
|
virtual void UpdateWaitingForInput() {} |
|
virtual void UpdatePanelSkin() {} |
|
|
|
// override these and do our own enabling/disabling |
|
virtual void InputEnable( inputdata_t &inputdata ); |
|
virtual void InputDisable( inputdata_t &inputdata ); |
|
virtual void InputToggle( inputdata_t &inputdata ); |
|
|
|
string_t m_szPanelPropName; |
|
bool m_bMultiplePanelProps; |
|
virtual CBaseEntity* GetProp() { return m_hPanelProp; } |
|
// link to the prop representing us |
|
CNetworkHandle( CBaseEntity, m_hPanelProp ); |
|
}; |
|
|
|
#endif /* _DEFINED_ASW_USE_AREA_H */ |