summaryrefslogtreecommitdiff
path: root/game/shared/sdk/sdk_player_shared.h
diff options
context:
space:
mode:
Diffstat (limited to 'game/shared/sdk/sdk_player_shared.h')
-rw-r--r--game/shared/sdk/sdk_player_shared.h136
1 files changed, 136 insertions, 0 deletions
diff --git a/game/shared/sdk/sdk_player_shared.h b/game/shared/sdk/sdk_player_shared.h
new file mode 100644
index 0000000..f745fc8
--- /dev/null
+++ b/game/shared/sdk/sdk_player_shared.h
@@ -0,0 +1,136 @@
+//========= 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 \ No newline at end of file