diff options
Diffstat (limited to 'Source/Core/DolphinWX/NetPlay/PadMapDialog.cpp')
| -rw-r--r-- | Source/Core/DolphinWX/NetPlay/PadMapDialog.cpp | 41 |
1 files changed, 26 insertions, 15 deletions
diff --git a/Source/Core/DolphinWX/NetPlay/PadMapDialog.cpp b/Source/Core/DolphinWX/NetPlay/PadMapDialog.cpp index 5e6d3798cb..4e3b382479 100644 --- a/Source/Core/DolphinWX/NetPlay/PadMapDialog.cpp +++ b/Source/Core/DolphinWX/NetPlay/PadMapDialog.cpp @@ -8,13 +8,14 @@ #include "Core/NetPlayClient.h" #include "Core/NetPlayProto.h" +#include "Core/NetPlayServer.h" #include "DolphinWX/NetPlay/PadMapDialog.h" -PadMapDialog::PadMapDialog(wxWindow* parent, PadMapping map[], PadMapping wiimotemap[], std::vector<const Player*>& player_list) - : wxDialog(parent, wxID_ANY, _("Configure Pads")) - , m_mapping(map) - , m_wiimapping(wiimotemap) - , m_player_list(player_list) +PadMapDialog::PadMapDialog(wxWindow* parent, NetPlayServer* server, NetPlayClient* client) + : wxDialog(parent, wxID_ANY, _("Controller Ports")) + , m_pad_mapping(server->GetPadMapping()) + , m_wii_mapping(server->GetWiimoteMapping()) + , m_player_list(client->GetPlayers()) { wxBoxSizer* const h_szr = new wxBoxSizer(wxHORIZONTAL); h_szr->AddSpacer(10); @@ -27,12 +28,12 @@ PadMapDialog::PadMapDialog(wxWindow* parent, PadMapping map[], PadMapping wiimot for (unsigned int i = 0; i < 4; ++i) { wxBoxSizer* const v_szr = new wxBoxSizer(wxVERTICAL); - v_szr->Add(new wxStaticText(this, wxID_ANY, (wxString(_("Pad ")) + (wxChar)('0' + i))), + v_szr->Add(new wxStaticText(this, wxID_ANY, (wxString(_("GC Port ")) + (wxChar)('1' + i))), 1, wxALIGN_CENTER_HORIZONTAL); m_map_cbox[i] = new wxChoice(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, player_names); m_map_cbox[i]->Bind(wxEVT_CHOICE, &PadMapDialog::OnAdjust, this); - if (m_mapping[i] == -1) + if (m_pad_mapping[i] == -1) { m_map_cbox[i]->Select(0); } @@ -40,7 +41,7 @@ PadMapDialog::PadMapDialog(wxWindow* parent, PadMapping map[], PadMapping wiimot { for (unsigned int j = 0; j < m_player_list.size(); j++) { - if (m_mapping[i] == m_player_list[j]->pid) + if (m_pad_mapping[i] == m_player_list[j]->pid) m_map_cbox[i]->Select(j + 1); } } @@ -54,12 +55,12 @@ PadMapDialog::PadMapDialog(wxWindow* parent, PadMapping map[], PadMapping wiimot for (unsigned int i = 0; i < 4; ++i) { wxBoxSizer* const v_szr = new wxBoxSizer(wxVERTICAL); - v_szr->Add(new wxStaticText(this, wxID_ANY, (wxString(_("Wiimote ")) + (wxChar)('0' + i))), + v_szr->Add(new wxStaticText(this, wxID_ANY, (wxString(_("Wiimote ")) + (wxChar)('1' + i))), 1, wxALIGN_CENTER_HORIZONTAL); m_map_cbox[i + 4] = new wxChoice(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, player_names); m_map_cbox[i + 4]->Bind(wxEVT_CHOICE, &PadMapDialog::OnAdjust, this); - if (m_wiimapping[i] == -1) + if (m_wii_mapping[i] == -1) { m_map_cbox[i + 4]->Select(0); } @@ -67,7 +68,7 @@ PadMapDialog::PadMapDialog(wxWindow* parent, PadMapping map[], PadMapping wiimot { for (unsigned int j = 0; j < m_player_list.size(); j++) { - if (m_wiimapping[i] == m_player_list[j]->pid) + if (m_wii_mapping[i] == m_player_list[j]->pid) m_map_cbox[i + 4]->Select(j + 1); } } @@ -87,20 +88,30 @@ PadMapDialog::PadMapDialog(wxWindow* parent, PadMapping map[], PadMapping wiimot SetFocus(); } +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++) { int player_idx = m_map_cbox[i]->GetSelection(); if (player_idx > 0) - m_mapping[i] = m_player_list[player_idx - 1]->pid; + m_pad_mapping[i] = m_player_list[player_idx - 1]->pid; else - m_mapping[i] = -1; + m_pad_mapping[i] = -1; player_idx = m_map_cbox[i + 4]->GetSelection(); if (player_idx > 0) - m_wiimapping[i] = m_player_list[player_idx - 1]->pid; + m_wii_mapping[i] = m_player_list[player_idx - 1]->pid; else - m_wiimapping[i] = -1; + m_wii_mapping[i] = -1; } } |
