collision layers
[carveJwlIkooP6JGAAIwe30JlM.git] / player.h
index 2ae0485307b8f056e5dd51911c6d2d1ac2e64106..2d31e46e28aa8188bae035d5e591fba2c37446c1 100644 (file)
--- a/player.h
+++ b/player.h
@@ -86,11 +86,10 @@ struct player_instance{
 
    u16 board_view_slot, playermodel_view_slot;
 
+   player_pose            pose;
    player_pose            holdout_pose;
    float                  holdout_time;
 
-   struct board_pose      board_pose;
-
    /*
     * Subsystems
     * -------------------------------------------------
@@ -154,7 +153,7 @@ VG_STATIC
 void( *_player_post_update[])( player_instance *player ) = {
    player__walk_post_update,
    player__skate_post_update,
-   NULL,
+   player__dead_post_update,
    player__drive_post_update
 };
 
@@ -167,13 +166,21 @@ void( *_player_im_gui[])( player_instance *player ) = {
 };
 
 VG_STATIC
-void( *_player_animate[])( player_instance *player, player_animation *dest ) = {
+void( *_player_animate[])( player_instance *player ) = {
    player__walk_animate,
    player__skate_animate,
    player__dead_animate,
    player__drive_animate
 };
 
+VG_STATIC
+void( *_player_pose[] )( player_instance *player, player_pose *pose ) = {
+   player__walk_pose,
+   player__skate_pose,
+   player__dead_pose,
+   player__drive_pose,
+};
+
 VG_STATIC
 void( *_player_post_animate[])( player_instance *player ) = {
    player__walk_post_animate,
@@ -200,6 +207,7 @@ PLAYER_API void player__im_gui( player_instance *player );
 PLAYER_API void player__setpos( player_instance *player, v3f pos );
 PLAYER_API void player__spawn( player_instance *player, ent_spawn *rp );
 PLAYER_API void player__kill( player_instance *player );
+PLAYER_API void player__begin_holdout( player_instance *player );
 
 VG_STATIC int localplayer_cmd_respawn( int argc, const char *argv[] );
 VG_STATIC void player_apply_transport_to_cam( m4x3f transport );