X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_skate.h;h=c3ec0e6a81942392e99b43b5043c2b6546f2b66a;hb=9eb3de757a997becb8406417a4bf613f4cb04900;hp=5177763964cf62d6746b1dd7567512cbe453910b;hpb=edd08a99f72cced7626654b04591d5a54a8b540b;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_skate.h b/player_skate.h index 5177763..c3ec0e6 100644 --- a/player_skate.h +++ b/player_skate.h @@ -24,9 +24,10 @@ struct player_skate{ activity, activity_prev; - float reverse, - slip; + u32 grind_cooldown, + surface_cooldown; + f32 reverse, slip, delayed_slip_dir; int manual_direction; /* tricks */ @@ -37,6 +38,13 @@ struct player_skate{ v3f trick_vel, /* measured in units of TAU/s */ trick_euler; /* measured in units of TAU */ float trick_time; + enum trick_type{ + k_trick_type_none, + k_trick_type_kickflip, + k_trick_type_shuvit, + k_trick_type_treflip + } + trick_type; float gravity_bias; v3f up_dir; @@ -64,36 +72,37 @@ struct player_skate{ air_init_co; v4f smoothed_rotation; + + /* animator controls which require persistence */ + v3f board_trick_residualv, + board_trick_residuald; + f32 blend_slide, + blend_z, + blend_x, + blend_fly, + blend_grind, + blend_grind_balance, + blend_stand, + blend_push, + blend_jump, + blend_airdir, + blend_weight, + blend_trick_foot, + subslap; + v2f wobble; } - state, - state_gate_storage; + state; - /* animation /audio */ + /* animation /audio + * --------------------------------------------------------------*/ struct skeleton_anim *anim_stand, *anim_highg, *anim_slide, *anim_air, *anim_grind, *anim_grind_jump, *anim_push, *anim_push_reverse, *anim_ollie, *anim_ollie_reverse, *anim_grabs, *anim_stop; - v3f - board_trick_residualv, - board_trick_residuald; - - float blend_slide, - blend_z, - blend_x, - blend_fly, - blend_grind, - blend_grind_balance, - blend_stand, - blend_push, - blend_jump, - blend_airdir, - blend_weight, - subslap; /* vectors representing the direction of the axels in localspace */ v3f truckv0[2]; - v2f wobble; audio_channel *aud_main, *aud_slide, *aud_air; enum mdl_surface_prop surface, audio_surface; @@ -109,7 +118,6 @@ struct player_skate{ k_skate_sample_metal_scrape_generic } main_sample_type; - player_pose holdout; /* @@ -117,8 +125,7 @@ struct player_skate{ * ---------------------------------------------------- */ - float substep, - substep_delta; + float substep, substep_delta; struct jump_info{ v3f log[50]; @@ -153,11 +160,7 @@ struct player_skate{ grind_vec, grind_dir; - u32 grind_cooldown, - surface_cooldown; - float grind_strength; - struct grind_limit{ v3f ra, n; float p; @@ -184,6 +187,7 @@ VG_STATIC float k_cog_damp = 0.02f, k_cog_mass_ratio = 0.9f, + k_mmthrow_steer = 1.0f, k_mmthrow_scale = 6.0f, k_mmcollect_lat = 2.0f, k_mmcollect_vert = 0.0f, @@ -244,6 +248,7 @@ VG_STATIC void player__skate_register(void) VG_VAR_F32( k_mmcollect_lat, flags=VG_VAR_CHEAT ); VG_VAR_F32( k_mmcollect_vert, flags=VG_VAR_CHEAT ); VG_VAR_F32( k_mmdecay, flags=VG_VAR_CHEAT ); + VG_VAR_F32( k_mmthrow_steer, flags=VG_VAR_CHEAT ); } VG_STATIC void player__skate_bind ( player_instance *player );