diff options
author | bunnei <bunneidev@gmail.com> | 2022-04-21 22:21:59 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-21 22:21:59 -0700 |
commit | 764e5c7fe50bbbc64898fb657cfc5b1f8360454b (patch) | |
tree | ee42eede68cb935595769104e0b94d55b1530141 /src/input_common/main.cpp | |
parent | a1ee9799bcd6cbf7c68733136fe7acbebf33a71a (diff) | |
parent | ee532e5c01f97f30078202ae87a5b2a71e9ce1e4 (diff) |
Merge pull request #7978 from german77/sideway
input_common: Map sticks correctly when mapped sideways
Diffstat (limited to 'src/input_common/main.cpp')
-rw-r--r-- | src/input_common/main.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/input_common/main.cpp b/src/input_common/main.cpp index 28769c6d88..21834fb6b3 100644 --- a/src/input_common/main.cpp +++ b/src/input_common/main.cpp @@ -241,6 +241,28 @@ struct InputSubsystem::Impl { return Common::Input::ButtonNames::Invalid; } + bool IsStickInverted(const Common::ParamPackage& params) { + const std::string engine = params.Get("engine", ""); + if (engine == mouse->GetEngineName()) { + return mouse->IsStickInverted(params); + } + if (engine == gcadapter->GetEngineName()) { + return gcadapter->IsStickInverted(params); + } + if (engine == udp_client->GetEngineName()) { + return udp_client->IsStickInverted(params); + } + if (engine == tas_input->GetEngineName()) { + return tas_input->IsStickInverted(params); + } +#ifdef HAVE_SDL2 + if (engine == sdl->GetEngineName()) { + return sdl->IsStickInverted(params); + } +#endif + return false; + } + bool IsController(const Common::ParamPackage& params) { const std::string engine = params.Get("engine", ""); if (engine == mouse->GetEngineName()) { @@ -384,6 +406,13 @@ bool InputSubsystem::IsController(const Common::ParamPackage& params) const { return impl->IsController(params); } +bool InputSubsystem::IsStickInverted(const Common::ParamPackage& params) const { + if (params.Has("axis_x") && params.Has("axis_y")) { + return impl->IsStickInverted(params); + } + return false; +} + void InputSubsystem::ReloadInputDevices() { impl->udp_client.get()->ReloadSockets(); } |