X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;ds=sidebyside;f=player_skate.h;h=1c23b5845395c3dc62f5942059259e949cf7e441;hb=9d5997f1e611b66c7220f7eb388f427032d8da79;hp=0a29caa9b9b0f8fc14e9c2eedb7961db3a5b217d;hpb=47a76e9a5151ef020e8554d805e313650718981f;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_skate.h b/player_skate.h index 0a29caa..1c23b58 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,6 +14,7 @@ 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, @@ -42,17 +45,9 @@ 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; @@ -64,7 +59,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, @@ -76,6 +72,8 @@ struct player_skate double air_start; v3f air_init_v, air_init_co; + + v4f smoothed_rotation; } state, state_gate_storage; @@ -105,6 +103,9 @@ struct player_skate v3f truckv0[2]; v2f wobble; + audio_channel *aud_main, *aud_slide, *aud_air; + enum mdl_surface_prop surface, audio_surface; + /* * Physics * ---------------------------------------------------- @@ -113,7 +114,7 @@ struct player_skate float substep, substep_delta; - struct land_prediction + struct jump_info { v3f log[50]; v3f n; @@ -129,6 +130,7 @@ struct player_skate enum prediction_type { k_prediction_none, + k_prediction_unset, k_prediction_land, k_prediction_grind } @@ -136,8 +138,9 @@ struct player_skate u32 colour; } - predictions[32]; - u32 prediction_count; + possible_jumps[36]; + u32 possible_jump_count; + float land_dist; v3f land_normal; @@ -146,7 +149,7 @@ struct player_skate grind_vec, grind_dir; - u32 frames_since_activity_change; + u32 grind_cooldown; float grind_strength; @@ -168,7 +171,7 @@ VG_STATIC void player__skate_animate ( player_instance *player, player_animation *anim ); VG_STATIC void player__skate_post_animate ( player_instance *player ); VG_STATIC void player__skate_reset ( player_instance *player, - struct respawn_point *rp ); + ent_spawn *rp ); VG_STATIC void player__skate_clear_mechanics( player_instance *player ); VG_STATIC void player__skate_reset_animator( player_instance *player );