X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player.h;h=c8c9abc54b8932ecd480838014a44001ca9c4dfb;hb=6294ef64d948eab2365e39a2645c9843aa96fba8;hp=972807b7a9892c1c09caedddd7a3b5a831023d2e;hpb=045332768cda11d98bcd74a1d803f823d095b94b;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player.h b/player.h index 972807b..c8c9abc 100644 --- a/player.h +++ b/player.h @@ -14,7 +14,7 @@ #include "bvh.h" VG_STATIC float - k_walkspeed = 20.0f, /* no longer used */ + k_walkspeed = 12.0f, /* no longer used */ k_runspeed = 20.0f, k_board_radius = 0.3f, k_board_length = 0.45f, @@ -97,7 +97,8 @@ VG_STATIC struct gplayer *input_emjs2v, *input_jump, *input_push, - *input_walk, + *input_walkh, + *input_walkv, *input_switch_mode, *input_reset, *input_grab; @@ -203,6 +204,8 @@ VG_STATIC void player_save_rewind_frame(void); /* * Submodules */ +VG_STATIC void player_mouseview(void); + #include "player_physics.h" #include "player_ragdoll.h" #include "player_model.h" @@ -226,21 +229,26 @@ VG_STATIC void player_init(void) /* 1 player.input_emjs2v = vg_create_named_input( "kbgrab-v", k_input_type_axis ); player.input_jump = vg_create_named_input( "jump", k_input_type_button ); player.input_push = vg_create_named_input( "push", k_input_type_axis_norm ); - player.input_walk = vg_create_named_input( "walk", k_input_type_axis_norm ); + + player.input_walkh = vg_create_named_input( "walk-h", + k_input_type_axis ); + player.input_walkv = vg_create_named_input( "walk-v", + k_input_type_axis ); + + player.input_switch_mode = vg_create_named_input( "switch-mode", k_input_type_button ); player.input_reset = vg_create_named_input( "reset", k_input_type_button ); const char *default_cfg[] = { - "bind steer-h gp-ls-h", "bind steer-h gp-ls-h", "bind -steer-h a", "bind +steer-h d", "bind steer-v gp-ls-v", - "bind -steer-v s", - "bind +steer-v w", + "bind -steer-v w", + "bind +steer-v s", "bind grab gp-rt", "bind grab-h gp-rs-h", @@ -256,9 +264,13 @@ VG_STATIC void player_init(void) /* 1 "bind push gp-lt", "bind +push shift", - - "bind walk gp-lt", - "bind +walk w", + + "bind walk-h gp-ls-h", + "bind walk-v gp-ls-v", + "bind +walk-h d", + "bind -walk-h a", + "bind +walk-v w", + "bind -walk-v s", "bind reset gp-lb", "bind reset r", @@ -287,7 +299,7 @@ VG_STATIC void player_init(void) /* 1 .data = &k_walkspeed, .data_type = k_convar_dtype_f32, .opt_f32 = { .clamp = 0 }, - .persistent = 1 + .persistent = 0 }); vg_convar_push( (struct vg_convar){ @@ -359,6 +371,18 @@ VG_STATIC void player_save_rewind_frame(void) } } +/* + * Free camera movement + */ +VG_STATIC void player_mouseview(void) +{ + if( ui_want_mouse() ) + return; + + v2_muladds( player.angles, vg.mouse_delta, 0.0025f, player.angles ); + player.angles[1] = vg_clampf( player.angles[1], -VG_PIf*0.5f, VG_PIf*0.5f ); +} + /* Deal with input etc */ VG_STATIC void player_update_pre(void) { @@ -450,6 +474,9 @@ VG_STATIC void player_update_pre(void) audio_unlock(); } + + if( !phys->on_board ) + player_mouseview(); } VG_STATIC void player_update_fixed(void) /* 2 */