X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_skate.c;h=d1be6b8b82c84adf3d7978e176b138e4afec7117;hb=223e75026f958029f9664380ed20a5daa3ee2ae7;hp=fed00580d88dedfa414942e23710ea2b1c64f2de;hpb=b3ca3b7a45eec11c46eb19772e10021177665adb;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_skate.c b/player_skate.c index fed0058..d1be6b8 100644 --- a/player_skate.c +++ b/player_skate.c @@ -669,7 +669,7 @@ invalidated_grind:; } v2f steer; - v2_copy( srinput.joy_steer, steer ); + joystick_state( k_srjoystick_steer, steer ); v2_normalize_clamp( steer ); if( (fabsf(steer[1]) > 0.5f) && (s->land_dist >= 1.5f) ){ @@ -790,7 +790,7 @@ VG_STATIC void skate_apply_grab_model( player_instance *player ) { struct player_skate *s = &player->_skate; - float grabt = srinput.axis_grab; + float grabt = axis_state( k_sraxis_grab ); if( grabt > 0.5f ){ v2_muladds( s->state.grab_mouse_delta, vg.mouse_delta, 0.02f, @@ -808,9 +808,12 @@ VG_STATIC void skate_apply_steering_model( player_instance *player ) { struct player_skate *s = &player->_skate; + v2f jsteer; + joystick_state( k_srjoystick_steer, jsteer ); + /* Steering */ - float steer = srinput.joy_steer[0], - grab = srinput.axis_grab; + float steer = jsteer[0], + grab = axis_state( k_sraxis_grab ); steer = vg_signf( steer ) * steer*steer * k_steer_ground; @@ -958,7 +961,10 @@ VG_STATIC void skate_apply_jump_model( player_instance *player ) s->grind_cooldown = 30; s->state.activity = k_skate_activity_ground; - float tilt = srinput.joy_steer[0] * 0.4f; + v2f steer; + joystick_state( k_srjoystick_steer, steer ); + + float tilt = steer[0] * 0.3f; tilt *= vg_signf(v3_dot( player->rb.v, s->grind_dir )); v4f qtilt; @@ -989,7 +995,7 @@ VG_STATIC void skate_apply_pump_model( player_instance *player ) /* Throw / collect routine */ - if( srinput.axis_grab > 0.5f ){ + if( axis_state( k_sraxis_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 ); @@ -1033,8 +1039,8 @@ VG_STATIC void skate_apply_cog_model( player_instance *player ) v3_copy( s->state.up_dir, ideal_dir ); v3_normalize( ideal_dir ); - v3_muladds( player->rb.co, ideal_dir, - 1.0f-srinput.axis_grab, ideal_cog ); + float grab = axis_state( k_sraxis_grab ); + v3_muladds( player->rb.co, ideal_dir, 1.0f-grab, ideal_cog ); v3_sub( ideal_cog, s->state.cog, ideal_diff ); /* Apply velocities */ @@ -1443,14 +1449,16 @@ 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; + v2f steer; + joystick_state( k_srjoystick_steer, steer ); + if( s->state.manual_direction == 0 ){ - if( (srinput.joy_steer[1] > 0.7f) && - (s->state.activity == k_skate_activity_ground) && + if( (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( srinput.joy_steer[1] < 0.1f ){ + if( steer[1] < 0.1f ){ s->state.manual_direction = 0; } else{ @@ -1461,7 +1469,7 @@ VG_STATIC void skate_weight_distribute( player_instance *player ) } if( s->state.manual_direction ){ - float amt = vg_minf( srinput.joy_steer[1] * 8.0f, 1.0f ); + float amt = vg_minf( steer[1] * 8.0f, 1.0f ); s->weight_distribution[2] = k_board_length * amt * (float)s->state.manual_direction; } @@ -1614,9 +1622,10 @@ VG_STATIC void skate_grind_truck_apply( player_instance *player, v3_normalize( target_fwd ); v3_normalize( fwd ); + v2f steer; + joystick_state( k_srjoystick_steer, steer ); - float way = srinput.joy_steer[1] * - vg_signf( v3_dot( raw_nplane, player->rb.v ) ); + float way = steer[1] * vg_signf( v3_dot( raw_nplane, player->rb.v ) ); v4f q; q_axis_angle( q, axis, VG_PIf*0.125f * way ); @@ -1668,8 +1677,10 @@ VG_STATIC void skate_5050_apply( player_instance *player, v3_cross( axis, inf_avg.dir, inf_avg.n ); skate_grind_decay( player, &inf_avg, 1.0f ); + v2f steer; + joystick_state( k_srjoystick_steer, steer ); - float way = srinput.joy_steer[1] * + float way = steer[1] * vg_signf( v3_dot( player->rb.to_world[2], player->rb.v ) ); v4f q; v3f up, target_up; @@ -1963,11 +1974,14 @@ VG_STATIC enum skate_activity skate_availible_grind( player_instance *player ) int allow_back = 1, allow_front = 1; + v2f steer; + joystick_state( k_srjoystick_steer, steer ); + if( s->state.activity == k_skate_activity_grind_5050 || s->state.activity == k_skate_activity_grind_back50 || s->state.activity == k_skate_activity_grind_front50 ) { - float tilt = srinput.joy_steer[1]; + float tilt = steer[1]; if( fabsf(tilt) >= 0.25f ){ v3f raw = {0.0f,0.0f,tilt}; @@ -2011,7 +2025,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(srinput.joy_steer[1]) >= 0.25f; + int wants_to_do_that = fabsf(steer[1]) >= 0.25f; res_back50 &= wants_to_do_that; res_front50 &= wants_to_do_that; @@ -2763,7 +2777,10 @@ VG_STATIC void player__skate_animate( player_instance *player, mdl_keyframe air_pose[32]; { - float target = -srinput.joy_steer[1]; + v2f steer; + joystick_state( k_srjoystick_steer, steer ); + + float target = -steer[1]; s->blend_airdir = vg_lerpf( s->blend_airdir, target, 2.4f*vg.time_delta ); @@ -2773,7 +2790,7 @@ VG_STATIC void player__skate_animate( player_instance *player, static v2f grab_choice; v2f grab_input; - v2_copy( srinput.joy_grab, grab_input ); + joystick_state( k_srjoystick_grab, grab_input ); v2_add( s->state.grab_mouse_delta, grab_input, grab_input ); if( v2_length2( grab_input ) <= 0.001f )