keyboard
[carveJwlIkooP6JGAAIwe30JlM.git] / player_physics.h
index bb79b850e84f8ac66e4af3ead166d54763a612bf..0213fc7b65a18deb66d756b3d20f4b18e64ce8fb 100644 (file)
@@ -150,7 +150,7 @@ VG_STATIC void player_physics_control(void)
       vel[0] = stable_force( vel[0],vg_signf(vel[0]) * -k_friction_lat*substep);
    }
    
-   if( vg_get_button( "jump" ) )
+   if( player.input_jump->button.value )
    {
       phys->jump += VG_TIMESTEP_FIXED * k_jump_charge_speed;
 
@@ -161,15 +161,15 @@ VG_STATIC void player_physics_control(void)
    }
 
    static int push_thresh_last = 0;
-   float push_amt = vg_get_axis( "walk/push" ) * 0.5f + 0.5f;
-   int push_thresh = push_amt>0.15f? 1: 0;
+   float push = player.input_push->axis.value;
+   int push_thresh = push>0.15f? 1: 0;
    
    if( push_thresh && !push_thresh_last )
       player.phys.start_push = vg.time;
 
    push_thresh_last = push_thresh;
 
-   if( !vg_get_button("jump") && push_thresh )
+   if( !player.input_jump->button.value && push_thresh )
    {
       player.phys.pushing = 1.0f;
       player.phys.push_time = vg.time - player.phys.start_push;
@@ -198,7 +198,7 @@ VG_STATIC void player_physics_control(void)
    
    m3x3_mulv( phys->rb.to_world, vel, phys->rb.v );
    
-   float steer = vg_get_axis( "lookh" ),
+   float steer = player.input_js1h->axis.value,
          steer_scaled = vg_signf(steer) * powf(steer,2.0f) * k_steer_ground;
 
    phys->iY -= steer_scaled * VG_TIMESTEP_FIXED;
@@ -269,10 +269,14 @@ VG_STATIC void player_physics_control_air(void)
       time_to_impact += pstep;
    }
 
-   phys->iY -= vg_get_axis( "lookh" ) * k_steer_air * VG_TIMESTEP_FIXED;
+   float steerh = player.input_js1h->axis.value,
+         steerv = player.input_js1v->axis.value;
+
+   phys->iY -= steerh * k_steer_air * VG_TIMESTEP_FIXED;
+
    {
-      float iX = vg_get_axis( "lookv" ) * 
-         phys->reverse * k_steer_air * limiter * VG_TIMESTEP_FIXED;
+      float iX = steerv * 
+                 phys->reverse * k_steer_air * limiter * VG_TIMESTEP_FIXED;
 
       static float siX = 0.0f;
       siX = vg_lerpf( siX, iX, k_steer_air_lerp );
@@ -282,9 +286,11 @@ VG_STATIC void player_physics_control_air(void)
       q_mul( rotate, phys->rb.q, phys->rb.q );
    }
    
+#if 0
    v2f target = {0.0f,0.0f};
    v2_muladds( target, (v2f){ vg_get_axis("grabh"), vg_get_axis("grabv") },
                phys->grab, target );
+#endif
 }
 
 /*
@@ -374,7 +380,7 @@ VG_STATIC void player_walk_physics(void)
       float const DOWNFORCE = -k_walk_downforce*VG_TIMESTEP_FIXED;
       v3_muladds( phys->rb.v, (v3f){0.0f,-1.0f,0.0f}, DOWNFORCE, phys->rb.v );
 
-      if( vg_get_button("jump") )
+      if( player.input_jump->button.value )
       {
          phys->rb.v[1] = 5.0f;
       }
@@ -389,7 +395,8 @@ VG_STATIC void player_walk_physics(void)
    v3_muladds( phys->rb.co, forward_dir, 2.0f, p1 );
    vg_line( phys->rb.co, p1, 0xff0000ff );
 
-   player.walk = powf( vg_get_axis("walk/push")*0.5f + 0.5f, 4.0f );
+   float walk = player.input_walk->axis.value;
+   player.walk = powf( walk, 4.0f );
 
    if( player.walk > 0.025f )
    {
@@ -525,7 +532,11 @@ VG_STATIC void player_physics(void)
       }
    }
 
-   float grabt = vg_get_axis( "grab" )*0.5f+0.5f;
+   float grabt = vg_maxf( player.input_grab->axis.value,
+                     vg_maxf( fabsf( player.input_emjs2h->axis.value ),
+                              fabsf( player.input_emjs2v->axis.value ) )
+                  );
+
    phys->grab = vg_lerpf( phys->grab, grabt, 0.14f );
    player.phys.pushing = 0.0f;
 
@@ -638,9 +649,6 @@ VG_STATIC void player_do_motion(void)
 {
    struct player_phys *phys = &player.phys;
 
-   float horizontal = vg_get_axis("horizontal"),
-         vertical = vg_get_axis("vertical");
-
    if( world.water.enabled )
    {
       if( (phys->rb.co[1] < 0.0f) && !player.is_dead )
@@ -751,6 +759,7 @@ VG_STATIC void player_mouseview(void)
    static v2f mouse_last,
               view_vel = { 0.0f, 0.0f };
 
+#if 0
    if( vg_get_button_down( "primary" ) )
       v2_copy( vg.mouse, mouse_last );
 
@@ -762,6 +771,7 @@ VG_STATIC void player_mouseview(void)
 
       v2_muladds( view_vel, delta, 0.06f*vg.time_delta, view_vel );
    }
+#endif
    
    v2_muls( view_vel, 1.0f-4.2f*vg.time_delta, view_vel );
    v2_add( view_vel, player.angles, player.angles );