X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_skate.c;h=baa1ce713116ed266d3afb00af5711b00bb0a99f;hb=6ab4435fb19beb6af6c52691793d5ca17a120f69;hp=d56fc982787b323111af1849b44ce185362ccb6a;hpb=3e59ac7081ea3005060b56449bc77c8f73cdc6b6;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_skate.c b/player_skate.c index d56fc98..baa1ce7 100644 --- a/player_skate.c +++ b/player_skate.c @@ -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 );