mirror of
https://github.com/nillerusr/source-engine.git
synced 2024-12-24 23:26:50 +00:00
118 lines
2.2 KiB
C++
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
|