mirror of
https://github.com/nillerusr/source-engine.git
synced 2024-12-27 00:26:50 +00:00
139 lines
2.6 KiB
C++
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
|