diff options
| author | Andrea Catania | 2018-04-12 07:59:12 +0200 |
|---|---|---|
| committer | GitHub | 2018-04-12 07:59:12 +0200 |
| commit | f0abdf06ad6dfc2ff4d403ff237281a4d5db46a6 (patch) | |
| tree | ea9690df717ce6f53f2faa3fb49f5ec31824f245 /modules/bullet/space_bullet.cpp | |
| parent | d87307d850186d27d2c27c5916ec8c4744c14979 (diff) | |
| download | godot-f0abdf06ad6dfc2ff4d403ff237281a4d5db46a6.tar.gz godot-f0abdf06ad6dfc2ff4d403ff237281a4d5db46a6.tar.zst godot-f0abdf06ad6dfc2ff4d403ff237281a4d5db46a6.zip | |
Diffstat (limited to 'modules/bullet/space_bullet.cpp')
| -rw-r--r-- | modules/bullet/space_bullet.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/modules/bullet/space_bullet.cpp b/modules/bullet/space_bullet.cpp index 51a76ff8c..9a88b4692 100644 --- a/modules/bullet/space_bullet.cpp +++ b/modules/bullet/space_bullet.cpp @@ -1031,7 +1031,10 @@ bool SpaceBullet::recover_from_penetration(RigidBodyBullet *p_body, const btTran for (int i = recover_broad_result.result_collision_objects.size() - 1; 0 <= i; --i) { btCollisionObject *otherObject = recover_broad_result.result_collision_objects[i]; - if (!p_body->get_bt_collision_object()->checkCollideWith(otherObject) || !otherObject->checkCollideWith(p_body->get_bt_collision_object()) || (p_infinite_inertia && !otherObject->isStaticOrKinematicObject())) + if (p_infinite_inertia && !otherObject->isStaticOrKinematicObject()) { + otherObject->activate(); // Force activation of hitten rigid, soft body + continue; + } else if (!p_body->get_bt_collision_object()->checkCollideWith(otherObject) || !otherObject->checkCollideWith(p_body->get_bt_collision_object())) continue; if (otherObject->getCollisionShape()->isCompound()) { |
