SpaceBullet::recover_from_penetration: skip compound shapes without child shapes
Before, this case would incorrectly get caught as an error, causing an
early return, in particular skipping other possibly relevant shapes.
(cherry picked from commit 887a5cd4f9
)
This commit is contained in:
parent
dba3a8d2aa
commit
f7930560c3
|
@ -1302,6 +1302,9 @@ bool SpaceBullet::recover_from_penetration(RigidBodyBullet *p_body, const btTran
|
|||
|
||||
if (otherObject->getCollisionShape()->isCompound()) {
|
||||
const btCompoundShape *cs = static_cast<const btCompoundShape *>(otherObject->getCollisionShape());
|
||||
if (cs->getNumChildShapes() == 0) {
|
||||
continue; // No shapes to depenetrate from.
|
||||
}
|
||||
int shape_idx = recover_broad_result.results[i].compound_child_index;
|
||||
ERR_FAIL_COND_V(shape_idx < 0 || shape_idx >= cs->getNumChildShapes(), false);
|
||||
|
||||
|
|
Loading…
Reference in New Issue