fix
[carveJwlIkooP6JGAAIwe30JlM.git] / player_skate.c
index f6ecc10d6a0dfe9f955e6c28ff52f9104d2ba3ec..32e792f5ba51c46d9c6cc9b999e8a4821abfdf72 100644 (file)
@@ -1206,9 +1206,6 @@ VG_STATIC void skate_weight_distribute( player_instance *player )
       {
          if( reverse_dir != s->state.manual_direction )
          {
-#if 0
-            player__dead_transition( player );
-#endif
             return;
          }
       }
@@ -1223,7 +1220,6 @@ VG_STATIC void skate_weight_distribute( player_instance *player )
 
    /* TODO: Fall back on land normal */
    /* TODO: Lerp weight distribution */
-   /* TODO: Can start manual only if not charge jump */
    if( s->state.manual_direction )
    {
       v3f plane_z;
@@ -1274,9 +1270,6 @@ VG_STATIC void skate_adjust_up_direction( player_instance *player )
    }
    else
    {
-      /* FIXME UNDEFINED! */
-      vg_warn( "Undefined up target!\n" );
-
       v3_lerp( s->state.up_dir, (v3f){0.0f,1.0f,0.0f},
                12.0f * s->substep_delta, s->state.up_dir );
    }
@@ -1427,8 +1420,13 @@ VG_STATIC void skate_5050_apply( player_instance *player,
    v3_muladds( inf_back->co, inf_avg.dir, 0.5f, inf_avg.co );
    v3_normalize( inf_avg.dir );
 
-   /* FIXME */
-   v3_copy( (v3f){0.0f,1.0f,0.0f}, inf_avg.n );
+   v3f axis_front, axis_back, axis;
+   v3_cross( inf_front->dir, inf_front->n, axis_front );
+   v3_cross( inf_back->dir,  inf_back->n,  axis_back  );
+   v3_add( axis_front, axis_back, axis );
+   v3_normalize( axis );
+
+   v3_cross( axis, inf_avg.dir, inf_avg.n );
    
    skate_grind_decay( player, &inf_avg, 1.0f );