From 964a1608fd269bda5fc632a618a861a527c6f868 Mon Sep 17 00:00:00 2001
From: hgn <hgodden00@gmail.com>
Date: Fri, 10 Feb 2023 10:56:22 +0000
Subject: [PATCH] going crazy

---
 common.h                |  12 +-
 maps_src/mp_gridmap.mdl | Bin 1423568 -> 1422720 bytes
 player.c                |   2 +-
 player_skate.c          | 334 ++++++++++++++++++++++++++++++++++------
 player_skate.h          |   4 +-
 player_walk.c           |   4 +-
 rigidbody.h             |   4 +-
 7 files changed, 302 insertions(+), 58 deletions(-)

diff --git a/common.h b/common.h
index 6bb6951..49d2c99 100644
--- a/common.h
+++ b/common.h
@@ -111,7 +111,8 @@ VG_STATIC float
    k_steer_air             = 3.6f,
    k_steer_air_lerp        = 0.3f,
    k_pump_force            = 0.0f,
-   k_downforce             = 5.0f,
+   k_downforce             = 0.0f,
+   k_escape_velocity       = 1.0f,
    k_walk_downforce        = 8.0f,
    k_jump_charge_speed     = (1.0f/1.0f),
    k_jump_force            = 5.0f,
@@ -134,7 +135,10 @@ VG_STATIC float
    k_spring_dampener       = 5.0f,
 
    k_grind_spring          = 100.0f,
-   k_grind_dampener        = 1.0f;
+   k_grind_dampener        = 1.0f,
+   k_board_spring          = 2.0f,
+   k_board_dampener        = 0.2f,
+   k_board_interia         = 8.0f;
 
 
 VG_STATIC float
@@ -174,6 +178,9 @@ VG_STATIC void common_var_temp(void)
 
    VG_VAR_F32( k_grind_dampener );
    VG_VAR_F32( k_grind_spring );
+   VG_VAR_F32( k_board_spring );
+   VG_VAR_F32( k_board_dampener );
+   VG_VAR_F32( k_board_interia );
 
    VG_VAR_F32( k_walkspeed );
    VG_VAR_F32( k_stopspeed );
@@ -199,6 +206,7 @@ VG_STATIC void common_var_temp(void)
    VG_VAR_F32( k_cog_damp );
 
    VG_VAR_F32( k_cog_mass_ratio );
+   VG_VAR_F32( k_escape_velocity );
    VG_VAR_F32( k_downforce );
 
    VG_VAR_F32( k_spring_force );
diff --git a/maps_src/mp_gridmap.mdl b/maps_src/mp_gridmap.mdl
index 676155a61d3ae5d944bd35154a1a14d29d199fa2..e20369b630d48456e26a3d2c25e5e9290f083a88 100644
GIT binary patch
delta 71132
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
W@TS%u)^n!5q2FyiXPWS_;r|C*>%J@i

delta 72048
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

diff --git a/player.c b/player.c
index 5c9f8cf..d86c8c8 100644
--- a/player.c
+++ b/player.c
@@ -222,7 +222,7 @@ VG_STATIC void player__pre_render( player_instance *player )
       {
          skeleton_lerp_pose( sk, res.pose, player->holdout_pose, 
                                            player->holdout_time, res.pose );
-         player->holdout_time -= vg.frame_delta * 4.0f;
+         player->holdout_time -= vg.frame_delta * 2.0f;
       }
 
       skeleton_apply_pose( sk, res.pose, k_anim_apply_defer_ik );
diff --git a/player_skate.c b/player_skate.c
index 8777763..eb4e27e 100644
--- a/player_skate.c
+++ b/player_skate.c
@@ -44,6 +44,8 @@ VG_STATIC int skate_collide_smooth( player_instance *player,
       man[i].rbb = NULL;
    }
 
+   return len;
+
    rb_manifold_filter_coplanar( man, len, 0.05f );
 
    if( len > 1 )
@@ -170,7 +172,9 @@ VG_STATIC int skate_grind_scansq( player_instance *player, v3f ra )
    m3x3_copy( player->rb.to_world, mtx );
    v3_copy( pos, mtx[3] );
 
+#if 0
    debug_sphere( mtx, r, VG__CYAN );
+#endif
    
    bh_iter it;
    bh_iter_init( 0, &it );
