ragdoll quality improvements
[carveJwlIkooP6JGAAIwe30JlM.git] / player_ragdoll.h
index 52c2ec9a20b34f603f1f2bff5dae704ff4bf617a..0afc330486d6be8e96bd82790a5b5dc9746ebff8 100644 (file)
@@ -45,18 +45,22 @@ static int   k_ragdoll_div = 1,
                 k_ragdoll_debug_collider = 1,
                 k_ragdoll_debug_constraints = 0;
 
+enum player_die_type {
+   k_player_die_type_generic,
+   k_player_die_type_head,
+   k_player_die_type_feet
+};
+
 static void player_ragdoll_init(void);
 static void player_init_ragdoll_bone_collider( struct skeleton_bone *bone,
                                                   struct ragdoll_part *rp );
-static u32 ragdoll_bone_parent( struct player_ragdoll *rd,
-                                   struct player_avatar *av, u32 bone_id );
-static void player_setup_ragdoll_from_avatar( struct player_ragdoll *rd,
-                                                 struct player_avatar *av );
-static void copy_ragdoll_pose_to_avatar( struct player_ragdoll *rd,
-                                            struct player_avatar *av );
-static void copy_avatar_pose_to_ragdoll( struct player_avatar *av,
-                                            struct player_ragdoll *rd,
-                                            v3f velocity );
+static u32 ragdoll_bone_parent( struct player_ragdoll *rd, u32 bone_id );
+static void setup_ragdoll_from_skeleton( struct skeleton *sk,
+                                         struct player_ragdoll *rd );
+static void copy_ragdoll_pose_to_localplayer( struct player_ragdoll *rd );
+static void copy_localplayer_to_ragdoll( struct player_ragdoll *rd, 
+                                         enum player_die_type type );
+                                          
 static void player_debug_ragdoll(void);
 static void player_ragdoll_iter( struct player_ragdoll *rd );