//========= 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