@@ -180,7 +184,8 @@ VG_STATIC int skate_grind_scansq( player_instance *player, v3f ra )
    {
       v2f co;
       v2f normal;
-      v3f normal3;
+      v3f normal3,
+          centroid;
    }
    samples[48];
 
@@ -229,6 +234,10 @@ VG_STATIC int skate_grind_scansq( player_instance *player, v3f ra )
             v3_copy( normal, sample->normal3 ); /* normalize later
                                                    if we want to us it */
 
+            v3_muls(                      tri[0], 1.0f/3.0f, sample->centroid );
+            v3_muladds( sample->centroid, tri[1], 1.0f/3.0f, sample->centroid );
+            v3_muladds( sample->centroid, tri[2], 1.0f/3.0f, sample->centroid );
+
             v2_normalize( sample->normal );
             sample_count ++;
 
@@ -264,29 +273,38 @@ VG_STATIC int skate_grind_scansq( player_instance *player, v3f ra )
 
          sj = &samples[j];
 
-         if( v2_dist2( si->co, sj->co ) <= (0.01f*0.01f) &&
-             v2_dot( si->normal, sj->normal ) < 0.7f )
-         {
-            /* TODO: Filter concave */
+         /* non overlapping */
+         if( v2_dist2( si->co, sj->co ) >= (0.01f*0.01f) )
+            continue;
 
-            v3f p0;
-            v3_muls( support_axis, sj->co[0], p0 );
-            p0[1] += sj->co[1];
+         /* not sharp angle */
+         if( v2_dot( si->normal, sj->normal ) >= 0.7f )
+            continue;
 
-            v3_add( average_position, p0, average_position );
-            
-            v3f n0, n1, dir;
-            v3_copy( si->normal3, n0 );
-            v3_copy( sj->normal3, n1 );
-            v3_cross( n0, n1, dir );
-            v3_normalize( dir );
+         /* not convex */
+         v3f v0;
+         v3_sub( sj->centroid, si->centroid, v0 );
+         if( v3_dot( v0, si->normal3 ) >= 0.0f ||
+             v3_dot( v0, sj->normal3 ) <= 0.0f )
+            continue;
 
-            /* make sure the directions all face a common hemisphere */
-            v3_muls( dir, vg_signf(v3_dot(dir,plane)), dir );
+         v3f p0;
+         v3_muls( support_axis, sj->co[0], p0 );
+         p0[1] += sj->co[1];
 
-            v3_add( average_direction, dir, average_direction );
-            passed_samples ++;
-         }
+         v3_add( average_position, p0, average_position );
+         
+         v3f n0, n1, dir;
+         v3_copy( si->normal3, n0 );
+         v3_copy( sj->normal3, n1 );
+         v3_cross( n0, n1, dir );
+         v3_normalize( dir );
+
+         /* make sure the directions all face a common hemisphere */
+         v3_muls( dir, vg_signf(v3_dot(dir,plane)), dir );
+
+         v3_add( average_direction, dir, average_direction );
+         passed_samples ++;
       }
    }
 
@@ -305,6 +323,7 @@ VG_STATIC int skate_grind_scansq( player_instance *player, v3f ra )
    v3_muladds( average_position, average_direction, -0.35f, p1 );
    vg_line( p0, p1, VG__PINK );
 
+#if 0
    if( passed_samples )
    {
       v3f displacement, dir;
@@ -335,6 +354,9 @@ VG_STATIC int skate_grind_scansq( player_instance *player, v3f ra )
 
       /* Constraint based */
    }
