source-engine/game/client/sdk/c_sdk_player.h

88 lines
2.0 KiB
C
Raw Normal View History

2020-04-22 16:56:21 +00:00
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================//
#ifndef C_SDK_PLAYER_H
#define C_SDK_PLAYER_H
#ifdef _WIN32
#pragma once
#endif
#include "sdk_playeranimstate.h"
#include "c_baseplayer.h"
#include "sdk_shareddefs.h"
#include "baseparticleentity.h"
class C_SDKPlayer : public C_BasePlayer, public ISDKPlayerAnimStateHelpers
{
public:
DECLARE_CLASS( C_SDKPlayer, C_BasePlayer );
DECLARE_CLIENTCLASS();
DECLARE_PREDICTABLE();
DECLARE_INTERPOLATION();
C_SDKPlayer();
~C_SDKPlayer();
static C_SDKPlayer* GetLocalSDKPlayer();
virtual const QAngle& GetRenderAngles();
virtual void UpdateClientSideAnimation();
virtual void PostDataUpdate( DataUpdateType_t updateType );
virtual void OnDataChanged( DataUpdateType_t updateType );
// Called by shared code.
public:
// ISDKPlayerAnimState overrides.
virtual CWeaponSDKBase* SDKAnim_GetActiveWeapon();
virtual bool SDKAnim_CanMove();
void DoAnimationEvent( PlayerAnimEvent_t event, int nData = 0 );
bool ShouldDraw();
ISDKPlayerAnimState *m_PlayerAnimState;
QAngle m_angEyeAngles;
CInterpolatedVar< QAngle > m_iv_angEyeAngles;
CNetworkVar( int, m_iThrowGrenadeCounter ); // used to trigger grenade throw animations.
CNetworkVar( int, m_iShotsFired ); // number of shots fired recently
EHANDLE m_hRagdoll;
CWeaponSDKBase *GetActiveSDKWeapon() const;
C_BaseAnimating *BecomeRagdollOnClient();
IRagdoll* C_SDKPlayer::GetRepresentativeRagdoll() const;
void FireBullet(
Vector vecSrc,
const QAngle &shootAngles,
float vecSpread,
int iDamage,
int iBulletType,
CBaseEntity *pevAttacker,
bool bDoEffects,
float x,
float y );
private:
C_SDKPlayer( const C_SDKPlayer & );
};
inline C_SDKPlayer* ToSDKPlayer( CBaseEntity *pPlayer )
{
Assert( dynamic_cast< C_SDKPlayer* >( pPlayer ) != NULL );
return static_cast< C_SDKPlayer* >( pPlayer );
}
#endif // C_SDK_PLAYER_H