2010-05-29 07:25:38 +00:00
|
|
|
#ifndef GAME_SERVER_PLAYER_H
|
|
|
|
#define GAME_SERVER_PLAYER_H
|
|
|
|
|
|
|
|
// this include should perhaps be removed
|
|
|
|
#include "entities/character.h"
|
|
|
|
#include "gamecontext.h"
|
|
|
|
|
|
|
|
// player object
|
|
|
|
class CPlayer
|
|
|
|
{
|
|
|
|
MACRO_ALLOC_POOL_ID()
|
|
|
|
|
|
|
|
public:
|
|
|
|
CPlayer(CGameContext *pGameServer, int CID, int Team);
|
|
|
|
~CPlayer();
|
|
|
|
|
|
|
|
void Init(int CID);
|
|
|
|
|
|
|
|
void TryRespawn();
|
|
|
|
void Respawn();
|
|
|
|
void SetTeam(int Team);
|
|
|
|
int GetTeam() const { return m_Team; };
|
|
|
|
int GetCID() const { return m_ClientID; };
|
|
|
|
|
|
|
|
void Tick();
|
|
|
|
void Snap(int SnappingClient);
|
|
|
|
|
|
|
|
void OnDirectInput(CNetObj_PlayerInput *NewInput);
|
|
|
|
void OnPredictedInput(CNetObj_PlayerInput *NewInput);
|
|
|
|
void OnDisconnect();
|
|
|
|
|
|
|
|
void KillCharacter(int Weapon = WEAPON_GAME);
|
|
|
|
CCharacter *GetCharacter();
|
|
|
|
|
|
|
|
//---------------------------------------------------------
|
|
|
|
// this is used for snapping so we know how we can clip the view for the player
|
|
|
|
vec2 m_ViewPos;
|
|
|
|
|
|
|
|
//
|
|
|
|
int m_Vote;
|
|
|
|
int m_VotePos;
|
|
|
|
//
|
|
|
|
int m_Last_VoteCall;
|
|
|
|
int m_Last_VoteTry;
|
|
|
|
int m_Last_Chat;
|
|
|
|
int m_Last_SetTeam;
|
|
|
|
int m_Last_ChangeInfo;
|
|
|
|
int m_Last_Emote;
|
|
|
|
int m_Last_Kill;
|
|
|
|
|
2010-07-29 05:21:18 +00:00
|
|
|
//DDRace
|
|
|
|
int m_Muted;
|
|
|
|
//int hammer_ type;
|
|
|
|
|
|
|
|
// TODO: clean this up
|
|
|
|
int m_Authed;
|
|
|
|
int m_Resistent;
|
|
|
|
|
|
|
|
bool m_ColorSet; // Set if player changed color at least once
|
|
|
|
|
2010-07-29 14:53:25 +00:00
|
|
|
//DDRace var
|
2010-07-29 05:21:18 +00:00
|
|
|
int m_Starttime;
|
|
|
|
int m_Refreshtime;
|
|
|
|
int m_RaceState;
|
|
|
|
int m_Besttick;
|
|
|
|
int m_Lasttick;
|
|
|
|
float m_BestLap;
|
|
|
|
|
2010-05-29 07:25:38 +00:00
|
|
|
// TODO: clean this up
|
|
|
|
struct
|
|
|
|
{
|
|
|
|
char m_SkinName[64];
|
|
|
|
int m_UseCustomColor;
|
|
|
|
int m_ColorBody;
|
|
|
|
int m_ColorFeet;
|
|
|
|
} m_TeeInfos;
|
|
|
|
|
|
|
|
int m_RespawnTick;
|
|
|
|
int m_DieTick;
|
|
|
|
int m_Score;
|
2010-05-31 20:35:47 +00:00
|
|
|
int m_ScoreStartTick;
|
2010-05-29 07:25:38 +00:00
|
|
|
bool m_ForceBalanced;
|
|
|
|
|
|
|
|
private:
|
|
|
|
CCharacter *Character;
|
|
|
|
CGameContext *m_pGameServer;
|
|
|
|
|
|
|
|
CGameContext *GameServer() const { return m_pGameServer; }
|
|
|
|
IServer *Server() const;
|
|
|
|
|
|
|
|
//
|
|
|
|
bool m_Spawning;
|
|
|
|
int m_ClientID;
|
|
|
|
int m_Team;
|
|
|
|
|
|
|
|
// network latency calculations
|
|
|
|
struct
|
|
|
|
{
|
|
|
|
int m_Accum;
|
|
|
|
int m_AccumMin;
|
|
|
|
int m_AccumMax;
|
|
|
|
int m_Avg;
|
|
|
|
int m_Min;
|
|
|
|
int m_Max;
|
|
|
|
} m_Latency;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|