+#endif
+
+   return passed_samples;
 }
 
 /*
@@ -589,8 +611,10 @@ VG_STATIC void skate_apply_grind_model( player_instance *player,
                  player->input_js1v->axis.value };
    v2_normalize_clamp( steer );
 
+#if 0
    s->state.steery -= steer[0] * k_steer_air * k_rb_delta;
    s->state.steerx += steer[1] * s->state.reverse * k_steer_air * k_rb_delta;
+#endif
    
 #if 0
    v4f rotate;
@@ -720,7 +744,7 @@ VG_STATIC void skate_apply_air_model( player_instance *player )
       limiter *= limiter;
       limiter = 1.0f-limiter;
 
-      if( fabsf(angle) < 0.99f )
+      if( fabsf(angle) < 0.9999f )
       {
          v4f correction;
          q_axis_angle( correction, axis, 
@@ -733,9 +757,11 @@ VG_STATIC void skate_apply_air_model( player_instance *player )
                  player->input_js1v->axis.value };
    v2_normalize_clamp( steer );
 
+#if 0
    s->state.steery -= steer[0] * k_steer_air * VG_TIMESTEP_FIXED;
    s->state.steerx += steer[1] * s->state.reverse * k_steer_air 
                                                          * limiter * k_rb_delta;
+#endif
    s->land_dist = time_to_impact;
    v3_copy( target_normal, s->land_normal );
 }
@@ -1062,7 +1088,23 @@ VG_STATIC void skate_apply_friction_model( player_instance *player )
          steer = input * (1.0f-(s->state.jump_charge+grab)*0.4f),
          steer_scaled = vg_signf(steer) * powf(steer,2.0f) * k_steer_ground;
 
-   s->state.steery -= steer_scaled * k_rb_delta;
+   v3f steer_axis;
+   v3_muls( player->rb.to_world[1], -vg_signf( steer_scaled ), steer_axis );
+
+   float current  = v3_dot( player->rb.to_world[1], player->rb.w ),
+         addspeed = (steer_scaled * -1.0f) - current,
+         maxaccel = 26.0f * k_rb_delta,
+         accel    = vg_clampf( addspeed, -maxaccel, maxaccel );
+
+   v3_muladds( player->rb.w, player->rb.to_world[1], accel, player->rb.w );
+
+
+#if 0
+   player_accelerate( player->rb.w, steer_axis,
+                      fabsf(steer_scaled) * 1.0f, 30.0f );
+
+   //s->state.steery -= steer_scaled * k_rb_delta;
+#endif
 }
 
 VG_STATIC void skate_apply_jump_model( player_instance *player )
@@ -1117,9 +1159,11 @@ VG_STATIC void skate_apply_jump_model( player_instance *player )
                     player->input_js1v->axis.value };
       v2_normalize_clamp( steer );
 
+#if 0
       float maxspin = k_steer_air * k_rb_delta * k_spin_boost;
       s->state.steery_s = -steer[0] * maxspin;
       s->state.steerx = s->state.steerx_s;
+#endif
       s->state.lift_frames ++;
 
       /* FIXME audio events */
@@ -1219,20 +1263,24 @@ VG_STATIC void skate_collision_response( player_instance *player,
       {
          struct contact *ct = &manifold[i];
          
-         v3f dv, delta;
+         v3f rv, delta;
          v3_sub( ct->co, player->rb.co, delta ); 
-         v3_cross( player->rb.w, delta, dv );
-         v3_add( player->rb.v, dv, dv );
+         v3_cross( player->rb.w, delta, rv );
+         v3_add( player->rb.v, rv, rv );
+
+         v3f raCn;
+         v3_cross( delta, ct->n, raCn );
 
-         float vn = -v3_dot( dv, ct->n );
-         vn += ct->bias;
+         float normal_mass = 1.0f / (1.0f + v3_dot(raCn,raCn));
+         float vn = v3_dot( rv, ct->n );
+         float lambda = normal_mass * ( -vn + ct->bias );
 
          float temp = ct->norm_impulse;
-         ct->norm_impulse = vg_maxf( temp + vn, 0.0f );
-         vn = ct->norm_impulse - temp;
+         ct->norm_impulse = vg_maxf( temp + lambda, 0.0f );
+         lambda = ct->norm_impulse - temp;
 
          v3f impulse;
-         v3_muls( ct->n, vn, impulse );
+         v3_muls( ct->n, lambda, impulse );
 
          if( fabsf(v3_dot( impulse, player->rb.to_world[2] )) > 10.0f ||
              fabsf(v3_dot( impulse, player->rb.to_world[1] )) > 50.0f )
@@ -1252,13 +1300,18 @@ VG_STATIC void skate_collision_response( player_instance *player,
           * components.
           */
          
-         float wy = v3_dot( player->rb.to_world[1], impulse ) * 0.8f,
+         float wy = v3_dot( player->rb.to_world[1], impulse ) * 1.0f,
                wx = v3_dot( player->rb.to_world[0], impulse ) * 1.0f,
-               wz = v3_dot( player->rb.to_world[2], impulse ) * 2.0f;
+               wz = v3_dot( player->rb.to_world[2], impulse ) * 1.0f;
 
          v3_muladds( player->rb.w, player->rb.to_world[1], wy, player->rb.w );
          v3_muladds( player->rb.w, player->rb.to_world[0], wx, player->rb.w );
          v3_muladds( player->rb.w, player->rb.to_world[2], wz, player->rb.w );
+
+
+         v3_cross( player->rb.w, delta, rv );
+         v3_add( player->rb.v, rv, rv );
+         vn = v3_dot( rv, ct->n );
       }
    }
 }
