up network version
[carveJwlIkooP6JGAAIwe30JlM.git] / player_dead.h
index 43f7574b738529da34a8a2959c0654e4be52d3c1..f90a3029cb393f45e0dca322c6dd60f0855994fa 100644 (file)
@@ -1,18 +1,48 @@
 #ifndef PLAYER_DEAD_H
 #define PLAYER_DEAD_H
 
+#include "player.h"
 #include "player_api.h"
 
 struct player_dead{
    v3f co_lpf, v_lpf, w_lpf;
-};
 
-VG_STATIC void player__dead_update      ( player_instance *player );
-VG_STATIC void player__dead_animate     ( player_instance *player );
-VG_STATIC void player__dead_pose        ( player_instance *player );
+   struct player_dead_animator{
+      struct {
+         v3f co;
+         v4f q;
+      }
+      transforms[ 32 ];
+   }
+   animator;
+
+   struct skeleton_anim *anim_bail;
+}
+static player_dead;
+
+static void player__dead_update      (void);
+static void player__dead_post_update (void);
+static void player__dead_animate     (void);
+static void player__dead_pose        (void *animator, player_pose *pose);
+static void player__dead_post_animate(void);
+static void player__dead_im_gui      (void);
+static void player__dead_bind        (void);
+static void player__dead_transition  ( enum player_die_type type );
+static void player__dead_animator_exchange( bitpack_ctx *ctx, void *data );
 
-VG_STATIC void player__dead_post_animate( player_instance *player );
-VG_STATIC void player__dead_im_gui      ( player_instance *player );
-VG_STATIC void player__dead_transition  ( player_instance *player );
+struct player_subsystem_interface static player_subsystem_dead = {
+   .update = player__dead_update,
+   .post_update = player__dead_post_update,
+   .animate = player__dead_animate,
+   .pose = player__dead_pose,
+   .post_animate = player__dead_post_animate,
+   .im_gui = player__dead_im_gui,
+   .bind = player__dead_bind,
+
+   .animator_data = &player_dead.animator,
+   .animator_size = sizeof(player_dead.animator),
+   .network_animator_exchange = player__dead_animator_exchange,
+   .name = "Dead"
+};
 
 #endif /* PLAYER_DEAD_H */