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.
99 lines
2.2 KiB
99 lines
2.2 KiB
//--------------------------------------------------------------------------------------------------------
|
|
// Copyright (c) 2007 Turtle Rock Studios, Inc.
|
|
|
|
#if !defined( C_BASETOGGLE_H )
|
|
#define C_BASETOGGLE_H
|
|
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
#include "c_baseentity.h"
|
|
|
|
|
|
//copy/paste from server subs.cpp
|
|
enum togglemovetypes_t
|
|
{
|
|
MOVE_TOGGLE_NONE = 0,
|
|
MOVE_TOGGLE_LINEAR = 1,
|
|
MOVE_TOGGLE_ANGULAR = 2,
|
|
};
|
|
|
|
//--------------------------------------------------------------------------------------------------------
|
|
class C_BaseToggle: public C_BaseEntity
|
|
{
|
|
public:
|
|
DECLARE_CLASS( C_BaseToggle, C_BaseEntity );
|
|
DECLARE_CLIENTCLASS();
|
|
DECLARE_PREDICTABLE(); //elevators
|
|
|
|
virtual void GetGroundVelocityToApply( Vector &vecGroundVel );
|
|
virtual bool ShouldPredict( void );
|
|
virtual C_BasePlayer *GetPredictionOwner( void );
|
|
virtual void PhysicsSimulate( void );
|
|
virtual bool PredictionErrorShouldResetLatchedForAllPredictables( void ) { return false; }
|
|
virtual bool PredictionIsPhysicallySimulated( void );
|
|
virtual void PostDataUpdate( DataUpdateType_t updateType );
|
|
|
|
Vector PredictPosition( float fCurTime );
|
|
|
|
EHANDLE m_hPredictionOwner;
|
|
Vector m_vLastNetworked;
|
|
float m_fLastNetworkedTime;
|
|
|
|
Vector m_vecFinalDest;
|
|
int m_movementType;
|
|
float m_flMoveTargetTime;
|
|
bool m_bWasPredictingMotion;
|
|
};
|
|
|
|
|
|
//--------------------------------------------------------------------------------------------------------
|
|
class C_BaseButton: public C_BaseToggle
|
|
{
|
|
public:
|
|
DECLARE_CLASS( C_BaseButton, C_BaseToggle );
|
|
DECLARE_CLIENTCLASS();
|
|
|
|
C_BaseButton()
|
|
{
|
|
}
|
|
|
|
virtual bool IsPotentiallyUsable( void );
|
|
|
|
private:
|
|
bool m_usable;
|
|
};
|
|
|
|
|
|
//--------------------------------------------------------------------------------------------------------
|
|
//
|
|
// CButtonTimed - func_button_timed
|
|
//
|
|
//--------------------------------------------------------------------------------------------------------
|
|
class C_ButtonTimed: public C_BaseButton
|
|
{
|
|
public:
|
|
DECLARE_CLASS( C_BaseButton, C_BaseButton );
|
|
DECLARE_CLIENTCLASS();
|
|
|
|
C_ButtonTimed();
|
|
|
|
const char * GetUseString( void ) const
|
|
{
|
|
return m_sUseString;
|
|
}
|
|
|
|
const char * GetUseSubString( void ) const
|
|
{
|
|
return m_sUseSubString;
|
|
}
|
|
|
|
private:
|
|
char m_sUseString[64];
|
|
char m_sUseSubString[64];
|
|
};
|
|
|
|
|
|
|
|
#endif // C_BASETOGGLE_H
|