glider stuff
[carveJwlIkooP6JGAAIwe30JlM.git] / player.h
index 41d527454f73aa089b31e7d98f26bf7aa4607ac0..3ae9df1bd625e01d69fd33089364bc4e788688e6 100644 (file)
--- a/player.h
+++ b/player.h
@@ -48,6 +48,8 @@ struct player_subsystem_interface{
    void(*effects)( void *animator, m4x3f *final_mtx, struct player_board *board,
                    struct player_effects_data *effect_data );
    void(*post_animate)(void);
+   void(*render)( camera *cam, world_instance *world, player_pose *pose );
+
    void(*network_animator_exchange)( bitpack_ctx *ctx, void *data );
    void(*sfx_oneshot)( u8 id, v3f pos, f32 volume );
 
@@ -80,12 +82,15 @@ struct player_subsystem_interface{
 static i32 k_cinema_fixed = 0;
 static f32 k_cinema       = 0.0f;
 static i32 k_invert_y     = 0;
+static f32 k_cam_dist     = 1.8f;
 
 struct {
    /* transform definition */
    rigidbody rb;
    v3f angles;
 
+   bool have_glider;
+
    /*
     * Camera management
     * ---------------------------
@@ -99,7 +104,9 @@ struct {
          cam_velocity_constant,
          cam_velocity_coefficient_smooth,
          cam_velocity_constant_smooth,
-         cam_velocity_influence_smooth;
+         cam_velocity_influence_smooth,
+         cam_dist,
+         cam_dist_smooth;
 
    v3f cam_land_punch, cam_land_punch_v;
    ent_gate *gate_waiting;