summaryrefslogtreecommitdiff
path: root/scene
diff options
context:
space:
mode:
authorBojidar Marinov <bojidar.marinov.bg@gmail.com>2017-05-30 23:21:50 +0300
committerBojidar Marinov <bojidar.marinov.bg@gmail.com>2017-11-13 11:23:46 +0200
commit7bbde636e802f85c4ed9ee95b9ef19abc1aa249d (patch)
tree782da1645910bbad7bce8de1b561aefaaa0a8e47 /scene
parent2fce0010f0d0eb2476028ed62335508bceabd820 (diff)
Make Tween::interpolate_property's able to get() the initial value
To use this behavior, pass `null` in place of the initial_value parameter.
Diffstat (limited to 'scene')
-rw-r--r--scene/animation/tween.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/scene/animation/tween.cpp b/scene/animation/tween.cpp
index e0508cf147..b5e6fc79db 100644
--- a/scene/animation/tween.cpp
+++ b/scene/animation/tween.cpp
@@ -998,6 +998,8 @@ bool Tween::interpolate_property(Object *p_object, String p_property, Variant p_
_add_pending_command("interpolate_property", p_object, p_property, p_initial_val, p_final_val, p_duration, p_trans_type, p_ease_type, p_delay);
return true;
}
+ if (p_initial_val.get_type() == Variant::NIL) p_initial_val = p_object->get(p_property);
+
// convert INT to REAL is better for interpolaters
if (p_initial_val.get_type() == Variant::INT) p_initial_val = p_initial_val.operator real_t();
if (p_final_val.get_type() == Variant::INT) p_final_val = p_final_val.operator real_t();
@@ -1188,6 +1190,8 @@ bool Tween::follow_property(Object *p_object, String p_property, Variant p_initi
_add_pending_command("follow_property", p_object, p_property, p_initial_val, p_target, p_target_property, p_duration, p_trans_type, p_ease_type, p_delay);
return true;
}
+ if (p_initial_val.get_type() == Variant::NIL) p_initial_val = p_object->get(p_initial_val);
+
// convert INT to REAL is better for interpolaters
if (p_initial_val.get_type() == Variant::INT) p_initial_val = p_initial_val.operator real_t();