Toxic update (#641)
This commit is contained in:
@ -1,9 +1,15 @@
|
||||
#pragma once
|
||||
#include "player_service.hpp"
|
||||
#include "vehicle/CVehicle.hpp"
|
||||
#include "network/snSession.hpp"
|
||||
#include "rate_limiter.hpp"
|
||||
|
||||
class CVehicle;
|
||||
|
||||
namespace rage
|
||||
{
|
||||
class snPlayer;
|
||||
class snPeer;
|
||||
}
|
||||
|
||||
namespace big
|
||||
{
|
||||
class player final
|
||||
|
@ -26,6 +26,8 @@ namespace big
|
||||
|
||||
void player_service::do_cleanup()
|
||||
{
|
||||
m_player_to_use_end_session_kick.reset();
|
||||
m_player_to_use_complaint_kick.reset();
|
||||
m_selected_player = m_dummy;
|
||||
m_players.clear();
|
||||
}
|
||||
@ -82,12 +84,20 @@ namespace big
|
||||
|
||||
void player_service::player_leave(CNetGamePlayer* net_game_player)
|
||||
{
|
||||
if (net_game_player == nullptr) return;
|
||||
if (net_game_player == nullptr)
|
||||
return;
|
||||
|
||||
if (m_selected_player && m_selected_player->equals(net_game_player))
|
||||
m_selected_player = m_dummy;
|
||||
|
||||
if (auto it = std::find_if(m_players.begin(), m_players.end(), [net_game_player](const auto& p) { return p.second->id() == net_game_player->m_player_id; }); it != m_players.end())
|
||||
{
|
||||
if (m_player_to_use_end_session_kick == it->second)
|
||||
m_player_to_use_end_session_kick = std::nullopt;
|
||||
|
||||
if (m_player_to_use_complaint_kick == it->second)
|
||||
m_player_to_use_complaint_kick = std::nullopt;
|
||||
|
||||
m_players.erase(it);
|
||||
}
|
||||
}
|
||||
|
@ -20,7 +20,6 @@ namespace big
|
||||
player_ptr m_dummy = std::make_shared<player>(nullptr);
|
||||
player_ptr m_selected_player;
|
||||
public:
|
||||
|
||||
player_service();
|
||||
~player_service();
|
||||
|
||||
@ -49,6 +48,8 @@ namespace big
|
||||
|
||||
void set_selected(player_ptr plyr);
|
||||
|
||||
std::optional<player_ptr> m_player_to_use_end_session_kick = std::nullopt;
|
||||
std::optional<player_ptr> m_player_to_use_complaint_kick = std::nullopt;
|
||||
};
|
||||
|
||||
inline player_service* g_player_service{};
|
||||
|
Reference in New Issue
Block a user