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.
131 lines
2.9 KiB
131 lines
2.9 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
// $NoKeywords: $ |
|
// |
|
//=============================================================================// |
|
#ifndef HL1MP_PLAYER_H |
|
#define HL1MP_PLAYER_H |
|
#pragma once |
|
|
|
#include "cbase.h" |
|
#include "hl1_c_player.h" |
|
#include "hl1_player_shared.h" |
|
|
|
|
|
class C_HL1MP_Player : public C_HL1_Player |
|
{ |
|
public: |
|
DECLARE_CLASS( C_HL1MP_Player, C_HL1_Player ); |
|
DECLARE_CLIENTCLASS(); |
|
DECLARE_PREDICTABLE(); |
|
DECLARE_INTERPOLATION(); |
|
|
|
C_HL1MP_Player( void ); |
|
~C_HL1MP_Player(); |
|
|
|
virtual const QAngle& GetRenderAngles(); |
|
virtual void UpdateClientSideAnimation(); |
|
virtual void ProcessMuzzleFlashEvent(); |
|
|
|
void DoAnimationEvent( PlayerAnimEvent_t event, int nData = 0 ); |
|
|
|
virtual bool ShouldPredict( void ); |
|
virtual void CalcView( Vector &eyeOrigin, QAngle &eyeAngles, float &zNear, float &zFar, float &fov ); |
|
IRagdoll* GetRepresentativeRagdoll() const; |
|
|
|
virtual void Spawn( void ); |
|
virtual void AddEntity( void ); |
|
virtual bool ShouldDraw( void ); |
|
virtual void OnDataChanged( DataUpdateType_t type ); |
|
virtual void PostDataUpdate( DataUpdateType_t updateType ); |
|
virtual void ClientThink( void ); |
|
virtual C_BaseAnimating *BecomeRagdollOnClient(); |
|
//QAngle GetAnimEyeAngles( void ) { return m_angEyeAngles; } |
|
const QAngle& EyeAngles( void ) |
|
{ |
|
if ( IsLocalPlayer() ) |
|
{ |
|
return BaseClass::EyeAngles(); |
|
} |
|
else |
|
{ |
|
return m_angEyeAngles; |
|
} |
|
} |
|
|
|
virtual ShadowType_t ShadowCastType() |
|
{ |
|
if ( !IsVisible() ) |
|
return SHADOWS_NONE; |
|
|
|
return SHADOWS_RENDER_TO_TEXTURE_DYNAMIC; |
|
} |
|
|
|
void PreThink( void ); |
|
|
|
int m_iRealSequence; |
|
|
|
private: |
|
C_HL1MP_Player( const C_HL1MP_Player & ); |
|
|
|
EHANDLE m_hRagdoll; |
|
|
|
QAngle m_angEyeAngles; |
|
|
|
CInterpolatedVar< QAngle > m_iv_angEyeAngles; |
|
|
|
IHL1MPPlayerAnimState* m_PlayerAnimState; |
|
|
|
int m_iSpawnInterpCounter; |
|
int m_iSpawnInterpCounterCache; |
|
|
|
float m_fLastPredFreeze; |
|
}; |
|
|
|
|
|
class C_HL1MPRagdoll : public C_BaseAnimatingOverlay |
|
{ |
|
public: |
|
DECLARE_CLASS( C_HL1MPRagdoll, C_BaseAnimatingOverlay ); |
|
DECLARE_CLIENTCLASS(); |
|
|
|
C_HL1MPRagdoll(); |
|
~C_HL1MPRagdoll(); |
|
|
|
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_HL1MPRagdoll( const C_HL1MPRagdoll & ) {} |
|
|
|
void Interp_Copy( C_BaseAnimatingOverlay *pSourceEntity ); |
|
void CreateHL1MPRagdoll( void ); |
|
|
|
private: |
|
|
|
EHANDLE m_hPlayer; |
|
CNetworkVector( m_vecRagdollVelocity ); |
|
CNetworkVector( m_vecRagdollOrigin ); |
|
}; |
|
|
|
|
|
inline C_HL1MP_Player *ToHL1MPPlayer( CBaseEntity *pEntity ) |
|
{ |
|
if ( !pEntity || !pEntity->IsPlayer() ) |
|
return NULL; |
|
|
|
return dynamic_cast<C_HL1MP_Player*>( pEntity ); |
|
} |
|
|
|
|
|
|
|
#endif
|
|
|