diff options
Diffstat (limited to 'servers')
-rw-r--r-- | servers/physics_2d/space_2d_sw.cpp | 6 | ||||
-rw-r--r-- | servers/visual_server.cpp | 2 |
2 files changed, 6 insertions, 2 deletions
diff --git a/servers/physics_2d/space_2d_sw.cpp b/servers/physics_2d/space_2d_sw.cpp index a48b6d3827..275137ae5a 100644 --- a/servers/physics_2d/space_2d_sw.cpp +++ b/servers/physics_2d/space_2d_sw.cpp @@ -622,6 +622,7 @@ bool Space2DSW::test_body_motion(Body2DSW *p_body, const Transform2D &p_from, co Transform2D body_transform = p_from; + { //STEP 1, FREE BODY IF STUCK @@ -645,6 +646,7 @@ bool Space2DSW::test_body_motion(Body2DSW *p_body, const Transform2D &p_from, co bool collided=false; + int amount = _cull_aabb_for_body(p_body,body_aabb); for(int j=0;j<p_body->get_shape_count();j++) { @@ -682,11 +684,13 @@ bool Space2DSW::test_body_motion(Body2DSW *p_body, const Transform2D &p_from, co } - if (!collided) + if (!collided) { break; + } Vector2 recover_motion; + for(int i=0;i<cbk.amount;i++) { Vector2 a = sr[i*2+0]; diff --git a/servers/visual_server.cpp b/servers/visual_server.cpp index 68767da4ce..dbf8fb442b 100644 --- a/servers/visual_server.cpp +++ b/servers/visual_server.cpp @@ -712,7 +712,7 @@ Error VisualServer::_surface_set_data(Array p_arrays,uint32_t p_format,uint32_t } break; case VS::ARRAY_BONES: { - ERR_FAIL_COND_V( p_arrays[ai].get_type() != Variant::POOL_INT_ARRAY, ERR_INVALID_PARAMETER ); + ERR_FAIL_COND_V( p_arrays[ai].get_type() != Variant::POOL_INT_ARRAY && p_arrays[ai].get_type() != Variant::POOL_REAL_ARRAY, ERR_INVALID_PARAMETER ); PoolVector<int> array = p_arrays[ai]; |