From f82c10eb11be085062f99ed7c9ca93a7fdfcb940 Mon Sep 17 00:00:00 2001 From: Dario Date: Tue, 27 Jan 2026 23:58:11 -0300 Subject: [PATCH] Grab biggest magnitude axis state in SP mode. --- recompinput/src/input_state.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/recompinput/src/input_state.cpp b/recompinput/src/input_state.cpp index cbb0a1b..03ed871 100644 --- a/recompinput/src/input_state.cpp +++ b/recompinput/src/input_state.cpp @@ -178,19 +178,23 @@ float controller_axis_state(int controller_num, int32_t input_id, bool allow_sup (axis == SDL_GameControllerAxis::SDL_CONTROLLER_AXIS_RIGHTX || axis == SDL_GameControllerAxis::SDL_CONTROLLER_AXIS_RIGHTY)) { cur_val = 0; } - ret += std::clamp(cur_val, 0.0f, 1.0f); + + return std::clamp(cur_val, 0.0f, 1.0f); }; std::lock_guard lock{ InputState.controllers_mutex }; if (recompinput::players::is_single_player_mode()) { for (SDL_GameController *controller : InputState.detected_controllers) { - gather_axis_state(controller); + float controller_state = gather_axis_state(controller); + if (fabsf(controller_state) > fabsf(ret)) { + ret = controller_state; + } } } else { auto &player = recompinput::players::get_player(controller_num); if (player.controller != nullptr) { - gather_axis_state(player.controller); + ret = gather_axis_state(player.controller); } } }