summaryrefslogtreecommitdiff
path: root/game/server/basetoggle.h
diff options
context:
space:
mode:
Diffstat (limited to 'game/server/basetoggle.h')
-rw-r--r--game/server/basetoggle.h69
1 files changed, 69 insertions, 0 deletions
diff --git a/game/server/basetoggle.h b/game/server/basetoggle.h
new file mode 100644
index 0000000..877e48d
--- /dev/null
+++ b/game/server/basetoggle.h
@@ -0,0 +1,69 @@
+//========= 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