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.
This commit is contained in:
parent
a5f9e1ce18
commit
887a5cd4f9
1 changed files with 3 additions and 0 deletions
|
@ -1256,6 +1256,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 a new issue