1 #include "player_basic_info.h"
2 #include "network_compression.h"
4 struct player_basic_info player_basic_info
;
5 struct player_subsystem_interface player_subsystem_basic_info
=
7 .pose
= player__basic_info_pose
,
8 .network_animator_exchange
= player__basic_info_animator_exchange
,
9 .animator_data
= &player_basic_info
.animator
,
10 .animator_size
= sizeof(player_basic_info
.animator
),
14 void player__basic_info_animator_exchange(bitpack_ctx
*ctx
, void *data
)
16 struct player_basic_info_animator
*animator
= data
;
17 /* TODO: This range needs to be standardized in a common header */
18 bitpack_qv3f( ctx
, 24, -1024.0f
, 1024.0f
, animator
->root_co
);
21 void player__basic_info_pose( void *_animator
, player_pose
*pose
)
23 struct player_basic_info_animator
*animator
= _animator
;
24 v3_copy( animator
->root_co
, pose
->root_co
);
25 q_identity( pose
->root_q
);
26 pose
->type
= k_player_pose_type_fk_2
;
27 pose
->board
.lean
= 0.0f
;
29 for( int i
=0; i
<localplayer
.skeleton
.bone_count
; i
++ ){
30 v3_zero(pose
->keyframes
[i
].co
);
31 q_identity(pose
->keyframes
[i
].q
);
32 v3_fill(pose
->keyframes
[i
].s
,1.0f
);