diff options
author | Juan Linietsky <reduzio@gmail.com> | 2015-04-26 17:46:20 -0300 |
---|---|---|
committer | Juan Linietsky <reduzio@gmail.com> | 2015-04-26 17:46:20 -0300 |
commit | 79d5b7f2580e5da87d8c962558517d7cc65fdf45 (patch) | |
tree | 37408978e6b58b30f7d13250c15cd5f53cf8b46a /scene/3d/physics_body.cpp | |
parent | 3bcb930e8ac1c8048de990f41c29cd2dfcc3c2a2 (diff) | |
download | redot-engine-79d5b7f2580e5da87d8c962558517d7cc65fdf45.tar.gz |
-fixed bodyenter/bodyexit callback of physics bodies, fixes #1739
Diffstat (limited to 'scene/3d/physics_body.cpp')
-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 469ea0dd9a..3d5091f667 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; } |