diff options
| author | Juan Linietsky | 2015-04-26 17:46:20 -0300 |
|---|---|---|
| committer | Juan Linietsky | 2015-04-26 17:46:20 -0300 |
| commit | 79d5b7f2580e5da87d8c962558517d7cc65fdf45 (patch) | |
| tree | 37408978e6b58b30f7d13250c15cd5f53cf8b46a /scene/3d/physics_body.cpp | |
| parent | 3bcb930e8ac1c8048de990f41c29cd2dfcc3c2a2 (diff) | |
| download | godot-79d5b7f2580e5da87d8c962558517d7cc65fdf45.tar.gz godot-79d5b7f2580e5da87d8c962558517d7cc65fdf45.tar.zst godot-79d5b7f2580e5da87d8c962558517d7cc65fdf45.zip | |
-fixed bodyenter/bodyexit callback of physics bodies, fixes #1739
Diffstat (limited to '')
| -rw-r--r-- | scene/3d/physics_body.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/scene/3d/physics_body.cpp b/scene/3d/physics_body.cpp index 469ea0dd9..3d5091f66 100644 --- a/scene/3d/physics_body.cpp +++ b/scene/3d/physics_body.cpp @@ -338,14 +338,14 @@ void RigidBody::_direct_state_changed(Object *p_state) { ObjectID obj = state->get_contact_collider_id(i); int local_shape = state->get_contact_local_shape(i); int shape = state->get_contact_collider_shape(i); - toadd[i].local_shape=local_shape; - toadd[i].id=obj; - toadd[i].shape=shape; - bool found=false; +// bool found=false; Map<ObjectID,BodyState>::Element *E=contact_monitor->body_map.find(obj); if (!E) { + toadd[toadd_count].local_shape=local_shape; + toadd[toadd_count].id=obj; + toadd[toadd_count].shape=shape; toadd_count++; continue; } @@ -354,6 +354,9 @@ void RigidBody::_direct_state_changed(Object *p_state) { int idx = E->get().shapes.find(sp); if (idx==-1) { + toadd[toadd_count].local_shape=local_shape; + toadd[toadd_count].id=obj; + toadd[toadd_count].shape=shape; toadd_count++; continue; } |
