ddnet/src/game/server/player.hpp

70 lines
1.1 KiB
C++

#ifndef GAME_SERVER_PLAYER_H
#define GAME_SERVER_PLAYER_H
// this include should perhaps be removed
#include "entities/character.hpp"
// player object
class PLAYER
{
MACRO_ALLOC_POOL_ID()
private:
CHARACTER *character;
public:
PLAYER(int client_id);
~PLAYER();
// TODO: clean this up
char skin_name[64];
int use_custom_color;
int color_body;
int color_feet;
//
bool spawning;
int client_id;
int team;
int score;
bool force_balanced;
//
int64 last_chat;
int64 last_setteam;
int64 last_changeinfo;
int64 last_emote;
int64 last_kill;
// network latency calculations
struct
{
int accum;
int accum_min;
int accum_max;
int avg;
int min;
int max;
} latency;
// this is used for snapping so we know how we can clip the view for the player
vec2 view_pos;
void init(int client_id);
CHARACTER *get_character();
void kill_character();
void try_respawn();
void respawn();
void set_team(int team);
void tick();
void snap(int snaping_client);
void on_direct_input(NETOBJ_PLAYER_INPUT *new_input);
void on_predicted_input(NETOBJ_PLAYER_INPUT *new_input);
void on_disconnect();
};
#endif