Skip to content

Commit 4d609f0

Browse files
InputSettings: Fix controller type counter to restore WPAD limit (#1118)
1 parent 42d14ee commit 4d609f0

File tree

2 files changed

+4
-31
lines changed

2 files changed

+4
-31
lines changed

src/gui/input/InputSettings2.cpp

+4-28
Original file line numberDiff line numberDiff line change
@@ -295,32 +295,6 @@ wxWindow* InputSettings2::initialize_page(size_t index)
295295
return page;
296296
}
297297

298-
std::pair<size_t, size_t> InputSettings2::get_emulated_controller_types() const
299-
{
300-
size_t vpad = 0, wpad = 0;
301-
for(size_t i = 0; i < m_notebook->GetPageCount(); ++i)
302-
{
303-
auto* page = m_notebook->GetPage(i);
304-
auto* page_data = (wxControllerPageData*)page->GetClientObject();
305-
if (!page_data)
306-
continue;
307-
308-
if (!page_data->ref().m_controller) // = disabled
309-
continue;
310-
311-
const auto api_type = page_data->ref().m_controller->type();
312-
if (api_type)
313-
continue;
314-
315-
if (api_type == EmulatedController::VPAD)
316-
++vpad;
317-
else
318-
++wpad;
319-
}
320-
321-
return std::make_pair(vpad, wpad);
322-
}
323-
324298
std::shared_ptr<ControllerBase> InputSettings2::get_active_controller() const
325299
{
326300
auto& page_data = get_current_page_data();
@@ -771,22 +745,24 @@ void InputSettings2::on_emulated_controller_dropdown(wxCommandEvent& event)
771745
wxWindowUpdateLocker lock(emulated_controllers);
772746

773747
bool is_gamepad_selected = false;
748+
bool is_wpad_selected = false;
774749
const auto selected = emulated_controllers->GetSelection();
775750
const auto selected_value = emulated_controllers->GetStringSelection();
776751
if(selected != wxNOT_FOUND)
777752
{
778753
is_gamepad_selected = selected_value == to_wxString(EmulatedController::type_to_string(EmulatedController::Type::VPAD));
754+
is_wpad_selected = !is_gamepad_selected && selected != 0;
779755
}
780756

781-
const auto [vpad_count, wpad_count] = get_emulated_controller_types();
757+
const auto [vpad_count, wpad_count] = InputManager::instance().get_controller_count();
782758

783759
emulated_controllers->Clear();
784760
emulated_controllers->AppendString(_("Disabled"));
785761

786762
if (vpad_count < InputManager::kMaxVPADControllers || is_gamepad_selected)
787763
emulated_controllers->Append(to_wxString(EmulatedController::type_to_string(EmulatedController::Type::VPAD)));
788764

789-
if (wpad_count < InputManager::kMaxWPADControllers || !is_gamepad_selected)
765+
if (wpad_count < InputManager::kMaxWPADControllers || is_wpad_selected)
790766
{
791767
emulated_controllers->AppendString(to_wxString(EmulatedController::type_to_string(EmulatedController::Type::Pro)));
792768
emulated_controllers->AppendString(to_wxString(EmulatedController::type_to_string(EmulatedController::Type::Classic)));

src/gui/input/InputSettings2.h

-3
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,6 @@ class InputSettings2 : public wxDialog
2727

2828
wxWindow* initialize_page(size_t index);
2929

30-
// count active <vpad, wpad> controllers
31-
std::pair<size_t, size_t> get_emulated_controller_types() const;
32-
3330
// currently selected controller from active tab
3431
std::shared_ptr<ControllerBase> get_active_controller() const;
3532

0 commit comments

Comments
 (0)