diff options
Diffstat (limited to 'game/client/tf2/c_obj_sentrygun.h')
| -rw-r--r-- | game/client/tf2/c_obj_sentrygun.h | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/game/client/tf2/c_obj_sentrygun.h b/game/client/tf2/c_obj_sentrygun.h new file mode 100644 index 0000000..c66fd81 --- /dev/null +++ b/game/client/tf2/c_obj_sentrygun.h @@ -0,0 +1,106 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#ifndef C_OBJ_SENTRYGUN_H +#define C_OBJ_SENTRYGUN_H +#ifdef _WIN32 +#pragma once +#endif + +//----------------------------------------------------------------------------- +// Purpose: Base Sentrygun +//----------------------------------------------------------------------------- +class C_ObjectSentrygun : public C_BaseObject +{ + DECLARE_CLASS( C_ObjectSentrygun, C_BaseObject ); +public: + DECLARE_CLIENTCLASS(); + DECLARE_ENTITY_PANEL(); + + C_ObjectSentrygun(); + virtual void GetBoneControllers(float controllers[MAXSTUDIOBONES]); + virtual int DrawModel( int flags ); + virtual void SetDormant( bool bDormant ); + virtual void PreDataUpdate( DataUpdateType_t updateType ); + virtual void PostDataUpdate( DataUpdateType_t updateType ); + virtual void OnDataChanged( DataUpdateType_t updateType ); + virtual float GetInitialBuilderYaw(); + int GetAmmoLeft( void ) { return m_iAmmo; } + virtual void FinishedBuilding( void ); + + virtual void ClientThink( void ); + +private: + bool IsTurtled( void ) { return m_bTurtled; } + + // Turret Functions + bool MoveTurret( void ); + + // Recompute sentrygun orientation... + void RecomputeOrientation(); + +public: + + int m_iRightBound; + int m_iLeftBound; + bool m_bTurningRight; + + // Movement + int m_iBaseTurnRate; + float m_fTurnRate; + QAngle m_vecCurAngles; + QAngle m_vecGoalAngles; + Vector m_vecCurDishAngles; + + float m_fBoneXRotator; + float m_fBoneYRotator; + int m_iAmmo; + + // Turtling + bool m_bTurtled; + bool m_bLastTurtled; + float m_flStartedTurtlingAt; + float m_flStartedUnTurtlingAt; + + int m_nAnimationParity; + int m_nLastAnimationParity; + + // Networked from server + EHANDLE m_hEnemy; + + + QAngle m_angPrevLocalAngles; + int m_nOrientationParity; + int m_nPrevOrientationParity; + +private: + C_ObjectSentrygun( const C_ObjectSentrygun & ); // not defined, not accessible +}; + +class C_ObjectSentrygunPlasma : public C_ObjectSentrygun +{ + DECLARE_CLASS( C_ObjectSentrygunPlasma, C_ObjectSentrygun ); +public: + C_ObjectSentrygunPlasma(); + DECLARE_CLIENTCLASS(); + +private: + C_ObjectSentrygunPlasma( const C_ObjectSentrygunPlasma & ); // not defined, not accessible +}; + +class C_ObjectSentrygunRocketlauncher : public C_ObjectSentrygun +{ + DECLARE_CLASS( C_ObjectSentrygunRocketlauncher, C_ObjectSentrygun ); +public: + C_ObjectSentrygunRocketlauncher(); + DECLARE_CLIENTCLASS(); + +private: + C_ObjectSentrygunRocketlauncher( const C_ObjectSentrygunRocketlauncher & ); // not defined, not accessible +}; + +#endif // C_OBJ_SENTRYGUN_H |