diff options
Diffstat (limited to 'Source/Core/InputCommon/ControllerEmu/ControlGroup')
| -rw-r--r-- | Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp | 23 | ||||
| -rw-r--r-- | Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.h | 11 |
2 files changed, 19 insertions, 15 deletions
diff --git a/Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp b/Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp index 2785f56ba5..9221b90243 100644 --- a/Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp +++ b/Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp @@ -31,7 +31,7 @@ Tilt::Tilt(const std::string& name_) : ControlGroup(name_, GroupType::Tilt) numeric_settings.emplace_back(std::make_unique<NumericSetting>(_trans("Angle"), 0.9, 0, 180)); } -void Tilt::GetState(ControlState* const x, ControlState* const y, const bool step) +Tilt::StateData Tilt::GetState(const bool step) { // this is all a mess @@ -80,18 +80,17 @@ void Tilt::GetState(ControlState* const x, ControlState* const y, const bool ste // silly if (step) { - if (xx > m_tilt[0]) - m_tilt[0] = std::min(m_tilt[0] + 0.1, xx); - else if (xx < m_tilt[0]) - m_tilt[0] = std::max(m_tilt[0] - 0.1, xx); - - if (yy > m_tilt[1]) - m_tilt[1] = std::min(m_tilt[1] + 0.1, yy); - else if (yy < m_tilt[1]) - m_tilt[1] = std::max(m_tilt[1] - 0.1, yy); + if (xx > m_tilt.x) + m_tilt.x = std::min(m_tilt.x + 0.1, xx); + else if (xx < m_tilt.x) + m_tilt.x = std::max(m_tilt.x - 0.1, xx); + + if (yy > m_tilt.y) + m_tilt.y = std::min(m_tilt.y + 0.1, yy); + else if (yy < m_tilt.y) + m_tilt.y = std::max(m_tilt.y - 0.1, yy); } - *y = m_tilt[1] * angle; - *x = m_tilt[0] * angle; + return {m_tilt.x * angle, m_tilt.y * angle}; } } // namespace ControllerEmu diff --git a/Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.h b/Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.h index 622fba3710..b03dc5a8b1 100644 --- a/Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.h +++ b/Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.h @@ -4,7 +4,6 @@ #pragma once -#include <array> #include <string> #include "InputCommon/ControllerEmu/ControlGroup/ControlGroup.h" #include "InputCommon/ControllerInterface/Device.h" @@ -14,11 +13,17 @@ namespace ControllerEmu class Tilt : public ControlGroup { public: + struct StateData + { + ControlState x{}; + ControlState y{}; + }; + explicit Tilt(const std::string& name); - void GetState(ControlState* x, ControlState* y, bool step = true); + StateData GetState(bool step = true); private: - std::array<ControlState, 2> m_tilt{}; + StateData m_tilt; }; } // namespace ControllerEmu |
