diff options
Diffstat (limited to 'game/server/func_movelinear.h')
| -rw-r--r-- | game/server/func_movelinear.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/game/server/func_movelinear.h b/game/server/func_movelinear.h new file mode 100644 index 0000000..8f09adc --- /dev/null +++ b/game/server/func_movelinear.h @@ -0,0 +1,63 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#ifndef FUNC_MOVELINEAR_H +#define FUNC_MOVELINEAR_H + +#pragma once + +#include "basetoggle.h" +#include "entityoutput.h" + + +class IPhysicsFluidController; + + +class CFuncMoveLinear : public CBaseToggle +{ +public: + DECLARE_CLASS( CFuncMoveLinear, CBaseToggle ); + + void Spawn( void ); + void Precache( void ); + bool CreateVPhysics( void ); + bool ShouldSavePhysics( void ); + + void MoveTo(Vector vPosition, float flSpeed); + void Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value ); + void MoveDone( void ); + void StopMoveSound( void ); + void Blocked( CBaseEntity *pOther ); + void SetPosition( float flPosition ); + + int DrawDebugTextOverlays(void); + + // Input handlers + void InputOpen( inputdata_t &inputdata ); + void InputClose( inputdata_t &inputdata ); + void InputSetPosition( inputdata_t &inputdata ); + void InputSetSpeed( inputdata_t &inputdata ); + + DECLARE_DATADESC(); + + Vector m_vecMoveDir; // Move direction. + + string_t m_soundStart; // start and looping sound + string_t m_soundStop; // stop sound + string_t m_currentSound; // sound I'm playing + + float m_flBlockDamage; // Damage inflicted when blocked. + float m_flStartPosition; // Position of brush when spawned + float m_flMoveDistance; // Total distance the brush can move + + IPhysicsFluidController *m_pFluidController; + + // Outputs + COutputEvent m_OnFullyOpen; + COutputEvent m_OnFullyClosed; +}; +#endif // FUNC_MOVELINEAR_H |