From 26f664842184a2fd5236de2621eff509b05d0c3d Mon Sep 17 00:00:00 2001 From: Filoppi Date: Wed, 5 May 2021 00:19:45 +0300 Subject: [PATCH] StickGate: add custom clamp value Works exactly as before by default. It will be used by my upcoming input PRs. --- Source/Core/InputCommon/ControllerEmu/StickGate.cpp | 7 ++++--- Source/Core/InputCommon/ControllerEmu/StickGate.h | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Source/Core/InputCommon/ControllerEmu/StickGate.cpp b/Source/Core/InputCommon/ControllerEmu/StickGate.cpp index 60a3c062bd..d57a2402cf 100644 --- a/Source/Core/InputCommon/ControllerEmu/StickGate.cpp +++ b/Source/Core/InputCommon/ControllerEmu/StickGate.cpp @@ -281,7 +281,8 @@ void ReshapableInput::SaveConfig(IniFile::Section* section, const std::string& d } ReshapableInput::ReshapeData ReshapableInput::Reshape(ControlState x, ControlState y, - ControlState modifier) const + ControlState modifier, + ControlState clamp) const { x -= m_center.x; y -= m_center.y; @@ -326,8 +327,8 @@ ReshapableInput::ReshapeData ReshapableInput::Reshape(ControlState x, ControlSta // Scale to the gate shape/radius: dist *= gate_max_dist; - return {std::clamp(std::cos(angle) * dist, -1.0, 1.0), - std::clamp(std::sin(angle) * dist, -1.0, 1.0)}; + return {std::clamp(std::cos(angle) * dist, -clamp, clamp), + std::clamp(std::sin(angle) * dist, -clamp, clamp)}; } } // namespace ControllerEmu diff --git a/Source/Core/InputCommon/ControllerEmu/StickGate.h b/Source/Core/InputCommon/ControllerEmu/StickGate.h index 015c77e9a4..c2b2f7b183 100644 --- a/Source/Core/InputCommon/ControllerEmu/StickGate.h +++ b/Source/Core/InputCommon/ControllerEmu/StickGate.h @@ -108,7 +108,8 @@ public: void SetCenter(ReshapeData center); protected: - ReshapeData Reshape(ControlState x, ControlState y, ControlState modifier = 0.0) const; + ReshapeData Reshape(ControlState x, ControlState y, ControlState modifier = 0.0, + ControlState clamp = 1.0) const; private: void LoadConfig(IniFile::Section*, const std::string&, const std::string&) override;