From 367b371fdd5e74108ddc7dd36db238c4508dc984 Mon Sep 17 00:00:00 2001 From: PouleyKetchoupp Date: Wed, 10 Apr 2019 15:48:18 +0200 Subject: [PATCH] Fixes caches_cleared signal discrepancies in AnimationTree (fixes #25460) (cherry picked from commit 66e07a2ec628e81bcff052289fa31b6a5333fd70) --- scene/animation/animation_tree.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/scene/animation/animation_tree.cpp b/scene/animation/animation_tree.cpp index fe1b8247fff..ea471dcc1c9 100644 --- a/scene/animation/animation_tree.cpp +++ b/scene/animation/animation_tree.cpp @@ -1301,9 +1301,17 @@ void AnimationTree::_notification(int p_what) { _clear_caches(); if (last_animation_player) { - Object *old_player = ObjectDB::get_instance(last_animation_player); - if (old_player) { - old_player->disconnect("caches_cleared", this, "_clear_caches"); + Object *player = ObjectDB::get_instance(last_animation_player); + if (player) { + player->disconnect("caches_cleared", this, "_clear_caches"); + } + } + } else if (p_what == NOTIFICATION_ENTER_TREE) { + if (last_animation_player) { + + Object *player = ObjectDB::get_instance(last_animation_player); + if (player) { + player->connect("caches_cleared", this, "_clear_caches"); } } }