diff options
| author | Jordan Woyak <jordan.woyak@gmail.com> | 2024-03-20 21:59:08 -0500 |
|---|---|---|
| committer | Jordan Woyak <jordan.woyak@gmail.com> | 2024-04-12 15:52:35 -0500 |
| commit | 5039072ae9a97d7bf6f6711225a2368c71350f13 (patch) | |
| tree | 3fe9200ac0427ee067104e477d578ef15e2ffcf5 /Source/Core/InputCommon/ControlReference/FunctionExpression.cpp | |
| parent | 2011c7a4483942cb4001ac7edd584914670e5c33 (diff) | |
ExpressionParser: Support unary plus operator.
Diffstat (limited to 'Source/Core/InputCommon/ControlReference/FunctionExpression.cpp')
| -rw-r--r-- | Source/Core/InputCommon/ControlReference/FunctionExpression.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
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<std::unique_ptr<Expression>>& 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<FunctionExpression> MakeFunctionExpression(std::string_view name return std::make_unique<ToggleExpression>(); if (name == "minus") return std::make_unique<UnaryMinusExpression>(); + if (name == "plus") + return std::make_unique<UnaryPlusExpression>(); if (name == "deadzone") return std::make_unique<DeadzoneExpression>(); if (name == "smooth") |
