X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_device_dead.h;h=9a0ed20940049aab2a269bd81eb53877455322d6;hb=ff8fcac9582d07bc1ccbf08421d6ffec1758a755;hp=848e8ecff3bf4bd833f5c52bafbd669c5677607c;hpb=f82c365a9144c3e5e57df88cb57ef273e9e9d47b;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_device_dead.h b/player_device_dead.h index 848e8ec..9a0ed20 100644 --- a/player_device_dead.h +++ b/player_device_dead.h @@ -23,7 +23,6 @@ VG_STATIC void player_dead_update( player_interface *player, VG_STATIC void player_dead_post_update( player_interface *player, player_attachment *at ) { - copy_ragdoll_pose_to_avatar( &player->ragdoll, player->playeravatar ); } VG_STATIC void player_dead_ui( player_interface *player, @@ -38,22 +37,35 @@ VG_STATIC void player_dead_bind( player_interface *player, player->rb.v ); } -VG_STATIC void player_dead_pose( player_interface *player, - player_attachment *at, - player_pose pose, m4x3f transform ) +/* FIXME: This should be an optional function */ +VG_STATIC void player_dead_animate( player_interface *player, + player_attachment *at ) { + v3_zero( at->pose_root_co ); + q_identity( at->pose_root_q ); + + for( int i=0; ipose ); i ++ ) + { + v3_zero( at->pose[i].co ); + v3_fill( at->pose[i].s, 1.0f ); + q_identity( at->pose[i].q ); + } } -/* FIXME: player_device_common */ -VG_STATIC void player_skate_get_camera( player_interface *player, - player_attachment *at, camera *cam ); -VG_STATIC void skate_camera_vector_look( camera *cam, v3f v, float C, float k ); - -VG_STATIC void player_dead_get_camera( player_interface *player, - player_attachment *at, camera *cam ) +VG_STATIC void player_dead_post_animate( player_interface *player, + player_attachment *at ) { struct player_avatar *av = player->playeravatar; + v3_zero( at->cam_1st.pos ); + v3_zero( at->cam_1st.angles ); + at->cam_1st.fov = 90.0f; + + /* FIXME: This overwrites pose blending, however, do we need to blend with + * this device, anyway? */ + copy_ragdoll_pose_to_avatar( &player->ragdoll, player->playeravatar ); + +#if 0 v3f vp = {-0.1f,1.8f,0.0f}, vd = {-1.0f,0.0f,0.0f}; @@ -64,6 +76,7 @@ VG_STATIC void player_dead_get_camera( player_interface *player, cam->fov = 119.0f; skate_camera_vector_look( cam, vd, 1.0f, 0.0f ); +#endif } VG_STATIC void player_dead_transport( player_interface *player, @@ -77,12 +90,12 @@ VG_STATIC player_device player_device_dead = .pre_update = player_dead_pre_update, .update = player_dead_update, .post_update = player_dead_post_update, - .get_camera = player_dead_get_camera, + .animate = player_dead_animate, + .post_animate = player_dead_post_animate, .debug_ui = player_dead_ui, .bind = player_dead_bind, #if 0 .pose = player_dead_pose, #endif - .gate_transport= player_dead_transport }; #endif /* PLAYER_DEVICE_DEAD_H */