From 5039072ae9a97d7bf6f6711225a2368c71350f13 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Wed, 20 Mar 2024 21:59:08 -0500 Subject: ExpressionParser: Support unary plus operator. --- .../ControlReference/FunctionExpression.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'Source/Core/InputCommon/ControlReference/FunctionExpression.cpp') diff --git a/Source/Core/InputCommon/ControlReference/FunctionExpression.cpp b/Source/Core/InputCommon/ControlReference/FunctionExpression.cpp index 46cfc37beb..15d8c72c0c 100644 --- a/Source/Core/InputCommon/ControlReference/FunctionExpression.cpp +++ b/Source/Core/InputCommon/ControlReference/FunctionExpression.cpp @@ -375,6 +375,22 @@ private: } }; +// usage: plus(expression) +class UnaryPlusExpression : public FunctionExpression +{ +private: + ArgumentValidation + ValidateArguments(const std::vector>& args) override + { + if (args.size() == 1) + return ArgumentsAreValid{}; + else + return ExpectedArguments{"expression"}; + } + + ControlState GetValue() const override { return GetArg(0).GetValue(); } +}; + // usage: deadzone(input, amount) class DeadzoneExpression : public FunctionExpression { @@ -689,6 +705,8 @@ std::unique_ptr MakeFunctionExpression(std::string_view name return std::make_unique(); if (name == "minus") return std::make_unique(); + if (name == "plus") + return std::make_unique(); if (name == "deadzone") return std::make_unique(); if (name == "smooth") -- cgit v1.2.3