float dir_frame = s->blend_z * (15.0f/30.0f),
stand_blend = offset[1]*-2.0f;
+ v2f steer;
+ joystick_state( k_srjoystick_steer, steer );
+ f32 lean1,
+ lean2 = steer[0] * s->state.reverse * -0.36f,
+ lean;
+
+ if( fabsf(s->state.slip) > 0.3f ){
+ f32 slide_dir = vg_signf(v3_dot(player->rb.v,player->rb.to_world[0]));
+ s->state.delayed_slip_dir = slide_dir;
+ }
+ lean1 = s->blend_slide * s->state.delayed_slip_dir;
+
+ if( fabsf(lean1)>fabsf(lean2) ) lean = lean1;
+ else lean = lean2;
+
+ if( ((int)roundf(s->state.trick_euler[0])) % 2 ) lean = -lean;
+ lean = vg_clampf( lean, -1.0f, 1.0f );
+
+ player->board_pose.lean = vg_lerpf( player->board_pose.lean, lean,
+ vg.time_delta * 18.0f );
+
v3f local_cog;
m4x3_mulv( player->rb.to_local, s->state.cog, local_cog );
-
stand_blend = vg_clampf( 1.0f-local_cog[1], 0, 1 );
skeleton_sample_anim( sk, s->anim_stand, dir_frame, apose );
q_mul( qtotal, kf_board->q, kf_board->q );
-
/* trick rotation */
v4f qtrick, qyaw, qpitch, qroll;
v3f euler;