Revert pr#3691

https://github.com/dolphin-emu/dolphin/pull/3691
This commit is contained in:
mimimi085181 2016-06-26 10:44:15 +02:00
parent fcf5d4f6bc
commit 330289cf71
4 changed files with 35 additions and 2 deletions

View File

@ -16,6 +16,7 @@
#include "Core/HW/SI_DeviceGCController.h"
#include "Core/HW/Sram.h"
#include "Core/HW/WiimoteEmu/WiimoteEmu.h"
#include "Core/HW/WiimoteReal/WiimoteReal.h"
#include "Core/IPC_HLE/WII_IPC_HLE_Device_usb.h"
#include "Core/Movie.h"
#include "InputCommon/GCAdapter.h"
@ -712,6 +713,25 @@ bool NetPlayClient::StartGame(const std::string& path)
m_dialog->BootGame(path);
if (SConfig::GetInstance().bWii)
{
for (unsigned int i = 0; i < 4; ++i)
WiimoteReal::ChangeWiimoteSource(i,
m_wiimote_map[i] > 0 ? WIIMOTE_SRC_EMU : WIIMOTE_SRC_NONE);
// Needed to prevent locking up at boot if (when) the wiimotes connect out of order.
NetWiimote nw;
nw.resize(4, 0);
for (unsigned int w = 0; w < 4; ++w)
{
if (m_wiimote_map[w] != -1)
// probably overkill, but whatever
for (unsigned int i = 0; i < 7; ++i)
m_wiimote_buffer[w].Push(nw);
}
}
UpdateDevices();
return true;

View File

@ -138,7 +138,7 @@ NetPlaySetupFrame::NetPlaySetupFrame(wxWindow* const parent, const CGameListCtrl
"If DSP LLE is used, DSP ROMs must be identical between players.\n"
"If connecting directly, the host must have the chosen UDP port open/forwarded!\n"
"\n"
"Wiimote support is broken in netplay and therefore disabled.\n"));
"Wiimote netplay is experimental and should not be expected to work.\n"));
wxBoxSizer* const top_szr = new wxBoxSizer(wxHORIZONTAL);

View File

@ -66,6 +66,11 @@ PadMappingArray PadMapDialog::GetModifiedPadMappings() const
return m_pad_mapping;
}
PadMappingArray PadMapDialog::GetModifiedWiimoteMappings() const
{
return m_wii_mapping;
}
void PadMapDialog::OnAdjust(wxCommandEvent& WXUNUSED(event))
{
for (unsigned int i = 0; i < 4; i++)
@ -75,5 +80,11 @@ void PadMapDialog::OnAdjust(wxCommandEvent& WXUNUSED(event))
m_pad_mapping[i] = m_player_list[player_idx - 1]->pid;
else
m_pad_mapping[i] = -1;
player_idx = m_map_cbox[i + 4]->GetSelection();
if (player_idx > 0)
m_wii_mapping[i] = m_player_list[player_idx - 1]->pid;
else
m_wii_mapping[i] = -1;
}
}

View File

@ -20,11 +20,13 @@ public:
PadMapDialog(wxWindow* parent, NetPlayServer* server, NetPlayClient* client);
PadMappingArray GetModifiedPadMappings() const;
PadMappingArray GetModifiedWiimoteMappings() const;
private:
void OnAdjust(wxCommandEvent& event);
wxChoice* m_map_cbox[4];
wxChoice* m_map_cbox[8];
PadMappingArray m_pad_mapping;
PadMappingArray m_wii_mapping;
std::vector<const Player*> m_player_list;
};