#define VEHICLE_C
#include "vehicle.h"
+#include "scene_rigidbody.h"
static int spawn_car( int argc, const char *argv[] ){
v3f ra, rb, rx;
if( t < 1.0f ){
/* spring force */
- float Fv = (1.0f-t) * k_car_spring*k_rb_delta;
+ float Fv = (1.0f-t) * k_car_spring*vg.time_fixed_delta;
v3f delta;
v3_sub( pa, gzoomer.rb.co, delta );
v3_cross( gzoomer.rb.w, delta, rv );
v3_add( gzoomer.rb.v, rv, rv );
- Fv += v3_dot(rv, gzoomer.rb.to_world[1]) * -k_car_spring_damp*k_rb_delta;
+ Fv += v3_dot(rv, gzoomer.rb.to_world[1])
+ * -k_car_spring_damp*vg.time_fixed_delta;
/* scale by normal incident */
Fv *= v3_dot( n, gzoomer.rb.to_world[1] );
/* apply drive force */
if( index >= 2 ){
- v3_muls( ty, -gzoomer.drive * k_car_drive_force * k_rb_delta, F );
+ v3_muls( ty, -gzoomer.drive * k_car_drive_force
+ * vg.time_fixed_delta, F );
rb_linear_impulse( &gzoomer.rb, raW, F );
}
}
v3_muls( rb->to_world[1], -fabsf(v3_dot( rb->v, rb->to_world[2] )) *
k_car_downforce, Fdown );
- v3_muladds( rb->v, Fair, k_rb_delta, rb->v );
- v3_muladds( rb->v, Fdown, k_rb_delta, rb->v );
+ v3_muladds( rb->v, Fair, vg.time_fixed_delta, rb->v );
+ v3_muladds( rb->v, Fdown, vg.time_fixed_delta, rb->v );
for( int i=0; i<4; i++ )
vehicle_wheel_force( i );
}
len = rb_manifold_apply_filtered( manifold, len );
- rb_presolve_contacts( manifold, len );
+ rb_presolve_contacts( manifold, vg.time_fixed_delta, len );
for( int i=0; i<8; i++ ){
rb_solve_contacts( manifold, len );
vehicle_solve_friction();