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.
173 lines
4.5 KiB
173 lines
4.5 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
// $NoKeywords: $ |
|
// |
|
//=============================================================================// |
|
#ifndef HL2MP_PLAYER_H |
|
#define HL2MP_PLAYER_H |
|
#pragma once |
|
|
|
class C_HL2MP_Player; |
|
#include "c_basehlplayer.h" |
|
#include "hl2mp_player_shared.h" |
|
#include "beamdraw.h" |
|
|
|
//============================================================================= |
|
// >> HL2MP_Player |
|
//============================================================================= |
|
class C_HL2MP_Player : public C_BaseHLPlayer |
|
{ |
|
public: |
|
DECLARE_CLASS( C_HL2MP_Player, C_BaseHLPlayer ); |
|
|
|
DECLARE_CLIENTCLASS(); |
|
DECLARE_PREDICTABLE(); |
|
DECLARE_INTERPOLATION(); |
|
|
|
|
|
C_HL2MP_Player(); |
|
~C_HL2MP_Player( void ); |
|
|
|
void ClientThink( void ); |
|
|
|
static C_HL2MP_Player* GetLocalHL2MPPlayer(); |
|
|
|
virtual int DrawModel( int flags ); |
|
virtual void AddEntity( void ); |
|
|
|
QAngle GetAnimEyeAngles( void ) { return m_angEyeAngles; } |
|
Vector GetAttackSpread( CBaseCombatWeapon *pWeapon, CBaseEntity *pTarget = NULL ); |
|
|
|
|
|
// Should this object cast shadows? |
|
virtual ShadowType_t ShadowCastType( void ); |
|
virtual C_BaseAnimating *BecomeRagdollOnClient(); |
|
virtual const QAngle& GetRenderAngles(); |
|
virtual bool ShouldDraw( void ); |
|
virtual void OnDataChanged( DataUpdateType_t type ); |
|
virtual float GetFOV( void ); |
|
virtual CStudioHdr *OnNewModel( void ); |
|
virtual void TraceAttack( const CTakeDamageInfo &info, const Vector &vecDir, trace_t *ptr, CDmgAccumulator *pAccumulator ); |
|
virtual void ItemPreFrame( void ); |
|
virtual void ItemPostFrame( void ); |
|
virtual float GetMinFOV() const { return 5.0f; } |
|
virtual Vector GetAutoaimVector( float flDelta ); |
|
virtual void NotifyShouldTransmit( ShouldTransmitState_t state ); |
|
virtual void CreateLightEffects( void ) {} |
|
virtual bool ShouldReceiveProjectedTextures( int flags ); |
|
virtual void PostDataUpdate( DataUpdateType_t updateType ); |
|
virtual void PlayStepSound( Vector &vecOrigin, surfacedata_t *psurface, float fvol, bool force ); |
|
virtual void PreThink( void ); |
|
virtual void DoImpactEffect( trace_t &tr, int nDamageType ); |
|
IRagdoll* GetRepresentativeRagdoll() const; |
|
virtual void CalcView( Vector &eyeOrigin, QAngle &eyeAngles, float &zNear, float &zFar, float &fov ); |
|
virtual const QAngle& EyeAngles( void ); |
|
|
|
|
|
bool CanSprint( void ); |
|
void StartSprinting( void ); |
|
void StopSprinting( void ); |
|
void HandleSpeedChanges( void ); |
|
void UpdateLookAt( void ); |
|
void Initialize( void ); |
|
int GetIDTarget() const; |
|
void UpdateIDTarget( void ); |
|
void PrecacheFootStepSounds( void ); |
|
const char *GetPlayerModelSoundPrefix( void ); |
|
|
|
HL2MPPlayerState State_Get() const; |
|
|
|
// Walking |
|
void StartWalking( void ); |
|
void StopWalking( void ); |
|
bool IsWalking( void ) { return m_fIsWalking; } |
|
|
|
virtual void PostThink( void ); |
|
|
|
private: |
|
|
|
C_HL2MP_Player( const C_HL2MP_Player & ); |
|
|
|
CPlayerAnimState m_PlayerAnimState; |
|
|
|
QAngle m_angEyeAngles; |
|
|
|
CInterpolatedVar< QAngle > m_iv_angEyeAngles; |
|
|
|
EHANDLE m_hRagdoll; |
|
|
|
int m_headYawPoseParam; |
|
int m_headPitchPoseParam; |
|
float m_headYawMin; |
|
float m_headYawMax; |
|
float m_headPitchMin; |
|
float m_headPitchMax; |
|
|
|
bool m_isInit; |
|
Vector m_vLookAtTarget; |
|
|
|
float m_flLastBodyYaw; |
|
float m_flCurrentHeadYaw; |
|
float m_flCurrentHeadPitch; |
|
|
|
int m_iIDEntIndex; |
|
|
|
CountdownTimer m_blinkTimer; |
|
|
|
int m_iSpawnInterpCounter; |
|
int m_iSpawnInterpCounterCache; |
|
|
|
int m_iPlayerSoundType; |
|
|
|
void ReleaseFlashlight( void ); |
|
Beam_t *m_pFlashlightBeam; |
|
|
|
CNetworkVar( HL2MPPlayerState, m_iPlayerState ); |
|
|
|
bool m_fIsWalking; |
|
}; |
|
|
|
inline C_HL2MP_Player *ToHL2MPPlayer( CBaseEntity *pEntity ) |
|
{ |
|
if ( !pEntity || !pEntity->IsPlayer() ) |
|
return NULL; |
|
|
|
return dynamic_cast<C_HL2MP_Player*>( pEntity ); |
|
} |
|
|
|
|
|
class C_HL2MPRagdoll : public C_BaseAnimatingOverlay |
|
{ |
|
public: |
|
DECLARE_CLASS( C_HL2MPRagdoll, C_BaseAnimatingOverlay ); |
|
DECLARE_CLIENTCLASS(); |
|
|
|
C_HL2MPRagdoll(); |
|
~C_HL2MPRagdoll(); |
|
|
|
virtual void OnDataChanged( DataUpdateType_t type ); |
|
|
|
int GetPlayerEntIndex() const; |
|
IRagdoll* GetIRagdoll() const; |
|
|
|
void ImpactTrace( trace_t *pTrace, int iDamageType, const char *pCustomImpactName ); |
|
void UpdateOnRemove( void ); |
|
virtual void SetupWeights( const matrix3x4_t *pBoneToWorld, int nFlexWeightCount, float *pFlexWeights, float *pFlexDelayedWeights ); |
|
|
|
private: |
|
|
|
C_HL2MPRagdoll( const C_HL2MPRagdoll & ) {} |
|
|
|
void Interp_Copy( C_BaseAnimatingOverlay *pDestinationEntity ); |
|
void CreateHL2MPRagdoll( void ); |
|
|
|
private: |
|
|
|
EHANDLE m_hPlayer; |
|
CNetworkVector( m_vecRagdollVelocity ); |
|
CNetworkVector( m_vecRagdollOrigin ); |
|
}; |
|
|
|
#endif //HL2MP_PLAYER_H
|
|
|