Merge all features from glider feature branch
[carveJwlIkooP6JGAAIwe30JlM.git] / player_glide.h
index f9e4e975b7474d765a5340739149c3c01841b4ff..f8f6dd99dffee4de2a9d85f47d91c8c6b025826f 100644 (file)
@@ -2,6 +2,7 @@
 #define PLAYER_GLIDE_H
 
 #include "player.h"
+#include "trail.h"
 
 struct player_glide {
    struct skeleton_anim *anim_glide;
@@ -44,6 +45,9 @@ struct player_glide {
    }
    parts[4];
 
+   u32 trail_count;
+   v3f trail_positions[2];
+
    mdl_context glider;
    GLuint *glider_textures;
    glmesh glider_mesh;
@@ -87,6 +91,19 @@ static player_glide = {
    }
 };
 
+static trail_system trails_glider[] = {
+{
+   .width = 0.035f,
+   .lifetime = 5.0f,
+   .min_dist = 0.5f
+},
+{
+   .width = 0.035f,
+   .lifetime = 5.0f,
+   .min_dist = 0.5f
+},
+};
+
 static void player_glide_pre_update(void);
 static void player_glide_update(void);
 static void player_glide_post_update(void);
@@ -105,6 +122,7 @@ static void render_glider_model( camera *cam, world_instance *world,
                                  m4x3f mmdl, enum board_shader shader );
 static void 
 player_glide_remote_animator_exchange( bitpack_ctx *ctx, void *data );
+static void player_glide_equip_glider(void);
 
 struct player_subsystem_interface static player_subsystem_glide = {
    .pre_update = player_glide_pre_update,