diff options
| author | JMC47 <JMC4789@gmail.com> | 2019-03-13 19:00:24 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-03-13 19:00:24 -0400 |
| commit | 011ecd92e8e2b0b78471cc7ad394b6ed1f7a451e (patch) | |
| tree | ee12d70ff3889b093c2696715eace0952aee8ccb /Source/Core/InputCommon/ControlReference/ExpressionParser.cpp | |
| parent | bc9e9caf19749778d01b9721a1ff92acccf70fac (diff) | |
| parent | c389d68186ea7fa95d763d7bb55bc09e5a45c4cd (diff) | |
Merge pull request #7829 from jordan-woyak/detect-input-improve
ControllerInterface/DolphinQt: Improve input detection.
Diffstat (limited to 'Source/Core/InputCommon/ControlReference/ExpressionParser.cpp')
| -rw-r--r-- | Source/Core/InputCommon/ControlReference/ExpressionParser.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/Source/Core/InputCommon/ControlReference/ExpressionParser.cpp b/Source/Core/InputCommon/ControlReference/ExpressionParser.cpp index ba3f78170d..a73b1c94cf 100644 --- a/Source/Core/InputCommon/ControlReference/ExpressionParser.cpp +++ b/Source/Core/InputCommon/ControlReference/ExpressionParser.cpp @@ -217,7 +217,19 @@ public: std::shared_ptr<Device> m_device; explicit ControlExpression(ControlQualifier qualifier_) : qualifier(qualifier_) {} - ControlState GetValue() const override { return control ? control->ToInput()->GetState() : 0.0; } + ControlState GetValue() const override + { + if (!control) + return 0.0; + + // Note: Inputs may return negative values in situations where opposing directions are + // activated. We clamp off the negative values here. + + // FYI: Clamping values greater than 1.0 is purposely not done to support unbounded values in + // the future. (e.g. raw accelerometer/gyro data) + + return std::max(0.0, control->ToInput()->GetState()); + } void SetValue(ControlState value) override { if (control) |