@@ -1274,15 +1327,23 @@ VG_STATIC void skate_integrate( player_instance *player )
    v3_muladds( player->rb.co, player->rb.v, k_rb_delta, player->rb.co );
 #endif
 
-   float decay_rate = 0.5f*0.125f;
+   float decay_rate = 1.0f - (k_rb_delta * 3.0f);
 
+#if 0
    if( s->state.activity == k_skate_activity_air )
    {
       float dist = 1.0f-(s->land_dist/4.0f);
       decay_rate = 0.5f * vg_maxf( dist*dist, 0.0f );
    }
+#endif
+
+   float wx = v3_dot( player->rb.w, player->rb.to_world[0] ) * decay_rate,
+         wy = v3_dot( player->rb.w, player->rb.to_world[1] ),
+         wz = v3_dot( player->rb.w, player->rb.to_world[2] ) * decay_rate;
 
-   v3_lerp( player->rb.w, (v3f){0.0f,0.0f,0.0f}, decay_rate, player->rb.w );
+   v3_muls(                  player->rb.to_world[0], wx, player->rb.w );
+   v3_muladds( player->rb.w, player->rb.to_world[1], wy, player->rb.w );
+   v3_muladds( player->rb.w, player->rb.to_world[2], wz, player->rb.w );
 
 #ifndef SKATE_CCD
    if( v3_length2( player->rb.w ) > 0.0f )
@@ -1299,6 +1360,7 @@ VG_STATIC void skate_integrate( player_instance *player )
 #endif
 
    /* integrate steering velocities */
+#if 0
    v4f rotate; 
    float l = (s->state.activity == k_skate_activity_air)? 0.04f: 0.24f;
 
@@ -1313,6 +1375,7 @@ VG_STATIC void skate_integrate( player_instance *player )
 
    s->state.steerx = 0.0f;
    s->state.steery = 0.0f;
+#endif
 
    s->state.flip_time += s->state.flip_rate * k_rb_delta;
    rb_update_transform( &player->rb );
@@ -1346,6 +1409,17 @@ VG_STATIC void player__skate_pre_update( player_instance *player )
       return;
    }
 
+   if( vg_input_button_down( player->input_reset ) )
+   {
+      player->rb.co[1] += 2.0f;
+      s->state.cog[1] += 2.0f;
+      q_axis_angle( player->rb.q, (v3f){1.0f,0.0f,0.0f}, VG_PIf * 0.25f );
+      v3_zero( player->rb.w );
+      v3_zero( player->rb.v );
+
+      rb_update_transform( &player->rb );
+   }
+
    int trick_id; 
    if( (s->state.lift_frames > 0) &&
        (trick_id = player_skate_trick_input( player )) )
@@ -1404,6 +1478,7 @@ VG_STATIC void player__skate_update( player_instance *player )
    float l = k_board_length,
          w = 0.13f;
 
+#if 0
    v3f wheel_positions[] = 
    {
       { -w, 0.0f, -l },
@@ -1411,22 +1486,40 @@ VG_STATIC void player__skate_update( player_instance *player )
       { -w, 0.0f,  l },
       {  w, 0.0f,  l },
    };
+#else
+   v3f wheel_positions[] = 
+   {
+      { 0.0f, 0.0f, -l },
+      { 0.0f, 0.0f,  l },
+   };
+#endif
+
+   u32 wheel_colours[] =
+   {
+      VG__RED, VG__GREEN, VG__BLUE, VG__YELOW
+   };
 
    int wheel_states[] =
    {
       1, 1, 1, 1
    };
 
+   const int wheel_count = 2;
+
    if( skate_grind_scansq( player, (v3f){ 0.0f, 0.0f, -l } ) )
    {
+#if 0
       wheel_states[0] = 0;
       wheel_states[1] = 0;
+#endif
    }
 
    if( skate_grind_scansq( player, (v3f){ 0.0f, 0.0f,  l } ) )
    {
+#if 0
       wheel_states[2] = 0;
       wheel_states[3] = 0;
+#endif
    }
 
    rb_sphere collider;
