From 56d7fb91c6b7cef00478a72f8d06ae16c42a717e Mon Sep 17 00:00:00 2001 From: "Wilson E. Alvarez" Date: Wed, 27 Dec 2023 20:45:56 -0500 Subject: [PATCH] Fix LimboDebugger crash when EngineDebugger is not active --- bt/bt_player.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/bt/bt_player.cpp b/bt/bt_player.cpp index 571e8b2e..669cc832 100644 --- a/bt/bt_player.cpp +++ b/bt/bt_player.cpp @@ -16,6 +16,7 @@ #include "modules/limboai/util/limbo_string_names.h" #include "core/config/engine.h" +#include "core/debugger/engine_debugger.h" #include "core/error/error_macros.h" #include "core/io/resource_loader.h" #include "core/object/class_db.h" @@ -28,7 +29,7 @@ VARIANT_ENUM_CAST(BTPlayer::UpdateMode); void BTPlayer::_load_tree() { #ifdef DEBUG_ENABLED - if (tree_instance.is_valid()) { + if (tree_instance.is_valid() && EngineDebugger::is_active()) { LimboDebugger::get_singleton()->unregister_bt_instance(tree_instance, get_path()); } #endif @@ -40,7 +41,9 @@ void BTPlayer::_load_tree() { } tree_instance = behavior_tree->instantiate(get_owner(), blackboard); #ifdef DEBUG_ENABLED - LimboDebugger::get_singleton()->register_bt_instance(tree_instance, get_path()); + if (EngineDebugger::is_active()) { + LimboDebugger::get_singleton()->register_bt_instance(tree_instance, get_path()); + } #endif } @@ -152,12 +155,12 @@ void BTPlayer::_notification(int p_notification) { } break; #ifdef DEBUG_ENABLED case NOTIFICATION_ENTER_TREE: { - if (tree_instance.is_valid()) { + if (tree_instance.is_valid() && EngineDebugger::is_active()) { LimboDebugger::get_singleton()->register_bt_instance(tree_instance, get_path()); } } break; case NOTIFICATION_EXIT_TREE: { - if (tree_instance.is_valid()) { + if (tree_instance.is_valid() && EngineDebugger::is_active()) { LimboDebugger::get_singleton()->unregister_bt_instance(tree_instance, get_path()); } } break;