diff options
Diffstat (limited to 'game/shared/tfc/tfc_player_shared.h')
| -rw-r--r-- | game/shared/tfc/tfc_player_shared.h | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/game/shared/tfc/tfc_player_shared.h b/game/shared/tfc/tfc_player_shared.h new file mode 100644 index 0000000..aca3b23 --- /dev/null +++ b/game/shared/tfc/tfc_player_shared.h @@ -0,0 +1,138 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//=============================================================================// + +#ifndef TFC_PLAYER_SHARED_H +#define TFC_PLAYER_SHARED_H +#ifdef _WIN32 +#pragma once +#endif + + +#include "networkvar.h" +#include "tfc_shareddefs.h" +#include "weapon_tfcbase.h" + + +#ifdef CLIENT_DLL + class C_TFCPlayer; + EXTERN_RECV_TABLE( DT_TFCPlayerShared ); +#else + class CTFCPlayer; + EXTERN_SEND_TABLE( DT_TFCPlayerShared ); +#endif + + + +// Data in the DoD player that is accessed by shared code. +// This data isn't necessarily transmitted between client and server. +class CTFCPlayerShared +{ +public: + +#ifdef CLIENT_DLL + friend class C_TFCPlayer; + typedef C_TFCPlayer OuterClass; + DECLARE_PREDICTABLE(); +#else + friend class CTFCPlayer; + typedef CTFCPlayer OuterClass; +#endif + + DECLARE_EMBEDDED_NETWORKVAR() + DECLARE_CLASS_NOBASE( CTFCPlayerShared ); + + + CTFCPlayerShared(); + + void Init( OuterClass *pOuter ); + + void SetPlayerClass( int playerclass ); + int GetPlayerClass() const; + const CTFCPlayerClassInfo* GetClassInfo() const; + + // State. + TFCPlayerState State_Get() const; + + // State flags (TFSTATE_). + int GetStateFlags() const; + void SetStateFlags( int val ); + void AddStateFlags( int flags ); + void RemoveStateFlags( int flags ); + + // Item flags (IT_). + int GetItemFlags() const; + void SetItemFlags( int val ); + void AddItemFlags( int val ); + void RemoveItemFlags( int val ); + + CWeaponTFCBase* GetActiveTFCWeapon() const; + +// Vars that are networked. +private: + + CNetworkVar( int, m_StateFlags ); // Combination of the TFSTATE_ flags. + CNetworkVar( int, m_ItemFlags ); + CNetworkVar( int, m_iPlayerClass ); + CNetworkVar( TFCPlayerState, m_iPlayerState ); + + +// Vars that aren't networked. +public: + + +private: + + OuterClass *m_pOuter; +}; + + +inline int CTFCPlayerShared::GetStateFlags() const +{ + return m_StateFlags; +} + +inline void CTFCPlayerShared::SetStateFlags( int val ) +{ + m_StateFlags = val; +} + +inline void CTFCPlayerShared::AddStateFlags( int flags ) +{ + m_StateFlags |= flags; +} + +inline void CTFCPlayerShared::RemoveStateFlags( int flags ) +{ + m_StateFlags &= ~flags; +} + +inline int CTFCPlayerShared::GetItemFlags() const +{ + return m_ItemFlags; +} + +inline void CTFCPlayerShared::SetItemFlags( int val ) +{ + m_ItemFlags = val; +} + +inline void CTFCPlayerShared::AddItemFlags( int val ) +{ + m_ItemFlags |= val; +} + +inline void CTFCPlayerShared::RemoveItemFlags( int val ) +{ + m_ItemFlags &= ~val; +} + +inline const CTFCPlayerClassInfo* CTFCPlayerShared::GetClassInfo() const +{ + return GetTFCClassInfo( GetPlayerClass() ); +} + + +#endif // TFC_PLAYER_SHARED_H |