.cam = {-0.3477f, 1.5884f, -0.0019f}
};
+static character_pose pose_stand_reverse =
+{
+ .b0 = {0.1624f, 1.0688f, -0.0632f},
+ .b1 = {0.0499f, 1.5564f, -0.0013f},
+ .p = {0.5423f, 1.2810f, -0.2368f},
+ .fr = {0.0535f, 0.1312f, -0.3647f},
+ .fl = {0.0354f, 0.1464f, 0.2917f},
+ .pl = {-0.4325f, 0.6889f, 0.4591f},
+ .pr = {-0.4794f, 0.7598f, -0.0842f},
+ .hl = {0.0498f, 1.0058f, 0.2317f},
+ .hr = {0.0188f, 0.9786f, -0.2725f},
+ .apl = {0.2898f, 1.3453f, 0.0695f},
+ .apr = {0.4715f, 1.2876f, -0.4982f},
+ .cam = {-0.3477f, 1.5884f, -0.0730f}
+};
+
static character_pose pose_fly =
{
.b0 = {0.2995f, 0.6819f, -0.1369f},
static void character_ragdoll_iter( struct character *ch )
{
for( int i=0; i<PART_COUNT; i++ )
- rb_build_manifold( &ch->ragdoll[i] );
+ {
+ rb_manifold_reset( &ch->ragdoll[i] );
+ rb_build_manifold_terrain( &ch->ragdoll[i] );
+
+ u32 colliders[16];
+ int len = bh_select( &world.bhcubes, ch->ragdoll[i].bbx_world,
+ colliders, 16 );
+
+ for( int j=0; j<len; j++ )
+ rb_build_manifold_rb_static( &ch->ragdoll[i],
+ &world.temp_rbs[colliders[j]] );
+ }
v3f rv;