Merge pull request #10681 from cryptonaut/issue9187
Cleaned up logic in Tween::_tween_process(), fixes #9187
This commit is contained in:
commit
01ef7a73de
|
@ -559,12 +559,16 @@ void Tween::_tween_process(float p_delta) {
|
|||
|
||||
switch (data.type) {
|
||||
case INTER_PROPERTY:
|
||||
case INTER_METHOD:
|
||||
break;
|
||||
case INTER_METHOD: {
|
||||
Variant result = _run_equation(data);
|
||||
emit_signal("tween_step", object, data.key, data.elapsed, result);
|
||||
_apply_tween_value(data, result);
|
||||
if (data.finish)
|
||||
_apply_tween_value(data, data.final_val);
|
||||
} break;
|
||||
|
||||
case INTER_CALLBACK:
|
||||
if (data.finish) {
|
||||
|
||||
Variant::CallError error;
|
||||
if (data.call_deferred) {
|
||||
|
||||
switch (data.args) {
|
||||
|
@ -587,8 +591,8 @@ void Tween::_tween_process(float p_delta) {
|
|||
object->call_deferred(data.key, data.arg[0], data.arg[1], data.arg[2], data.arg[3], data.arg[4]);
|
||||
break;
|
||||
}
|
||||
|
||||
} else {
|
||||
Variant::CallError error;
|
||||
Variant *arg[5] = {
|
||||
&data.arg[0],
|
||||
&data.arg[1],
|
||||
|
@ -598,19 +602,11 @@ void Tween::_tween_process(float p_delta) {
|
|||
};
|
||||
object->call(data.key, (const Variant **)arg, data.args, error);
|
||||
}
|
||||
if (!repeat)
|
||||
call_deferred("remove", object, data.key);
|
||||
}
|
||||
continue;
|
||||
break;
|
||||
}
|
||||
|
||||
Variant result = _run_equation(data);
|
||||
emit_signal("tween_step", object, data.key, data.elapsed, result);
|
||||
|
||||
_apply_tween_value(data, result);
|
||||
|
||||
if (data.finish) {
|
||||
_apply_tween_value(data, data.final_val);
|
||||
emit_signal("tween_complete", object, data.key);
|
||||
// not repeat mode, remove completed action
|
||||
if (!repeat)
|
||||
|
|
Loading…
Reference in New Issue