source-engine/game/server/tf2/tf_walker_ministrider.h
FluorescentCIAAfricanAmerican 3bf9df6b27 1
2020-04-22 12:56:21 -04:00

118 lines
2.2 KiB
C++

//========= 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