summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <rverschelde@gmail.com>2019-01-18 12:32:23 +0100
committerGitHub <noreply@github.com>2019-01-18 12:32:23 +0100
commit7ae4cb7f7dc9913f6b1c7e9c9ff90a481ce93ba7 (patch)
treebc5d4c7cf37175c167069937c478096413dbd971
parent6384dd8f2ca80b47e3b7d426906ec5a8bb2c93da (diff)
parentd024979e84155a745f56d239f8b87c49c8b067bf (diff)
Merge pull request #25093 from akien-mga/lerp-returns-variant
GDScript: Fix return value of "lerp" builtin
-rw-r--r--doc/classes/@GDScript.xml7
-rw-r--r--doc/classes/Shape2D.xml4
-rw-r--r--modules/gdscript/gdscript_functions.cpp3
3 files changed, 9 insertions, 5 deletions
diff --git a/doc/classes/@GDScript.xml b/doc/classes/@GDScript.xml
index 601b1385ae..072eec800f 100644
--- a/doc/classes/@GDScript.xml
+++ b/doc/classes/@GDScript.xml
@@ -539,7 +539,7 @@
</description>
</method>
<method name="lerp">
- <return type="float">
+ <return type="Variant">
</return>
<argument index="0" name="from" type="Variant">
</argument>
@@ -549,8 +549,11 @@
</argument>
<description>
Linearly interpolates between two values by a normalized value.
+ If the [code]from[/code] and [code]to[/code] arguments are of type [int] or [float], the return value is a [float].
+ If both are of the same vector type ([Vector2], [Vector3] or [Color]), the return value will be of the same type ([code]lerp[/code] then calls the vector type's [code]linear_interpolate[/code] method).
[codeblock]
- lerp(1, 3, 0.5) # returns 2
+ lerp(0, 4, 0.75) # returns 3.0
+ lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # returns Vector2(2, 3.5)
[/codeblock]
</description>
</method>
diff --git a/doc/classes/Shape2D.xml b/doc/classes/Shape2D.xml
index 96b8a77d9e..fc773faf5e 100644
--- a/doc/classes/Shape2D.xml
+++ b/doc/classes/Shape2D.xml
@@ -27,7 +27,7 @@
</description>
</method>
<method name="collide_and_get_contacts">
- <return type="Variant">
+ <return type="Array">
</return>
<argument index="0" name="local_xform" type="Transform2D">
</argument>
@@ -59,7 +59,7 @@
</description>
</method>
<method name="collide_with_motion_and_get_contacts">
- <return type="Variant">
+ <return type="Array">
</return>
<argument index="0" name="local_xform" type="Transform2D">
</argument>
diff --git a/modules/gdscript/gdscript_functions.cpp b/modules/gdscript/gdscript_functions.cpp
index 6c1a796ca0..44d44462ca 100644
--- a/modules/gdscript/gdscript_functions.cpp
+++ b/modules/gdscript/gdscript_functions.cpp
@@ -1565,7 +1565,8 @@ MethodInfo GDScriptFunctions::get_info(Function p_func) {
} break;
case MATH_LERP: {
MethodInfo mi("lerp", PropertyInfo(Variant::NIL, "from"), PropertyInfo(Variant::NIL, "to"), PropertyInfo(Variant::REAL, "weight"));
- mi.return_val.type = Variant::REAL;
+ mi.return_val.type = Variant::NIL;
+ mi.return_val.usage |= PROPERTY_USAGE_NIL_IS_VARIANT;
return mi;
} break;
case MATH_INVERSE_LERP: {