summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp
diff options
context:
space:
mode:
authorLéo Lam <leo@innovatetechnologi.es>2018-09-16 16:04:21 +0200
committerGitHub <noreply@github.com>2018-09-16 16:04:21 +0200
commite90bd035cb3b7d3bc02058bdeb19b11ddca126b3 (patch)
tree0a55bf69aae1b794e5727ce42fd989a99d6b96f1 /Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp
parent40b7fab235a86e904086c25dc256398f956c21bc (diff)
parent9983d92981cf3ad27b75720d2f12fe90667180db (diff)
Merge pull request #7262 from lioncash/force
ControlGroup: Return state data via GetState() by value where applicable
Diffstat (limited to 'Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp')
-rw-r--r--Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp b/Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp
index 0c27e30298..c2178ea370 100644
--- a/Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp
+++ b/Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp
@@ -29,18 +29,23 @@ Force::Force(const std::string& name_) : ControlGroup(name_, GroupType::Force)
numeric_settings.emplace_back(std::make_unique<NumericSetting>(_trans("Dead Zone"), 0, 0, 50));
}
-void Force::GetState(ControlState* axis)
+Force::StateData Force::GetState()
{
+ StateData state_data;
const ControlState deadzone = numeric_settings[0]->GetValue();
for (u32 i = 0; i < 6; i += 2)
{
- ControlState tmpf = 0;
const ControlState state =
controls[i + 1]->control_ref->State() - controls[i]->control_ref->State();
+
+ ControlState tmpf = 0;
if (fabs(state) > deadzone)
tmpf = ((state - (deadzone * sign(state))) / (1 - deadzone));
- *axis++ = tmpf;
+
+ state_data[i / 2] = tmpf;
}
+
+ return state_data;
}
} // namespace ControllerEmu