summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControlReference
diff options
context:
space:
mode:
authorJordan Woyak <jordan.woyak@gmail.com>2020-02-08 20:36:26 -0600
committerJordan Woyak <jordan.woyak@gmail.com>2020-02-09 10:37:18 -0600
commitf07457b6ccb0ef6773b08c0e494df28a29c1b3e6 (patch)
tree32ed2c99fdee98a021c051c2ef68c97c75e0f311 /Source/Core/InputCommon/ControlReference
parent2e2540317e8752b8fe2e4d549a0b5c1ab1911041 (diff)
InputCommon: Eliminate some duplicated button threshold logic.
Diffstat (limited to 'Source/Core/InputCommon/ControlReference')
-rw-r--r--Source/Core/InputCommon/ControlReference/ControlReference.h15
1 files changed, 11 insertions, 4 deletions
diff --git a/Source/Core/InputCommon/ControlReference/ControlReference.h b/Source/Core/InputCommon/ControlReference/ControlReference.h
index 80c4a65d51..de289ba265 100644
--- a/Source/Core/InputCommon/ControlReference/ControlReference.h
+++ b/Source/Core/InputCommon/ControlReference/ControlReference.h
@@ -4,10 +4,10 @@
#pragma once
+#include <cmath>
#include <memory>
#include "InputCommon/ControlReference/ExpressionParser.h"
-#include "InputCommon/ControlReference/FunctionExpression.h"
#include "InputCommon/ControllerInterface/Device.h"
// ControlReference
@@ -52,11 +52,18 @@ protected:
template <>
inline bool ControlReference::GetState<bool>()
{
- return State() > ciface::ExpressionParser::CONDITION_THRESHOLD;
+ // Round to nearest of 0 or 1.
+ return std::lround(State()) > 0;
}
-template <typename T>
-T ControlReference::GetState()
+template <>
+inline int ControlReference::GetState<int>()
+{
+ return std::lround(State());
+}
+
+template <>
+inline ControlState ControlReference::GetState<ControlState>()
{
return State();
}