X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_physics.h;h=0213fc7b65a18deb66d756b3d20f4b18e64ce8fb;hb=045332768cda11d98bcd74a1d803f823d095b94b;hp=bb79b850e84f8ac66e4af3ead166d54763a612bf;hpb=a3c10b9dec1ed7136721695033ebeef30717f249;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_physics.h b/player_physics.h index bb79b85..0213fc7 100644 --- a/player_physics.h +++ b/player_physics.h @@ -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 );