summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Marques <george@gmarqu.es>2021-10-07 14:18:44 -0300
committerGeorge Marques <george@gmarqu.es>2021-10-07 14:18:44 -0300
commit70e1a50cd1e64532e8dfe0f430bd5212dbfaf438 (patch)
tree7d007c9878edb37858aa2be96a26153f121b9c94
parent22f2b275286b859a6c23e179939a7a7c48e8c894 (diff)
Joint2D: Use boolean instead of warning string for validity test
Those strings are stripped at release there's a false positive that the bodies are valid, causing a crash.
-rw-r--r--scene/2d/joint_2d.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/scene/2d/joint_2d.cpp b/scene/2d/joint_2d.cpp
index 3b371d4a07..8a528151cf 100644
--- a/scene/2d/joint_2d.cpp
+++ b/scene/2d/joint_2d.cpp
@@ -74,6 +74,8 @@ void Joint2D::_update_joint(bool p_only_free) {
PhysicsBody2D *body_a = Object::cast_to<PhysicsBody2D>(node_a);
PhysicsBody2D *body_b = Object::cast_to<PhysicsBody2D>(node_b);
+ bool valid = false;
+
if (node_a && !body_a && node_b && !body_b) {
warning = TTR("Node A and Node B must be PhysicsBody2Ds");
} else if (node_a && !body_a) {
@@ -86,11 +88,12 @@ void Joint2D::_update_joint(bool p_only_free) {
warning = TTR("Node A and Node B must be different PhysicsBody2Ds");
} else {
warning = String();
+ valid = true;
}
update_configuration_warnings();
- if (!warning.is_empty()) {
+ if (!valid) {
PhysicsServer2D::get_singleton()->joint_clear(joint);
return;
}