X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_ragdoll.c;h=0952eb69777075c2a52e5697602086d3f9696edb;hb=0399d5a0a2e1818c3d4951f42abc1132f7e26421;hp=a1733b765289449b93e62b2aa1b78ffcea20ec81;hpb=b4a83d4fcab39bee5a8cd6e8e6eec06314864e5b;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_ragdoll.c b/player_ragdoll.c index a1733b7..0952eb6 100644 --- a/player_ragdoll.c +++ b/player_ragdoll.c @@ -46,7 +46,7 @@ VG_STATIC void player_init_ragdoll_bone_collider( struct skeleton_bone *bone, v3_zero( v1 ); v1[ major_axis ] = 1.0f; - rb_tangent_basis( v1, tx, ty ); + v3_tangent_basis( v1, tx, ty ); float r = (fabsf(v3_dot(tx,v0)) + fabsf(v3_dot(ty,v0))) * 0.25f, l = fabsf(v0[ major_axis ]); @@ -269,7 +269,7 @@ VG_STATIC void player_debug_ragdoll(void) */ VG_STATIC void player_ragdoll_iter( struct player_ragdoll *rd ) { - world_instance *world = get_active_world(); + world_instance *world = world_current_instance(); int run_sim = 0; ragdoll_frame ++; @@ -346,14 +346,15 @@ VG_STATIC void player_ragdoll_iter( struct player_ragdoll *rd ) } } - for( int j=0; jpart_count; j++ ){ - struct ragdoll_part *pj = &rd->parts[j]; + if( world->water.enabled ){ + for( int j=0; jpart_count; j++ ){ + struct ragdoll_part *pj = &rd->parts[j]; - if( run_sim ){ - v4f plane = {0.0f,1.0f,0.0f,0.0f}; - rb_effect_simple_bouyency( &pj->obj.rb, plane, - k_ragdoll_floatyiness, - k_ragdoll_floatydrag ); + if( run_sim ){ + rb_effect_simple_bouyency( &pj->obj.rb, world->water.plane, + k_ragdoll_floatyiness, + k_ragdoll_floatydrag ); + } } } @@ -446,7 +447,7 @@ VG_STATIC void player_ragdoll_iter( struct player_ragdoll *rd ) if( stress ){ temp_filter = 20; audio_lock(); - audio_oneshot_3d( &audio_hits[rand()%5], stress->co, 20.0f, 1.0f ); + audio_oneshot_3d( &audio_hits[vg_randu32()%5], stress->co, 20.0f, 1.0f ); audio_unlock(); } }