//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: For the slow removing of the CBaseToggle entity // only old entities that need it for backwards-compatibility should // include this file //=============================================================================// #ifndef BASETOGGLE_H #define BASETOGGLE_H #pragma once #include "baseentity.h" class CBaseToggle : public CBaseEntity { DECLARE_CLASS( CBaseToggle, CBaseEntity ); public: CBaseToggle(); virtual bool KeyValue( const char *szKeyName, const char *szValue ); virtual bool KeyValue( const char *szKeyName, Vector vec ) { return BaseClass::KeyValue( szKeyName, vec ); }; virtual bool KeyValue( const char *szKeyName, float flValue ) { return BaseClass::KeyValue( szKeyName, flValue ); }; TOGGLE_STATE m_toggle_state; float m_flMoveDistance;// how far a door should slide or rotate float m_flWait; float m_flLip; Vector m_vecPosition1; Vector m_vecPosition2; QAngle m_vecMoveAng; QAngle m_vecAngle1; QAngle m_vecAngle2; float m_flHeight; EHANDLE m_hActivator; Vector m_vecFinalDest; QAngle m_vecFinalAngle; int m_movementType; DECLARE_DATADESC(); virtual float GetDelay( void ) { return m_flWait; } // common member functions void LinearMove( const Vector &vecDest, float flSpeed ); void LinearMoveDone( void ); void AngularMove( const QAngle &vecDestAngle, float flSpeed ); void AngularMoveDone( void ); bool IsLockedByMaster( void ); virtual void MoveDone( void ); static float AxisValue( int flags, const QAngle &angles ); void AxisDir( void ); static float AxisDelta( int flags, const QAngle &angle1, const QAngle &angle2 ); string_t m_sMaster; // If this button has a master switch, this is the targetname. // A master switch must be of the multisource type. If all // of the switches in the multisource have been triggered, then // the button will be allowed to operate. Otherwise, it will be // deactivated. }; #endif // BASETOGGLE_H