Godot version:3.2
OS/device including version: Several OS (Win10 / MacOS)
Issue description:
Tween never gets finished when tween.start() is called after tween.stop() without calling tween.resume()
Steps to reproduce:
Start() a tween.
is_active() become true (normal)
Stop() the tween before it finished.
is_active() become false (normal)
Start() the tween again.
is_active() become true (normal)
but in this case when the tween is over, it never switch is_active() to false.
Completed events are not fired.
Minimal reproduction project:
tween_bug.zip
Confirmed in 3.2.2 RC 3 (1468c0b4d4592406502c7e4eaa2121f1d0a7e5f6).
Just leaving this here as a note to myself, or to anyone else that may try and fix this
In the engine source, Tween::set_active
is called in Tween::_tween_process
at the end of the function when all the tween data has been successfully processed. It's on these lines (3.2 commit a662b853)
Notice that the signal tween_all_completed
is emitted when the Tween
is supposedly finished processing data. This signal does not fire when the bug is triggered, meaning that the culprit is somewhere in Tween::_tween_process
I would like to work on this issue if there nobody
Thanks a lot for your efforts to fix this issue but the commited fix in 3.2.3 RC1 introduce another bug : https://github.com/godotengine/godot/issues/40679
I think the issue should be re-opened with the above revert of 8ef40b9 commit.
No because the issue is still fixed in the master
branch.
Most helpful comment
I would like to work on this issue if there nobody