diff options
Diffstat (limited to 'game/server/tf2/tf_walker_ministrider.h')
| -rw-r--r-- | game/server/tf2/tf_walker_ministrider.h | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/game/server/tf2/tf_walker_ministrider.h b/game/server/tf2/tf_walker_ministrider.h new file mode 100644 index 0000000..eb0bed9 --- /dev/null +++ b/game/server/tf2/tf_walker_ministrider.h @@ -0,0 +1,117 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//=============================================================================// + +#ifndef TF_WALKER_MINISTRIDER_H +#define TF_WALKER_MINISTRIDER_H +#ifdef _WIN32 +#pragma once +#endif + + +#include "tf_walker_base.h" + + +class CBeam; + + +class CWalkerMiniStrider : public CWalkerBase +{ +public: + DECLARE_CLASS( CWalkerMiniStrider, CWalkerBase ); + DECLARE_SERVERCLASS(); + + CWalkerMiniStrider(); + virtual ~CWalkerMiniStrider(); + + +// CWalkerBase. +protected: + virtual void WalkerThink(); + virtual Vector GetWalkerLocalMovement(); + + +// CBaseObject. +public: + virtual bool StartBuilding( CBaseEntity *pBuilder ); + + +// CBaseEntity. +public: + virtual void Precache(); + virtual void Spawn(); + virtual void Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value ); + + +// CBaseAnimating. +public: + + virtual void HandleAnimEvent( animevent_t *pEvent ); + + +// IServerVehicle. +public: + virtual bool IsPassengerVisible( int nRole ); + virtual void SetPassenger( int nRole, CBasePlayer *pPassenger ); + + +// IVehicle overrides. +public: + virtual void SetupMove( CBasePlayer *pPlayer, CUserCmd *ucmd, IMoveHelper *pHelper, CMoveData *move ); + + +private: + void FootHit( const char *pFootName ); + + void StartFiringMachineGun(); + void StopFiringMachineGun(); + void FireMachineGun(); + + Vector GetLargeGunShootOrigin(); + void StartFiringLargeGun(); + void StopFiringLargeGun(); + void UpdateLargeGun(); + + void Crouch(); + void UnCrouch(); + void UpdateCrouch(); + + +private: + + enum + { + STATE_CROUCHING=0, + STATE_CROUCHED, + STATE_UNCROUCHING, + STATE_UNCROUCHED, + STATE_NORMAL + }; + + int m_State; + + float m_flCrouchTimer; + + CNetworkVar( bool, m_bFiringMachineGun ); + CNetworkVar( bool, m_bFiringLargeGun ); + CNetworkVector( m_vLargeGunTargetPos ); + float m_flLargeGunCountdown; + Vector m_vLargeGunForward; + CHandle<CBeam> m_pEnergyBeam; + + // Firing + float m_flNextShootTime; + bool m_bFiringLeftGun; + + // Used to keep him on the ground. + float m_flOriginToLowestLegHeight; + float m_flWantedZ; + + // Used to get around an anim event bug where it triggers events a bunch of times when an animation loops. + float m_flNextFootstepSoundTime; +}; + + +#endif // TF_WALKER_MINISTRIDER_H |