70 lines
2.0 KiB
C
70 lines
2.0 KiB
C
|
//========= 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
|