summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <remi@verschelde.fr>2022-01-06 20:27:19 +0100
committerGitHub <noreply@github.com>2022-01-06 20:27:19 +0100
commitad9bf7a5b964201e0e243bbb27c6ab9793dac7de (patch)
tree0bced765a55f6e3f62052da3b643fc53b3eff6a9
parent5e7faed078e7f6ecb0f959dbf074506a9f7f54b6 (diff)
parent5f0fe3c6ae5d9e3f00703eded81ae6df3d078eae (diff)
Merge pull request #56176 from RandomShaper/accept_null_as_default
Assume that non registered properties default to null
-rw-r--r--scene/property_utils.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/scene/property_utils.cpp b/scene/property_utils.cpp
index e2f1ac8224..4acb43cdb7 100644
--- a/scene/property_utils.cpp
+++ b/scene/property_utils.cpp
@@ -114,7 +114,12 @@ Variant PropertyUtils::get_property_default_value(const Object *p_object, const
if (r_is_class_default) {
*r_is_class_default = true;
}
- return ClassDB::class_get_default_property_value(p_object->get_class_name(), p_property, r_is_valid);
+ // This is saying that properties not registered in the class DB are considered to have a default value of null
+ // (that covers cases like synthetic properties in the style of whatever/0, whatever/1, which may not have a value in any ancestor).
+ if (r_is_valid) {
+ *r_is_valid = true;
+ }
+ return ClassDB::class_get_default_property_value(p_object->get_class_name(), p_property);
}
// Like SceneState::PackState, but using a raw pointer to avoid the cost of