summaryrefslogtreecommitdiffstats
path: root/core/variant/variant_op.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <remi@verschelde.fr>2022-05-11 16:58:33 +0200
committerGitHub <noreply@github.com>2022-05-11 16:58:33 +0200
commitd68c355145d5c07070fc999eedf8c973d8c70fbe (patch)
treee742dd05ac899338debc63b5ec33ddc4e81ac569 /core/variant/variant_op.cpp
parent0b0beae097b887feec721297e33de15e139baafc (diff)
parentdbd7a315074257bca834e1448b53a905ebb8dd8b (diff)
downloadredot-engine-d68c355145d5c07070fc999eedf8c973d8c70fbe.tar.gz
Merge pull request #58873 from Chaosus/power_op
Implement exponential operator (**) to GDScript/Expressions
Diffstat (limited to 'core/variant/variant_op.cpp')
-rw-r--r--core/variant/variant_op.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/core/variant/variant_op.cpp b/core/variant/variant_op.cpp
index 35e0319aa3..adace2b534 100644
--- a/core/variant/variant_op.cpp
+++ b/core/variant/variant_op.cpp
@@ -361,6 +361,11 @@ void Variant::_register_variant_operators() {
register_op<OperatorEvaluatorStringModT<PackedVector3Array>>(Variant::OP_MODULE, Variant::STRING, Variant::PACKED_VECTOR3_ARRAY);
register_op<OperatorEvaluatorStringModT<PackedColorArray>>(Variant::OP_MODULE, Variant::STRING, Variant::PACKED_COLOR_ARRAY);
+ register_op<OperatorEvaluatorPow<int64_t, int64_t, int64_t>>(Variant::OP_POWER, Variant::INT, Variant::INT);
+ register_op<OperatorEvaluatorPow<double, int64_t, double>>(Variant::OP_POWER, Variant::INT, Variant::FLOAT);
+ register_op<OperatorEvaluatorPow<double, double, double>>(Variant::OP_POWER, Variant::FLOAT, Variant::FLOAT);
+ register_op<OperatorEvaluatorPow<double, double, int64_t>>(Variant::OP_POWER, Variant::FLOAT, Variant::INT);
+
register_op<OperatorEvaluatorNeg<int64_t, int64_t>>(Variant::OP_NEGATE, Variant::INT, Variant::NIL);
register_op<OperatorEvaluatorNeg<double, double>>(Variant::OP_NEGATE, Variant::FLOAT, Variant::NIL);
register_op<OperatorEvaluatorNeg<Vector2, Vector2>>(Variant::OP_NEGATE, Variant::VECTOR2, Variant::NIL);
@@ -929,6 +934,7 @@ static const char *_op_names[Variant::OP_MAX] = {
"unary-",
"unary+",
"%",
+ "**",
"<<",
">>",
"&",