@@ -1434,18 +1527,23 @@ VG_STATIC void player__skate_update( player_instance *player )
 
    s->substep = k_rb_delta;
 
-   for( int i=0; i<4; i++ )
+
+   int substep_count = 0;
+
+begin_collision:;
+
+
+   for( int i=0; i<wheel_count; i++ )
    {
       m4x3f mtx;
       m3x3_copy( player->rb.to_world, mtx );
       m4x3_mulv( player->rb.to_world, wheel_positions[i], mtx[3] );
-      debug_sphere( mtx, collider.radius, wheel_states[i]? VG__WHITE:
-                                                           VG__BLACK );
+      debug_sphere( mtx, collider.radius, 
+                   (u32[]){ VG__BLACK, VG__WHITE, 
+                            wheel_colours[i] }[ wheel_states[i] ]);
    }
 
 
-begin_collision:;
-
 #ifdef SKATE_CCD
 
    /* calculate transform one step into future */
@@ -1468,9 +1566,9 @@ begin_collision:;
 
    /* calculate the minimum time we can move */
    float max_time = s->substep,
-         cast_radius = collider.radius - 0.05f;
+         cast_radius = collider.radius - k_penetration_slop*1.2f;
 
-   for( int i=0; i<4; i++ )
+   for( int i=0; i<wheel_count; i++ )
    {
       if( !wheel_states[i] )
          continue;
@@ -1491,7 +1589,11 @@ begin_collision:;
    }
 
    /* clamp to a fraction of delta, to prevent locking */
-   max_time = vg_minf( vg_maxf( max_time, k_rb_delta*0.025f ), s->substep );
+   float rate_lock = substep_count;
+   rate_lock *= k_rb_delta * 0.1f;
+   rate_lock *= rate_lock;
+
+   max_time = vg_maxf( max_time, rate_lock );
    s->substep_delta = max_time;
 
    /* integrate */
@@ -1532,7 +1634,7 @@ begin_collision:;
 
    rb_ct *cmanifold = manifold;
 
-   for( int i=0; i<4; i++ )
+   for( int i=0; i<wheel_count; i++ )
    {
       if( !wheel_states[i] )
          continue;
@@ -1544,6 +1646,9 @@ begin_collision:;
       
       int l = skate_collide_smooth( player, mtx, &collider, cmanifold );
 
+      if( l )
+         wheel_states[i] = 2;
+
       cmanifold += l;
       manifold_len += l;
       manifold_interface += l;
@@ -1554,6 +1659,7 @@ begin_collision:;
          manifold_back ++;
    }
 
