input update 1
[carveJwlIkooP6JGAAIwe30JlM.git] / player_skate.c
index 9b1aea11a47c83f7b35af6553dcecfc0287919f3..fed00580d88dedfa414942e23710ea2b1c64f2de 100644 (file)
@@ -662,15 +662,16 @@ invalidated_grind:;
       v3_copy( best->v, player->rb.v );
       s->land_dist = best->land_dist;
 
-      v2f steer = { player->input_js1h->axis.value,
-                    player->input_js1v->axis.value };
-      v2_normalize_clamp( steer );
       s->state.gravity_bias = best->gravity;
 
       if( best->type == k_prediction_grind ){
          s->state.activity = k_skate_activity_air_to_grind;
       }
 
+      v2f steer;
+      v2_copy( srinput.joy_steer, steer ); 
+      v2_normalize_clamp( steer );
+
       if( (fabsf(steer[1]) > 0.5f) && (s->land_dist >= 1.5f) ){
          s->state.flip_rate = (1.0f/s->land_dist) * vg_signf(steer[1]) *
                                  s->state.reverse ;
@@ -712,10 +713,6 @@ VG_STATIC void skate_apply_air_model( player_instance *player )
    q_axis_angle( correction, axis, 
                   acosf(angle)*2.0f*VG_TIMESTEP_FIXED );
    q_mul( correction, player->rb.q, player->rb.q );
-
-   v2f steer = { player->input_js1h->axis.value,
-                 player->input_js1v->axis.value };
-   v2_normalize_clamp( steer );
 }
 
 VG_STATIC int player_skate_trick_input( player_instance *player );
