summaryrefslogtreecommitdiffstats
path: root/core/math/expression.cpp
diff options
context:
space:
mode:
authorAaron Franke <arnfranke@yahoo.com>2018-10-27 16:12:27 -0400
committerAaron Franke <arnfranke@yahoo.com>2019-07-18 16:33:43 -0400
commita60f242982d70e85a5b2c182eb3289b2fa7812e1 (patch)
tree212cd72bf8e9b157de9b35ec8ccda3337f30bbbc /core/math/expression.cpp
parent20a3bb9c484431439ffa60a158d7563c466cd530 (diff)
downloadredot-engine-a60f242982d70e85a5b2c182eb3289b2fa7812e1.tar.gz
Add integer posmod and rename default arg names
"posmod" is the integer version of "fposmod". We do not need a "mod" because of the % operator. I changed the default arg names from "x" and "y" to "a" and "b" because they are not coordinates. I also changed pow's arg names to "base" and "exp". Also, I reorganized the code in the VS built-in funcs switch statement.
Diffstat (limited to 'core/math/expression.cpp')
-rw-r--r--core/math/expression.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/core/math/expression.cpp b/core/math/expression.cpp
index b52658e2cf..2786229cf3 100644
--- a/core/math/expression.cpp
+++ b/core/math/expression.cpp
@@ -52,6 +52,7 @@ const char *Expression::func_name[Expression::FUNC_MAX] = {
"sqrt",
"fmod",
"fposmod",
+ "posmod",
"floor",
"ceil",
"round",
@@ -175,6 +176,7 @@ int Expression::get_func_argument_count(BuiltinFunc p_func) {
case MATH_ATAN2:
case MATH_FMOD:
case MATH_FPOSMOD:
+ case MATH_POSMOD:
case MATH_POW:
case MATH_EASE:
case MATH_STEPIFY:
@@ -283,6 +285,12 @@ void Expression::exec_func(BuiltinFunc p_func, const Variant **p_inputs, Variant
VALIDATE_ARG_NUM(1);
*r_return = Math::fposmod((double)*p_inputs[0], (double)*p_inputs[1]);
} break;
+ case MATH_POSMOD: {
+
+ VALIDATE_ARG_NUM(0);
+ VALIDATE_ARG_NUM(1);
+ *r_return = Math::posmod((int)*p_inputs[0], (int)*p_inputs[1]);
+ } break;
case MATH_FLOOR: {
VALIDATE_ARG_NUM(0);