From c793c8ba5308c7f1324b28d35c7d2a2edab76662 Mon Sep 17 00:00:00 2001 From: Serhii Snitsaruk Date: Sat, 1 Jun 2024 10:53:56 +0200 Subject: [PATCH] Fix `Blackboard.unbind_var` failing for existing bound variable --- blackboard/blackboard.cpp | 4 ++-- blackboard/blackboard.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/blackboard/blackboard.cpp b/blackboard/blackboard.cpp index 5d15bd1..99fdda5 100644 --- a/blackboard/blackboard.cpp +++ b/blackboard/blackboard.cpp @@ -106,7 +106,7 @@ void Blackboard::bind_var_to_property(const StringName &p_name, Object *p_object } void Blackboard::unbind_var(const StringName &p_name) { - ERR_FAIL_COND_MSG(data.has(p_name), "Blackboard: Can't unbind variable that doesn't exist (var: " + p_name + ")."); + ERR_FAIL_COND_MSG(!data.has(p_name), "Blackboard: Can't unbind variable that doesn't exist (var: " + p_name + ")."); data[p_name].unbind(); } @@ -128,7 +128,7 @@ void Blackboard::link_var(const StringName &p_name, const Ref &p_tar } void Blackboard::_bind_methods() { - ClassDB::bind_method(D_METHOD("get_var", "var_name", "default", "complain"), &Blackboard::get_var, Variant(), true); + ClassDB::bind_method(D_METHOD("get_var", "var_name", "default", "complain"), &Blackboard::get_var, DEFVAL(Variant()), DEFVAL(true)); ClassDB::bind_method(D_METHOD("set_var", "var_name", "value"), &Blackboard::set_var); ClassDB::bind_method(D_METHOD("has_var", "var_name"), &Blackboard::has_var); ClassDB::bind_method(D_METHOD("set_parent", "blackboard"), &Blackboard::set_parent); diff --git a/blackboard/blackboard.h b/blackboard/blackboard.h index 5e60ed7..49288e1 100644 --- a/blackboard/blackboard.h +++ b/blackboard/blackboard.h @@ -46,7 +46,7 @@ public: Ref top() const; - Variant get_var(const StringName &p_name, const Variant &p_default, bool p_complain = true) const; + Variant get_var(const StringName &p_name, const Variant &p_default = Variant(), bool p_complain = true) const; void set_var(const StringName &p_name, const Variant &p_value); bool has_var(const StringName &p_name) const; void erase_var(const StringName &p_name);