+
+ if( vg_input.controller_should_use_trackpad_look )
+ {
+ static v2f last_input;
+ static v2f vel;
+ static v2f vel_smooth;
+
+ v2f input = { player.input_js2h->axis.value,
+ player.input_js2v->axis.value };
+
+ if( (v2_length2(last_input) > 0.001f) && (v2_length2(input) > 0.001f) )
+ {
+ v2_sub( input, last_input, vel );
+ v2_muls( vel, 1.0f/vg.time_delta, vel );
+ }
+ else
+ {
+ v2_zero( vel );
+ }
+
+ v2_lerp( vel_smooth, vel, vg.time_delta*8.0f, vel_smooth );
+
+ v2_muladds( player.angles, vel_smooth, vg.time_delta, player.angles );
+ v2_copy( input, last_input );
+ }
+ else
+ {
+ player.angles[0] += player.input_js2h->axis.value * vg.time_delta * 4.0f;
+ player.angles[1] += player.input_js2v->axis.value * vg.time_delta * 4.0f;
+ }
+