+#if 0
    /* try to slap both wheels onto the ground when landing to prevent mega 
     * angular velocities being added */
    if( (s->state.activity == k_skate_activity_air) && 
@@ -1586,10 +1692,14 @@ begin_collision:;
 
    int grind_len = skate_grind_collide( player, cmanifold );
    manifold_len += grind_len;
+#endif
+
+   int grind_len = 0;
+
+   v3f surface_normal = {0.0f,0.0f,0.0f};
 
    for( int i=0; i<manifold_len; i ++ )
    {
-#ifdef SKATE_CCD
       rb_ct *ct = &manifold[i];
       ct->bias = -0.2f * 
                   (s->substep_delta * 3600.0f)
@@ -1598,16 +1708,136 @@ begin_collision:;
       ct->norm_impulse = 0.0f;
       ct->tangent_impulse[0] = 0.0f;
       ct->tangent_impulse[1] = 0.0f;
-#else
-      rb_prepare_contact( &manifold[i] );
+
+      v3_add( ct->n, surface_normal, surface_normal );
+   }
+
+   if( manifold_len )
+   {
+      v3_muls( surface_normal, 1.0f/(float)manifold_len, surface_normal );
+
+      float a = v3_dot( player->rb.to_world[1], surface_normal );
+
+      if( a <= 0.9999f )
+      {
+         v3f axis;
+         v3_cross( surface_normal, player->rb.to_world[1], axis );
+
+         float Fs = -a * k_board_spring,
+               Fd = -v3_dot( player->rb.w, axis ) * k_board_dampener;
+
+         v3_muladds( player->rb.w, axis, (Fs+Fd) * s->substep_delta,
+                     player->rb.w );
+      }
+   }
+
+   v3f extent = { w, 0.1f, k_board_length };
+   float ex2 = k_board_interia*extent[0]*extent[0],
+         ey2 = k_board_interia*extent[1]*extent[1],
+         ez2 = k_board_interia*extent[2]*extent[2];
+
+   float mass = 2.0f * (extent[0]*extent[1]*extent[2]);
+   float inv_mass = 1.0f/mass;
+
+   v3f I;
+   I[0] = ((1.0f/12.0f) * mass * (ey2+ez2));
+   I[1] = ((1.0f/12.0f) * mass * (ex2+ez2));
+   I[2] = ((1.0f/12.0f) * mass * (ex2+ey2));
+
+   m3x3f iI;
+   m3x3_identity( iI );
+   iI[0][0] = I[0];
+   iI[1][1] = I[1];
+   iI[2][2] = I[2];
+   m3x3_inv( iI, iI );
+
+   m3x3f iIw;
+   m3x3_mul( iI, player->rb.to_local, iIw );
+   m3x3_mul( player->rb.to_world, iIw, iIw );
+
+   for( int j=0; j<10; j++ )
+   {
+      for( int i=0; i<manifold_len; i++ )
+      {
+         struct contact *ct = &manifold[i];
+         
+         v3f rv, delta;
+         v3_sub( ct->co, player->rb.co, delta ); 
+         v3_cross( player->rb.w, delta, rv );
+         v3_add( player->rb.v, rv, rv );
+
+         v3f raCn;
+         v3_cross( delta, ct->n, raCn );
+
+         v3f raCnI, rbCnI;
+         m3x3_mulv( iIw, raCn, raCnI );
+
+         float normal_mass = 1.0f / (inv_mass + v3_dot(raCn,raCnI));
+         float vn = v3_dot( rv, ct->n );
+
+
+
+
+         float lambda = normal_mass * ( -vn + ct->bias );
+
+         float temp = ct->norm_impulse;
+         ct->norm_impulse = vg_maxf( temp + lambda, 0.0f );
+         lambda = ct->norm_impulse - temp;
+
+         v3f impulse;
+         v3_muls( ct->n, lambda, impulse );
+
+#if 0
+         if( fabsf(v3_dot( impulse, player->rb.to_world[2] )) > 10.0f ||
+             fabsf(v3_dot( impulse, player->rb.to_world[1] )) > 50.0f )
+         {
+            player__dead_transition( player );
+            return;
+         }
 #endif
+
+         v3_muladds( player->rb.v, impulse, inv_mass, player->rb.v );
+         v3_cross( delta, impulse, impulse );
+         m3x3_mulv( iIw, impulse, impulse );
+         v3_add( impulse, player->rb.w, player->rb.w );
+
+         v3_cross( player->rb.w, delta, rv );
+         v3_add( player->rb.v, rv, rv );
+         vn = v3_dot( rv, ct->n );
+
+      }
    }
 
-   skate_collision_response( player, manifold, manifold_len );
+
+
+
+
+
+
+   substep_count ++;
+
 
    if( s->substep >= 0.0001f )
       goto begin_collision;
 
+
+
+   for( int i=0; i<wheel_count; i++ )
+   {
+      m4x3f mtx;
+      m3x3_copy( player->rb.to_world, mtx );
+      m4x3_mulv( player->rb.to_world, wheel_positions[i], mtx[3] );
+      debug_sphere( mtx, collider.radius, 
+                   (u32[]){ VG__BLACK, VG__WHITE, 
+                            wheel_colours[i] }[ wheel_states[i] ]);
+   }
+
+
+
+
+
+
+
    skate_apply_grind_model( player, &manifold[manifold_interface], grind_len );
    skate_apply_interface_model( player, manifold, manifold_interface );
    
@@ -1669,9 +1899,11 @@ VG_STATIC void player__skate_im_gui( player_instance *player )
                                              "k_skate_activity_ground",
                                              "k_skate_activity_grind }" }
                                              [s->state.activity] );
+#if 0
    player__debugtext( 1, "steer_s: %5.2f %5.2f [%.2f %.2f]",
                         s->state.steerx_s, s->state.steery_s,
                         k_steer_ground, k_steer_air );
