This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.

58 lines
1.5 KiB
C++
Raw Normal View History

#pragma once
#include "player_service.hpp"
#include "vehicle/CVehicle.hpp"
#include "network/snSession.hpp"
namespace big
{
class player final
{
friend class player_service;
CNetGamePlayer* m_net_game_player = nullptr;
std::string m_identifier;
bool m_is_friend;
public:
explicit player(CNetGamePlayer* net_game_player);
~player() = default;
player(const player&) = default;
player(player&&) noexcept = default;
player& operator=(const player&) = default;
player& operator=(player&&) noexcept = default;
float screen_position_x = -1.f;
float screen_position_y = -1.f;
[[nodiscard]] CVehicle* get_current_vehicle() const;
[[nodiscard]] const char* get_name() const;
[[nodiscard]] rage::rlGamerInfo* get_net_data() const;
[[nodiscard]] CNetGamePlayer* get_net_game_player() const;
[[nodiscard]] CPed* get_ped() const;
[[nodiscard]] CPlayerInfo* get_player_info() const;
[[nodiscard]] class rage::snPlayer* get_session_player();
[[nodiscard]] class rage::snPeer* get_session_peer();
[[nodiscard]] uint8_t id() const;
[[nodiscard]] bool is_friend() const;
[[nodiscard]] bool is_host() const;
[[nodiscard]] bool is_valid() const;
bool never_wanted = false;
2022-08-29 10:26:18 +00:00
std::chrono::system_clock::time_point m_last_transition_msg_sent{};
int m_num_failed_transition_attempts = 0;
bool is_modder = false;
bool block_join = false;
int block_join_reason = 0;
protected:
bool equals(const CNetGamePlayer* net_game_player) const;
[[nodiscard]] std::string to_lowercase_identifier() const;
};
}