@@ -793,7 +790,7 @@ VG_STATIC void skate_apply_grab_model( player_instance *player )
 {
    struct player_skate *s = &player->_skate;
 
-   float grabt = player->input_grab->axis.value;
+   float grabt = srinput.axis_grab;
 
    if( grabt > 0.5f ){
       v2_muladds( s->state.grab_mouse_delta, vg.mouse_delta, 0.02f, 
@@ -812,8 +809,8 @@ VG_STATIC void skate_apply_steering_model( player_instance *player )
    struct player_skate *s = &player->_skate;
 
    /* Steering */
-   float steer = player->input_js1h->axis.value,
-         grab  = player->input_grab->axis.value;
+   float steer = srinput.joy_steer[0],
+         grab  = srinput.axis_grab;
 
    steer = vg_signf( steer ) * steer*steer * k_steer_ground;
 
@@ -892,9 +889,8 @@ VG_STATIC void skate_apply_friction_model( player_instance *player )
 
    /* Pushing additive force */
 
-   if( !player->input_jump->button.value ){
-      if( player->input_push->button.value || 
-          (vg.time-s->state.start_push<0.75) )
+   if( !button_press( k_srbind_jump ) ){
+      if( button_press( k_srbind_push ) || (vg.time-s->state.start_push<0.75) )
       {
          if( (vg.time - s->state.cur_push) > 0.25 )
             s->state.start_push = vg.time;
@@ -922,7 +918,7 @@ VG_STATIC void skate_apply_jump_model( player_instance *player )
 {
    struct player_skate *s = &player->_skate;
    int charging_jump_prev = s->state.charging_jump;
-   s->state.charging_jump = player->input_jump->button.value;
+   s->state.charging_jump = button_press( k_srbind_jump );
 
    /* Cannot charge this in air */
    if( s->state.activity <= k_skate_activity_air_to_grind ){
@@ -962,7 +958,7 @@ VG_STATIC void skate_apply_jump_model( player_instance *player )
          s->grind_cooldown = 30;
          s->state.activity = k_skate_activity_ground;
 
-         float tilt  = player->input_js1h->axis.value * 0.3f;
+         float tilt  = srinput.joy_steer[0] * 0.4f;
                tilt *= vg_signf(v3_dot( player->rb.v, s->grind_dir ));
 
          v4f qtilt;
@@ -976,10 +972,6 @@ VG_STATIC void skate_apply_jump_model( player_instance *player )
       s->state.jump_charge = 0.0f;
       s->state.jump_time = vg.time;
 
-      v2f steer = { player->input_js1h->axis.value,
-                    player->input_js1v->axis.value };
-      v2_normalize_clamp( steer );
-
       audio_lock();
       audio_oneshot_3d( &audio_jumps[rand()%2], player->rb.co, 40.0f, 1.0f );
       audio_unlock();
@@ -997,7 +989,7 @@ VG_STATIC void skate_apply_pump_model( player_instance *player )
 
    /* Throw / collect routine 
     */
-   if( player->input_grab->axis.value > 0.5f ){
+   if( srinput.axis_grab > 0.5f ){
       if( s->state.activity == k_skate_activity_ground ){
          /* Throw */
          v3_muls( player->rb.to_world[1], k_mmthrow_scale, s->state.throw_v );
@@ -1042,7 +1034,7 @@ VG_STATIC void skate_apply_cog_model( player_instance *player )
    v3_normalize( ideal_dir );
 
    v3_muladds( player->rb.co, ideal_dir,
-               1.0f-player->input_grab->axis.value, ideal_cog );
+               1.0f-srinput.axis_grab, ideal_cog );
    v3_sub( ideal_cog, s->state.cog, ideal_diff );
 
    /* Apply velocities */
@@ -1109,17 +1101,17 @@ VG_STATIC void skate_copy_holdout( player_instance *player )
 
 VG_STATIC int player_skate_trick_input( player_instance *player )
 {
-   return (player->input_trick0->button.value) |
-          (player->input_trick1->button.value << 1) |
-          (player->input_trick2->button.value << 1) |
-          (player->input_trick2->button.value);
+   return (button_press( k_srbind_trick0 )     ) |
+          (button_press( k_srbind_trick1 ) << 1) |
+          (button_press( k_srbind_trick2 ) << 1) |
+          (button_press( k_srbind_trick2 )     );
 }
 
 VG_STATIC void player__skate_pre_update( player_instance *player )
 {
    struct player_skate *s = &player->_skate;
 
-   if( vg_input_button_down( player->input_use ) ){
+   if( button_down( k_srbind_use ) ){
       player->subsystem = k_player_subsystem_walk;
 
       v3f angles;
@@ -1452,13 +1444,13 @@ VG_STATIC void skate_weight_distribute( player_instance *player )
    int reverse_dir = v3_dot( player->rb.to_world[2], player->rb.v ) < 0.0f?1:-1;
 
    if( s->state.manual_direction == 0 ){
-      if( (player->input_js1v->axis.value > 0.7f) && 
+      if( (srinput.joy_steer[1] > 0.7f) && 
           (s->state.activity == k_skate_activity_ground) &&
           (s->state.jump_charge <= 0.01f) )
          s->state.manual_direction = reverse_dir;
    }
    else{
-      if( player->input_js1v->axis.value < 0.1f ){
+      if( srinput.joy_steer[1] < 0.1f ){
          s->state.manual_direction = 0;
       }
       else{
@@ -1469,7 +1461,7 @@ VG_STATIC void skate_weight_distribute( player_instance *player )
    }
 
    if( s->state.manual_direction ){
-      float amt = vg_minf( player->input_js1v->axis.value * 8.0f, 1.0f );
+      float amt = vg_minf( srinput.joy_steer[1] * 8.0f, 1.0f );
       s->weight_distribution[2] = k_board_length * amt * 
                                           (float)s->state.manual_direction;
    }
@@ -1623,7 +1615,7 @@ VG_STATIC void skate_grind_truck_apply( player_instance *player,
    v3_normalize( fwd );
 
 
-   float way = player->input_js1v->axis.value *
+   float way = srinput.joy_steer[1] *
                   vg_signf( v3_dot( raw_nplane, player->rb.v ) );
 
    v4f q;
@@ -1677,7 +1669,7 @@ VG_STATIC void skate_5050_apply( player_instance *player,
    skate_grind_decay( player, &inf_avg, 1.0f );
 
 
-   float way = player->input_js1v->axis.value *
+   float way = srinput.joy_steer[1] *
                   vg_signf( v3_dot( player->rb.to_world[2], player->rb.v ) );
    v4f q;
    v3f up, target_up;
@@ -1975,14 +1967,13 @@ VG_STATIC enum skate_activity skate_availible_grind( player_instance *player )
        s->state.activity == k_skate_activity_grind_back50 ||
        s->state.activity == k_skate_activity_grind_front50 )
    {
-      float tilt = player->input_js1v->axis.value;
+      float tilt = srinput.joy_steer[1];
 
       if( fabsf(tilt) >= 0.25f ){
          v3f raw = {0.0f,0.0f,tilt};
          m3x3_mulv( player->rb.to_world, raw, raw );
 
-         float way = player->input_js1v->axis.value *
-                        vg_signf( v3_dot( raw, player->rb.v ) );
+         float way = tilt * vg_signf( v3_dot( raw, player->rb.v ) );
 
          if( way < 0.0f ) allow_front = 0;
          else allow_back = 0;
@@ -2020,7 +2011,7 @@ VG_STATIC enum skate_activity skate_availible_grind( player_instance *player )
          res_front50 = skate_grind_truck_entry( player, -1.0f, &inf_front50 );
 
       if( res_back50 != res_front50 ){
-         int wants_to_do_that = fabsf(player->input_js1v->axis.value) >= 0.25f;
+         int wants_to_do_that = fabsf(srinput.joy_steer[1]) >= 0.25f;
 
          res_back50  &= wants_to_do_that;
          res_front50 &= wants_to_do_that;
@@ -2772,7 +2763,7 @@ VG_STATIC void player__skate_animate( player_instance *player,
    
    mdl_keyframe air_pose[32];
    {
-      float target = -player->input_js1h->axis.value;
+      float target = -srinput.joy_steer[1];
 
       s->blend_airdir = vg_lerpf( s->blend_airdir, target, 2.4f*vg.time_delta );
       
@@ -2781,9 +2772,10 @@ VG_STATIC void player__skate_animate( player_instance *player,
 
       static v2f grab_choice;
 
-      v2f grab_input = { player->input_js2h->axis.value,
-                         player->input_js2v->axis.value };
+      v2f grab_input;
+      v2_copy( srinput.joy_grab, grab_input );
       v2_add( s->state.grab_mouse_delta, grab_input, grab_input );
+
       if( v2_length2( grab_input ) <= 0.001f )
          grab_input[0] = -1.0f;
       else