animation board tweaks
[carveJwlIkooP6JGAAIwe30JlM.git] / player.h
index 8db02de0f54568b3f40a3ad056e3b1fcb3fe5acf..7484ce94610c1100a030fe03cc4f2c3399fdef5e 100644 (file)
--- a/player.h
+++ b/player.h
@@ -17,8 +17,7 @@ static i32 k_cinema_fixed = 0;
 static f32 k_cinema       = 0.0f;
 static i32 k_invert_y     = 0;
 
-struct player_instance
-{
+struct player_instance{
    /* transform definition */
    rigidbody rb, rb_gate_storage;
    v3f angles, angles_storage;
@@ -42,6 +41,7 @@ struct player_instance
 
    v3f fpv_offset,         /* expressed relative to rigidbody */
        tpv_offset,
+       tpv_offset_extra,
        fpv_viewpoint,      /* expressed relative to neck bone inverse final */
        fpv_offset_smooth,
        fpv_viewpoint_smooth,
@@ -75,14 +75,15 @@ struct player_instance
 
    struct player_avatar  *playeravatar;
    struct player_ragdoll  ragdoll;
-   //struct player_model   *playermodel;
-   //struct player_board   *board;
-   struct cache_board       *board_view_slot;
-   struct cache_playermodel *playermodel_view_slot;
+   struct player_model    fallback_model;
+
+   u16 board_view_slot, playermodel_view_slot;
 
    player_pose            holdout_pose;
    float                  holdout_time;
 
+   struct board_pose      board_pose;
+
    /*
     * Rewind
     * ----------------------------------------------------
@@ -224,6 +225,8 @@ PLAYER_API void player__use_avatar( player_instance *player,
                                     struct player_avatar *av );
 PLAYER_API void player__use_mesh( player_instance *player, glmesh *mesh );
 PLAYER_API void player__use_texture( player_instance *player, vg_tex2d *tex );
+PLAYER_API void player__use_model( player_instance *player, u16 reg_id );
+
 PLAYER_API void player__bind( player_instance *player );
 PLAYER_API void player__pre_update( player_instance *player );
 PLAYER_API void player__update( player_instance *player );
@@ -231,6 +234,7 @@ PLAYER_API void player__post_update( player_instance *player );
 
 PLAYER_API void player__pass_gate( player_instance *player, ent_gate *gate );
 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 );