Qt/WiimoteControllersWidget: Disable remote Wiimote configuration during netplay.

This commit is contained in:
Admiral H. Curtiss
2022-09-25 04:22:30 +02:00
parent a1563f2def
commit ae4b89441c
4 changed files with 29 additions and 5 deletions

View File

@ -2321,11 +2321,22 @@ bool NetPlayClient::IsFirstInGamePad(int ingame_pad) const
[](auto mapping) { return mapping > 0; });
}
static int CountLocalPads(const PadMappingArray& pad_map, const PlayerId& local_player_pid)
{
return static_cast<int>(
std::count_if(pad_map.begin(), pad_map.end(), [&local_player_pid](const auto& mapping) {
return mapping == local_player_pid;
}));
}
int NetPlayClient::NumLocalPads() const
{
return static_cast<int>(std::count_if(m_pad_map.begin(), m_pad_map.end(), [this](auto mapping) {
return mapping == m_local_player->pid;
}));
return CountLocalPads(m_pad_map, m_local_player->pid);
}
int NetPlayClient::NumLocalWiimotes() const
{
return CountLocalPads(m_wiimote_map, m_local_player->pid);
}
static int InGameToLocal(int ingame_pad, const PadMappingArray& pad_map, PlayerId local_player_pid)
@ -2653,6 +2664,14 @@ PadDetails GetPadDetails(int pad_num)
return res;
}
int NumLocalWiimotes()
{
std::lock_guard lk(crit_netplay_client);
if (netplay_client)
return netplay_client->NumLocalWiimotes();
return 0;
}
void NetPlay_Enable(NetPlayClient* const np)
{
std::lock_guard lk(crit_netplay_client);

View File

@ -151,6 +151,7 @@ public:
bool IsFirstInGamePad(int ingame_pad) const;
int NumLocalPads() const;
int NumLocalWiimotes() const;
int InGamePadToLocalPad(int ingame_pad) const;
int LocalPadToInGamePad(int local_pad) const;

View File

@ -256,4 +256,5 @@ void SetSIPollBatching(bool state);
void SendPowerButtonEvent();
std::string GetGBASavePath(int pad_num);
PadDetails GetPadDetails(int pad_num);
int NumLocalWiimotes();
} // namespace NetPlay