seperation of body initialization, glider model
[carveJwlIkooP6JGAAIwe30JlM.git] / player_dead.h
index 6a10bea118a29b3a3eabb735011d1295432a1c31..f90a3029cb393f45e0dca322c6dd60f0855994fa 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef PLAYER_DEAD_H
 #define PLAYER_DEAD_H
 
+#include "player.h"
 #include "player_api.h"
 
 struct player_dead{
@@ -14,15 +15,34 @@ struct player_dead{
       transforms[ 32 ];
    }
    animator;
-};
 
-VG_STATIC void player__dead_update      ( player_instance *player );
-VG_STATIC void player__dead_post_update ( player_instance *player );
-VG_STATIC void player__dead_animate     ( player_instance *player );
-VG_STATIC void player__dead_pose( player_instance *player, player_pose *pose );
+   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 */