From: hgn Date: Thu, 14 Dec 2023 01:28:31 +0000 (+0000) Subject: PC controls for skids X-Git-Url: https://harrygodden.com/git/?p=carveJwlIkooP6JGAAIwe30JlM.git;a=commitdiff_plain;h=53b534974303043efaf1d887711fcd349f6a2885 PC controls for skids --- diff --git a/input.h b/input.h index fb2f3d9..e93409b 100644 --- a/input.h +++ b/input.h @@ -12,6 +12,7 @@ enum sr_bind{ k_srbind_jump = 0, k_srbind_push, + k_srbind_skid, k_srbind_trick0, k_srbind_trick1, k_srbind_trick2, @@ -114,7 +115,7 @@ static vg_input_op *input_button_list[] = { }, [k_srbind_miniworld_teleport]= INPUT_BASIC( SDLK_q, SDL_CONTROLLER_BUTTON_LEFTSHOULDER ), - +[k_srbind_skid] = (vg_input_op[]){ vg_keyboard, SDLK_LCTRL, vg_end }, [k_srbind_max]=NULL }; diff --git a/models_src/ch_none.mdl b/models_src/ch_none.mdl index 32f7274..fa90273 100644 Binary files a/models_src/ch_none.mdl and b/models_src/ch_none.mdl differ diff --git a/player_skate.c b/player_skate.c index 1c748dc..986be2d 100644 --- a/player_skate.c +++ b/player_skate.c @@ -837,8 +837,21 @@ static void skate_apply_steering_model(void){ } else { f32 skid = axis_state(k_sraxis_skid); - if( fabsf(skid) > 0.1f ){ - skid_target = skid; + + /* skids on keyboard lock to the first direction pressed */ + if( vg_input.display_input_method == k_input_method_kbm ){ + if( button_down(k_srbind_skid) && (fabsf(state->skid)<0.01f) ){ + state->skid = vg_signf( steer ) * 0.01f; + } + + if( button_press(k_srbind_skid) ){ + skid_target = vg_signf( state->skid ); + } + } + else { + if( fabsf(skid) > 0.1f ){ + skid_target = skid; + } } }