PC controls for skids
authorhgn <hgodden00@gmail.com>
Thu, 14 Dec 2023 01:28:31 +0000 (01:28 +0000)
committerhgn <hgodden00@gmail.com>
Thu, 14 Dec 2023 01:28:31 +0000 (01:28 +0000)
input.h
models_src/ch_none.mdl
player_skate.c

diff --git a/input.h b/input.h
index fb2f3d969a75b8f6e5b5f5aaa76713808d6dba27..e93409b1356fefca51248be6bebea5d7f14ff765 100644 (file)
--- 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
 };
 
index 32f72742438ac9e8e5e0b3c6db43ed72cfe5766d..fa90273ef1c65d140296ec6dda3d6a44cdfcc8fe 100644 (file)
Binary files a/models_src/ch_none.mdl and b/models_src/ch_none.mdl differ
index 1c748dc6ff85c95d2c11f49637cb33af69cf9379..986be2d92f3fc27b6941b30521cd85eb7e847463 100644 (file)
@@ -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;
+            }
          }
       }