summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControlReference/ControlReference.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/InputCommon/ControlReference/ControlReference.h')
-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();
}