8920ab0fbf
The _process_node function (which recurses through the blend tree generating blend values and the active animation list) had an argument named `switched` which would loop an animation back to the beginning if it had reached the end (regardless of whether or not it was supposed to be a looping animation). This argument was only used in four places: two of them were overridden by a seek-to-zero, and I believe the other two are bugs. In OneShot, it was used to reset the oneshot animation to the beginning when fired. But this would fail if the oneshot node was fired before it had completed its previous run. While this *could* be a valid way for oneshot to work (firing does nothing if it's already running), the code currently resets the fade-in, so I believe that it is intended to reset. I replaced this usage with seek-to-0. In Transition, it was used on the previous (fading out) animation when seeking the Transition node, which I believe is incorrect: why would you want to loop a non-looping animation instead of simply fading out from the end? Also it will never happen unless you seek the Transition node twice during one cross-fade. The other two uses are in Transition and _process_animation, where it is used along with a seek-to-zero which overrides it. |
||
---|---|---|
.. | ||
2d | ||
3d | ||
animation | ||
audio | ||
gui | ||
io | ||
main | ||
resources | ||
SCsub | ||
register_scene_types.cpp | ||
register_scene_types.h | ||
scene_string_names.cpp | ||
scene_string_names.h |