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.
101 lines
2.6 KiB
101 lines
2.6 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: Player for SDK Game |
|
// |
|
// $NoKeywords: $ |
|
//=============================================================================// |
|
|
|
#ifndef SDK_PLAYER_H |
|
#define SDK_PLAYER_H |
|
#pragma once |
|
|
|
|
|
#include "player.h" |
|
#include "server_class.h" |
|
#include "sdk_playeranimstate.h" |
|
#include "sdk_shareddefs.h" |
|
|
|
|
|
//============================================================================= |
|
// >> SDK Game player |
|
//============================================================================= |
|
class CSDKPlayer : public CBasePlayer, public ISDKPlayerAnimStateHelpers |
|
{ |
|
public: |
|
DECLARE_CLASS( CSDKPlayer, CBasePlayer ); |
|
DECLARE_SERVERCLASS(); |
|
DECLARE_PREDICTABLE(); |
|
DECLARE_DATADESC(); |
|
|
|
CSDKPlayer(); |
|
~CSDKPlayer(); |
|
|
|
static CSDKPlayer *CreatePlayer( const char *className, edict_t *ed ); |
|
static CSDKPlayer* Instance( int iEnt ); |
|
|
|
// This passes the event to the client's and server's CPlayerAnimState. |
|
void DoAnimationEvent( PlayerAnimEvent_t event, int nData = 0 ); |
|
|
|
virtual void FlashlightTurnOn( void ); |
|
virtual void FlashlightTurnOff( void ); |
|
virtual int FlashlightIsOn( void ); |
|
|
|
virtual void PreThink(); |
|
virtual void PostThink(); |
|
virtual void Spawn(); |
|
virtual void InitialSpawn(); |
|
virtual void Precache(); |
|
virtual void Event_Killed( const CTakeDamageInfo &info ); |
|
virtual void LeaveVehicle( const Vector &vecExitPoint, const QAngle &vecExitAngles ); |
|
|
|
CWeaponSDKBase* GetActiveSDKWeapon() const; |
|
virtual void CreateViewModel( int viewmodelindex = 0 ); |
|
|
|
virtual void CheatImpulseCommands( int iImpulse ); |
|
|
|
CNetworkVar( int, m_iThrowGrenadeCounter ); // used to trigger grenade throw animations. |
|
CNetworkQAngle( m_angEyeAngles ); // Copied from EyeAngles() so we can send it to the client. |
|
CNetworkVar( int, m_iShotsFired ); // number of shots fired recently |
|
|
|
// Tracks our ragdoll entity. |
|
CNetworkHandle( CBaseEntity, m_hRagdoll ); // networked entity handle |
|
|
|
// In shared code. |
|
public: |
|
// ISDKPlayerAnimState overrides. |
|
virtual CWeaponSDKBase* SDKAnim_GetActiveWeapon(); |
|
virtual bool SDKAnim_CanMove(); |
|
|
|
|
|
void FireBullet( |
|
Vector vecSrc, |
|
const QAngle &shootAngles, |
|
float vecSpread, |
|
int iDamage, |
|
int iBulletType, |
|
CBaseEntity *pevAttacker, |
|
bool bDoEffects, |
|
float x, |
|
float y ); |
|
|
|
private: |
|
|
|
void CreateRagdollEntity(); |
|
|
|
ISDKPlayerAnimState *m_PlayerAnimState; |
|
}; |
|
|
|
|
|
inline CSDKPlayer *ToSDKPlayer( CBaseEntity *pEntity ) |
|
{ |
|
if ( !pEntity || !pEntity->IsPlayer() ) |
|
return NULL; |
|
|
|
#ifdef _DEBUG |
|
Assert( dynamic_cast<CSDKPlayer*>( pEntity ) != 0 ); |
|
#endif |
|
return static_cast< CSDKPlayer* >( pEntity ); |
|
} |
|
|
|
|
|
#endif // SDK_PLAYER_H
|
|
|