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.
136 lines
3.0 KiB
136 lines
3.0 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: Shared Player Variables / Functions and variables that may or may not be networked |
|
// |
|
//===========================================================================================// |
|
|
|
#ifndef SDK_PLAYER_SHARED_H |
|
#define SDK_PLAYER_SHARED_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#include "networkvar.h" |
|
#include "weapon_sdkbase.h" |
|
|
|
#ifdef CLIENT_DLL |
|
class C_SDKPlayer; |
|
#else |
|
class CSDKPlayer; |
|
#endif |
|
|
|
class CSDKPlayerShared |
|
{ |
|
public: |
|
|
|
#ifdef CLIENT_DLL |
|
friend class C_SDKPlayer; |
|
typedef C_SDKPlayer OuterClass; |
|
DECLARE_PREDICTABLE(); |
|
#else |
|
friend class CSDKPlayer; |
|
typedef CSDKPlayer OuterClass; |
|
#endif |
|
|
|
DECLARE_EMBEDDED_NETWORKVAR() |
|
DECLARE_CLASS_NOBASE( CSDKPlayerShared ); |
|
|
|
CSDKPlayerShared(); |
|
~CSDKPlayerShared(); |
|
|
|
#if defined ( SDK_USE_STAMINA ) || defined ( SDK_USE_SPRINTING ) |
|
void SetStamina( float stamina ); |
|
float GetStamina( void ) { return m_flStamina; } |
|
#endif // SDK_USE_STAMINA || SDK_USE_SPRINTING |
|
|
|
void Init( OuterClass *pOuter ); |
|
|
|
bool IsSniperZoomed( void ) const; |
|
bool IsDucking( void ) const; |
|
|
|
#if defined ( SDK_USE_PLAYERCLASSES ) |
|
void SetDesiredPlayerClass( int playerclass ); |
|
int DesiredPlayerClass( void ); |
|
|
|
void SetPlayerClass( int playerclass ); |
|
int PlayerClass( void ); |
|
#endif |
|
|
|
CWeaponSDKBase* GetActiveSDKWeapon() const; |
|
|
|
#if defined ( SDK_USE_PRONE ) |
|
void StartGoingProne( void ); |
|
void StandUpFromProne( void ); |
|
bool IsProne() const; |
|
bool IsGettingUpFromProne() const; |
|
bool IsGoingProne() const; |
|
void SetProne( bool bProne, bool bNoAnimation = false ); |
|
bool CanChangePosition( void ); |
|
#endif |
|
|
|
bool IsJumping( void ) { return m_bJumping; } |
|
void SetJumping( bool bJumping ); |
|
|
|
void ForceUnzoom( void ); |
|
|
|
#ifdef SDK_USE_SPRINTING |
|
bool IsSprinting( void ) { return m_bIsSprinting; } |
|
|
|
void SetSprinting( bool bSprinting ); |
|
void StartSprinting( void ); |
|
void StopSprinting( void ); |
|
|
|
void ResetSprintPenalty( void ); |
|
#endif |
|
|
|
void ComputeWorldSpaceSurroundingBox( Vector *pVecWorldMins, Vector *pVecWorldMaxs ); |
|
|
|
private: |
|
|
|
#if defined ( SDK_USE_PRONE ) |
|
CNetworkVar( bool, m_bProne ); |
|
#endif |
|
|
|
#if defined ( SDK_USE_PLAYERCLASSES ) |
|
CNetworkVar( int, m_iPlayerClass ); |
|
CNetworkVar( int, m_iDesiredPlayerClass ); |
|
#endif |
|
|
|
|
|
#if defined ( SDK_USE_SPRINTING ) |
|
CNetworkVar( bool, m_bIsSprinting ); |
|
bool m_bGaveSprintPenalty; |
|
#endif |
|
|
|
#if defined ( SDK_USE_STAMINA ) || defined ( SDK_USE_SPRINTING ) |
|
CNetworkVar( float, m_flStamina ); |
|
#endif // SDK_USE_STAMINA || SDK_USE_SPRINTING |
|
|
|
public: |
|
|
|
#ifdef SDK_USE_PRONE |
|
float m_flNextProneCheck; // Prevent it switching their prone state constantly. |
|
|
|
CNetworkVar( float, m_flUnProneTime ); |
|
CNetworkVar( float, m_flGoProneTime ); |
|
CNetworkVar( bool, m_bForceProneChange ); |
|
#endif |
|
|
|
bool m_bJumping; |
|
|
|
float m_flLastViewAnimationTime; |
|
|
|
//Tony; player speeds; at spawn server and client update both of these based on class (if any) |
|
float m_flRunSpeed; |
|
float m_flSprintSpeed; |
|
float m_flProneSpeed; |
|
|
|
private: |
|
|
|
OuterClass *m_pOuter; |
|
}; |
|
|
|
|
|
|
|
|
|
#endif //SDK_PLAYER_SHARED_H
|