X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_skate.h;h=9f21115eee71e0f4318873f47eb77f925571ef67;hb=6e29d444f89478d5965fc652373272e5d70e84e4;hp=f1661d53c87c881c447263ecfe0ccc2d51927200;hpb=a1056ed8198f0f5be0e0f341da8bd49aa6c47198;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_skate.h b/player_skate.h index f1661d5..9f21115 100644 --- a/player_skate.h +++ b/player_skate.h @@ -5,6 +5,8 @@ #define SKATE_CCD +typedef struct jump_info jump_info; + struct player_skate { struct @@ -12,12 +14,11 @@ struct player_skate enum skate_activity { k_skate_activity_air, + k_skate_activity_air_to_grind, k_skate_activity_ground, k_skate_activity_undefined, k_skate_activity_grind_any, k_skate_activity_grind_boardslide, - k_skate_activity_grind_noseslide, - k_skate_activity_grind_tailslide, k_skate_activity_grind_back50, k_skate_activity_grind_front50, k_skate_activity_grind_5050 @@ -42,20 +43,11 @@ struct player_skate v3f trick_vel, /* measured in units of TAU/s */ trick_euler; /* measured in units of TAU */ float trick_time; - - float gravity_bias; -#if 0 - m3x3f velocity_bias, - velocity_bias_pstep; - v3f apex; -#endif v3f up_dir; v3f head_position; - int lift_frames; - v3f throw_v; v3f cog_v, cog; @@ -63,7 +55,8 @@ struct player_skate v2f grab_mouse_delta; int charging_jump, jump_dir; - float jump_charge; + float jump_charge, + slap; double jump_time; double start_push, @@ -75,14 +68,16 @@ struct player_skate double air_start; v3f air_init_v, air_init_co; + + v4f smoothed_rotation; } state, state_gate_storage; - /* animation */ + /* animation /audio */ struct skeleton_anim *anim_stand, *anim_highg, *anim_slide, - *anim_air, + *anim_air, *anim_grind, *anim_grind_jump, *anim_push, *anim_push_reverse, *anim_ollie, *anim_ollie_reverse, *anim_grabs, *anim_stop; @@ -94,6 +89,8 @@ struct player_skate blend_z, blend_x, blend_fly, + blend_grind, + blend_grind_balance, blend_stand, blend_push, blend_jump, @@ -107,6 +104,18 @@ struct player_skate audio_channel *aud_main, *aud_slide, *aud_air; enum mdl_surface_prop surface, audio_surface; + int wheel_contacts[2]; + float sample_change_cooldown; + + enum { + k_skate_sample_concrete, + k_skate_sample_wood, + k_skate_sample_concrete_scrape_metal, + k_skate_sample_concrete_scrape_wood, + k_skate_sample_metal_scrape_generic + } + main_sample_type; + /* * Physics * ---------------------------------------------------- @@ -115,7 +124,7 @@ struct player_skate float substep, substep_delta; - struct land_prediction + struct jump_info { v3f log[50]; v3f n; @@ -131,6 +140,7 @@ struct player_skate enum prediction_type { k_prediction_none, + k_prediction_unset, k_prediction_land, k_prediction_grind } @@ -138,8 +148,9 @@ struct player_skate u32 colour; } - predictions[32]; - u32 prediction_count; + possible_jumps[36]; + u32 possible_jump_count; + float land_dist; v3f land_normal; @@ -148,7 +159,8 @@ struct player_skate grind_vec, grind_dir; - u32 frames_since_activity_change; + u32 grind_cooldown, + surface_cooldown; float grind_strength;