diff options
Diffstat (limited to 'servers/physics/body_sw.cpp')
| -rw-r--r-- | servers/physics/body_sw.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/servers/physics/body_sw.cpp b/servers/physics/body_sw.cpp index bfac852481..b0ed99cb48 100644 --- a/servers/physics/body_sw.cpp +++ b/servers/physics/body_sw.cpp @@ -380,6 +380,8 @@ void BodySW::set_space(SpaceSW *p_space){ } + first_integration=true; + } void BodySW::_compute_area_gravity_and_dampenings(const AreaSW *p_area) { @@ -479,7 +481,7 @@ void BodySW::integrate_forces(real_t p_step) { do_motion=true; } else { - if (!omit_force_integration) { + if (!omit_force_integration && !first_integration) { //overriden by direct state query Vector3 force=gravity*mass; @@ -512,6 +514,7 @@ void BodySW::integrate_forces(real_t p_step) { applied_force=Vector3(); applied_torque=Vector3(); + first_integration=false; //motion=linear_velocity*p_step; @@ -749,6 +752,7 @@ BodySW::BodySW() : CollisionObjectSW(TYPE_BODY), active_list(this), inertia_upda island_next=NULL; island_list_next=NULL; first_time_kinematic=false; + first_integration=false; _set_static(false); contact_count=0; |