another api change
[carveJwlIkooP6JGAAIwe30JlM.git] / player_device_dead.h
index 848e8ecff3bf4bd833f5c52bafbd669c5677607c..9a0ed20940049aab2a269bd81eb53877455322d6 100644 (file)
@@ -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; i<vg_list_size( at->pose ); 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 */