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.
117 lines
2.2 KiB
117 lines
2.2 KiB
//========= 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
|
|
|