From 17ce54d7f2ce8e1ad68ec36a6ec827f564f60818 Mon Sep 17 00:00:00 2001 From: Narr the Reg Date: Tue, 26 Apr 2022 19:03:26 -0500 Subject: yuzu: Config allow to delete single axis directions when buttons are mapped to a stick --- src/core/hid/input_converter.cpp | 4 ++-- src/yuzu/configuration/configure_input_player.cpp | 23 ++++++++++++++++++++++- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/core/hid/input_converter.cpp b/src/core/hid/input_converter.cpp index ee228e39b..3c26260f3 100644 --- a/src/core/hid/input_converter.cpp +++ b/src/core/hid/input_converter.cpp @@ -327,7 +327,7 @@ void SanitizeStick(Common::Input::AnalogStatus& analog_x, Common::Input::AnalogS raw_y += properties_y.offset; // Apply X scale correction from offset - if (std::abs(properties_x.offset) < 0.5f) { + if (std::abs(properties_x.offset) < 0.75f) { if (raw_x > 0) { raw_x /= 1 + properties_x.offset; } else { @@ -336,7 +336,7 @@ void SanitizeStick(Common::Input::AnalogStatus& analog_x, Common::Input::AnalogS } // Apply Y scale correction from offset - if (std::abs(properties_y.offset) < 0.5f) { + if (std::abs(properties_y.offset) < 0.75f) { if (raw_y > 0) { raw_y /= 1 + properties_y.offset; } else { diff --git a/src/yuzu/configuration/configure_input_player.cpp b/src/yuzu/configuration/configure_input_player.cpp index cb622bc37..1c05dd0f3 100644 --- a/src/yuzu/configuration/configure_input_player.cpp +++ b/src/yuzu/configuration/configure_input_player.cpp @@ -520,7 +520,28 @@ ConfigureInputPlayer::ConfigureInputPlayer(QWidget* parent, std::size_t player_i QMenu context_menu; Common::ParamPackage param = emulated_controller->GetStickParam(analog_id); context_menu.addAction(tr("Clear"), [&] { - emulated_controller->SetStickParam(analog_id, {}); + if (param.Get("engine", "") != "analog_from_button") { + emulated_controller->SetStickParam(analog_id, {}); + for (auto button : analog_map_buttons[analog_id]) { + button->setText(tr("[not set]")); + } + return; + } + switch (sub_button_id) { + case 0: + param.Erase("up"); + break; + case 1: + param.Erase("down"); + break; + case 2: + param.Erase("left"); + break; + case 3: + param.Erase("right"); + break; + } + emulated_controller->SetStickParam(analog_id, param); analog_map_buttons[analog_id][sub_button_id]->setText(tr("[not set]")); }); context_menu.addAction(tr("Center axis"), [&] { -- cgit v1.2.3