summaryrefslogtreecommitdiff
path: root/game/client/hl1/c_hl1mp_player.h
diff options
context:
space:
mode:
Diffstat (limited to 'game/client/hl1/c_hl1mp_player.h')
-rw-r--r--game/client/hl1/c_hl1mp_player.h131
1 files changed, 131 insertions, 0 deletions
diff --git a/game/client/hl1/c_hl1mp_player.h b/game/client/hl1/c_hl1mp_player.h
new file mode 100644
index 0000000..1d47850
--- /dev/null
+++ b/game/client/hl1/c_hl1mp_player.h
@@ -0,0 +1,131 @@
+//========= 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