some gate improvements
[carveJwlIkooP6JGAAIwe30JlM.git] / player_skate.c
index d56fc982787b323111af1849b44ce185362ccb6a..baa1ce713116ed266d3afb00af5711b00bb0a99f 100644 (file)
@@ -499,7 +499,7 @@ void player__approximate_best_trajectory( player_instance *player )
                m4x3_mulv( gate->transport, launch_co, launch_co );
                m3x3_mul( gate->transport, basis, basis );
 
-               if( gate->type == k_gate_type_nonlocel ){
+               if( gate->flags & k_ent_gate_nonlocal ){
                   trace_world = &world_static.worlds[ gate->target ];
                }
             }
@@ -2781,7 +2781,7 @@ VG_STATIC void player__skate_animate( player_instance *player ){
    if( fabsf(lean1)>fabsf(lean2) ) lean = lean1;
    else                            lean = lean2;
 
-   if( ((int)roundf(animator->board_euler[0])) % 2 ) lean = -lean;
+   if( ((int)roundf(animator->board_euler[0]/VG_PIf)) % 2 ) lean = -lean;
    lean = vg_clampf( lean, -1.0f, 1.0f );
    animator->board_lean = 
       vg_lerpf(animator->board_lean, lean, vg.time_delta*18.0f);
@@ -2824,6 +2824,10 @@ VG_STATIC void player__skate_animate( player_instance *player ){
    /* steer */
    joystick_state( k_srjoystick_steer, animator->steer );
 
+   animator->airdir = vg_lerpf( animator->airdir, -animator->steer[0],
+                                2.4f*vg.time_delta );
+      
+
    /* flip angle */
    if( (s->state.activity <= k_skate_activity_air_to_grind) &&
        (fabsf(s->state.flip_rate) > 0.01f) ){
@@ -2892,7 +2896,6 @@ VG_STATIC void player__skate_animate( player_instance *player ){
 
       vg_line_arrow( player->rb.co, p1, 0.25f, VG__PINK );
       vg_line_arrow( player->rb.co, p2, 0.25f, VG__PINK );
-
    }
    else q_identity( animator->qfixuptotal );
    q_identity( animator->qfixuptotal );
@@ -2966,10 +2969,6 @@ VG_STATIC void player__skate_pose( player_instance *player, player_pose *pose ){
    
    mdl_keyframe air_pose[32];
    {
-      float target = -animator->steer[1];
-      animator->airdir = vg_lerpf( animator->airdir, target, 
-                                   2.4f*vg.time_delta );
-      
       float air_frame = (animator->airdir*0.5f+0.5f) * (15.0f/30.0f);
       skeleton_sample_anim( sk, s->anim_air, air_frame, apose );