hl2_src-leak-2017/src/game/shared/tfc/tfc_player_shared.h

139 lines
2.6 KiB
C++

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