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.
This commit is contained in:
George Marques 2021-10-07 14:18:44 -03:00
parent 22f2b27528
commit 70e1a50cd1
No known key found for this signature in database
GPG Key ID: 046BD46A3201E43D
1 changed files with 4 additions and 1 deletions

View File

@ -74,6 +74,8 @@ void Joint2D::_update_joint(bool p_only_free) {
PhysicsBody2D *body_a = Object::cast_to<PhysicsBody2D>(node_a); PhysicsBody2D *body_a = Object::cast_to<PhysicsBody2D>(node_a);
PhysicsBody2D *body_b = Object::cast_to<PhysicsBody2D>(node_b); PhysicsBody2D *body_b = Object::cast_to<PhysicsBody2D>(node_b);
bool valid = false;
if (node_a && !body_a && node_b && !body_b) { if (node_a && !body_a && node_b && !body_b) {
warning = TTR("Node A and Node B must be PhysicsBody2Ds"); warning = TTR("Node A and Node B must be PhysicsBody2Ds");
} else if (node_a && !body_a) { } 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"); warning = TTR("Node A and Node B must be different PhysicsBody2Ds");
} else { } else {
warning = String(); warning = String();
valid = true;
} }
update_configuration_warnings(); update_configuration_warnings();
if (!warning.is_empty()) { if (!valid) {
PhysicsServer2D::get_singleton()->joint_clear(joint); PhysicsServer2D::get_singleton()->joint_clear(joint);
return; return;
} }