summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControllerEmu/ControlGroup
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/InputCommon/ControllerEmu/ControlGroup')
-rw-r--r--Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp23
-rw-r--r--Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.h11
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