
* feat(Protections): Added desync protection and notification (#156) * fix(Protections): Fix warning and revert Premake VS version
67 lines
1.3 KiB
C++
67 lines
1.3 KiB
C++
#pragma once
|
|
|
|
namespace big
|
|
{
|
|
class player_service;
|
|
class player final
|
|
{
|
|
friend player_service;
|
|
|
|
CNetGamePlayer* m_net_game_player = nullptr;
|
|
std::string m_identifier;
|
|
bool m_is_friend;
|
|
|
|
public:
|
|
player(CNetGamePlayer* net_game_player);
|
|
virtual ~player() = default;
|
|
|
|
float screen_position_x = -1.f;
|
|
float screen_position_y = -1.f;
|
|
|
|
CAutomobile* get_current_vehicle();
|
|
const char* get_name();
|
|
rage::netPlayerData* get_net_data();
|
|
CNetGamePlayer* get_net_game_player();
|
|
CPed* get_ped();
|
|
CPlayerInfo* get_player_info();
|
|
|
|
uint8_t id();
|
|
|
|
bool is_friend();
|
|
bool is_host();
|
|
bool is_valid();
|
|
|
|
protected:
|
|
bool equals(CNetGamePlayer* net_game_player);
|
|
|
|
std::string to_lowercase_identifier();
|
|
|
|
};
|
|
|
|
typedef std::map<std::string, std::unique_ptr<player>> player_list;
|
|
class player_service final
|
|
{
|
|
player* m_dummy_player{};
|
|
player* m_selected_player = nullptr;
|
|
public:
|
|
player_list m_players;
|
|
|
|
player_service();
|
|
virtual ~player_service();
|
|
|
|
void do_cleanup();
|
|
|
|
player* get_by_name(std::string name);
|
|
player* get_by_msg_id(uint32_t msg_id);
|
|
player* get_by_host_token(uint64_t token);
|
|
player* get_selected();
|
|
|
|
void player_join(CNetGamePlayer* net_game_player);
|
|
void player_leave(CNetGamePlayer* net_game_player);
|
|
|
|
void set_selected(player* plyr);
|
|
|
|
};
|
|
|
|
inline player_service* g_player_service{};
|
|
} |