Fix Tween loop initial value

(cherry picked from commit 20aecefd9b)
This commit is contained in:
kobewi 2023-12-02 20:20:50 +01:00 committed by Rémi Verschelde
parent 1fcf635383
commit 492b0c322a
No known key found for this signature in database
GPG Key ID: C3336907360768E1
2 changed files with 9 additions and 5 deletions

View File

@ -549,9 +549,12 @@ void PropertyTweener::start() {
return;
}
if (do_continue && Math::is_zero_approx(delay)) {
initial_val = target_instance->get_indexed(property);
do_continue = false;
if (do_continue) {
if (Math::is_zero_approx(delay)) {
initial_val = target_instance->get_indexed(property);
} else {
do_continue_delayed = true;
}
}
if (relative) {
@ -576,10 +579,10 @@ bool PropertyTweener::step(double &r_delta) {
if (elapsed_time < delay) {
r_delta = 0;
return true;
} else if (do_continue && !Math::is_zero_approx(delay)) {
} else if (do_continue_delayed && !Math::is_zero_approx(delay)) {
initial_val = target_instance->get_indexed(property);
delta_val = Animation::subtract_variant(final_val, initial_val);
do_continue = false;
do_continue_delayed = false;
}
double time = MIN(elapsed_time - delay, duration);

View File

@ -225,6 +225,7 @@ private:
double delay = 0;
bool do_continue = true;
bool do_continue_delayed = false;
bool relative = false;
};