start of a replay system
[carveJwlIkooP6JGAAIwe30JlM.git] / player_skate.h
index 464ef50d9326a81264d94a565be1fb1a03d08918..9fbc5634832050bb574dbd4c37054f3b7bf59267 100644 (file)
@@ -8,7 +8,7 @@
 typedef struct jump_info jump_info;
 
 struct player_skate{
-   struct{
+   struct player_skate_state{
       enum skate_activity{
          k_skate_activity_air,
          k_skate_activity_air_to_grind,
@@ -24,8 +24,7 @@ struct player_skate{
       activity,
       activity_prev;
 
-      float reverse,
-            slip;
+      f32 reverse, slip, delayed_slip_dir;
 
       int manual_direction;
 
@@ -37,6 +36,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;
@@ -89,6 +95,7 @@ struct player_skate{
          blend_jump,
          blend_airdir,
          blend_weight,
+         blend_trick_foot,
          subslap;
 
    /* vectors representing the direction of the axels in localspace */
@@ -184,6 +191,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 +252,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 );