+#endif
    player__debugtext( 1, "flip: %.4f %.4f", s->state.flip_rate, 
                                              s->state.flip_time );
    player__debugtext( 1, "trickv: %.2f %.2f %.2f", 
@@ -1915,11 +2147,12 @@ VG_STATIC void player__skate_animate( player_instance *player,
 
    /* transform */
    rb_extrapolate( &player->rb, dest->root_co, dest->root_q );
-   v3_muladds( dest->root_co, player->rb.to_world[1], -0.28f, dest->root_co );
+   v3_muladds( dest->root_co, player->rb.to_world[1], -0.1f, dest->root_co );
 
+   float substep = vg_clampf( vg.accumulator / VG_TIMESTEP_FIXED, 0.0f, 1.0f );
+#if 0
    v4f qresy, qresx, qresidual;
    m3x3f mtx_residual;
-   float substep = vg_clampf( vg.accumulator / VG_TIMESTEP_FIXED, 0.0f, 1.0f );
    q_axis_angle( qresy, player->rb.to_world[1], s->state.steery_s*substep );
    q_axis_angle( qresx, player->rb.to_world[0], s->state.steerx_s*substep );
 
@@ -1927,6 +2160,7 @@ VG_STATIC void player__skate_animate( player_instance *player,
    q_normalize( qresidual );
    q_mul( dest->root_q, qresidual, dest->root_q );
    q_normalize( dest->root_q );
+#endif
 
    v4f qflip;
    if( (s->state.activity == k_skate_activity_air) &&
@@ -1984,10 +2218,12 @@ VG_STATIC void player__skate_clear_mechanics( player_instance *player )
    s->state.jump_charge    = 0.0f;
    s->state.lift_frames    = 0;
    s->state.flip_rate      = 0.0f;
+#if 0
    s->state.steery         = 0.0f;
    s->state.steerx         = 0.0f;
    s->state.steery_s       = 0.0f;
    s->state.steerx_s       = 0.0f;
+#endif
    s->state.reverse        = 0.0f;
    s->state.slip           = 0.0f;
    v3_copy( player->rb.co, s->state.prev_pos );
diff --git a/player_skate.h b/player_skate.h
index 6ace410..24e9ab9 100644
--- a/player_skate.h
+++ b/player_skate.h
@@ -18,10 +18,10 @@ struct player_skate
       activity,
       activity_prev;
 
-      float steery,
+      float /* steery,
             steerx,
             steery_s,
-            steerx_s,
+            steerx_s, */
             reverse,
             slip;
 
diff --git a/player_walk.c b/player_walk.c
index 0a6a485..0b84ef1 100644
--- a/player_walk.c
+++ b/player_walk.c
@@ -729,7 +729,7 @@ VG_STATIC void player__walk_animate( player_instance *player,
 
             v4_copy( dest->root_q, player->rb.q );
             v3_muladds( dest->root_co, player->rb.to_world[1], 
-                        -0.28f * dop_t, dest->root_co );
+                        -0.1f * dop_t, dest->root_co );
 
             skeleton_copy_pose( sk, dest->pose, player->holdout_pose );
             player->holdout_time = 1.0f;
@@ -739,7 +739,7 @@ VG_STATIC void player__walk_animate( player_instance *player,
       else
       {
          v3_muladds( dest->root_co, player->rb.to_world[1], 
-                     -0.28f * outro_t, dest->root_co );
+                     -0.1f * outro_t, dest->root_co );
 
          skeleton_copy_pose( sk, dest->pose, player->holdout_pose );
          player->holdout_time = 1.0f;
diff --git a/rigidbody.h b/rigidbody.h
index 3cb601d..58b416e 100644
--- a/rigidbody.h
+++ b/rigidbody.h
@@ -1365,7 +1365,7 @@ VG_STATIC int rb_sphere__triangle( m4x3f mtxA, rb_sphere *b,
    float d2 = v3_length2( delta ),
           r = b->radius;
 
-   if( d2 < r*r )
+   if( d2 <= r*r )
    {
       rb_ct *ct = buf;
 
@@ -1499,7 +1499,7 @@ VG_STATIC int rb_sphere__scene( m4x3f mtxA, rb_sphere *b,
 
    int count = 0;
 
-   float r = b->radius;
+   float r = b->radius + 0.1f;
    boxf box;
    v3_sub( mtxA[3], (v3f){ r,r,r }, box[0] );
    v3_add( mtxA[3], (v3f){ r,r,r }, box[1] );
-- 
2.25.1