X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player.h;h=8619308a0cffe686a929574701353ca2d3be4c23;hb=d4746875c05dd3e077e1b266e50ffe4856b45502;hp=99cb6c8105af173d585f941ee7ad542442d721a2;hpb=4a883ac1b2506032f9dddab342712de46f2ca734;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player.h b/player.h index 99cb6c8..8619308 100644 --- a/player.h +++ b/player.h @@ -1137,12 +1137,14 @@ static void player_animate_camera(void) */ static void player_audio(void) { + audio_sample_occlusion( player.camera[3] ); + float speed = vg_minf(v3_length( player.rb.v )*0.1f,1.0f), attn = v3_dist( player.rb.co, player.camera[3] )+1.0f; attn = (1.0f/(attn*attn)) * speed; static float air = 0.0f; - air = vg_lerpf(air, player.in_air? 1.0f: 0.0f, 0.7f); + air = vg_lerpf(air, player.in_air? 1.0f: 0.0f, 5.0f*ktimestep); v3f ears = { 1.0f,0.0f,0.0f }; v3f delta; @@ -1150,12 +1152,14 @@ static void player_audio(void) v3_sub( player.rb.co, player.camera[3], delta ); v3_normalize( delta ); m3x3_mulv( player.camera, ears, ears ); - + float pan = v3_dot( ears, delta ); audio_player0.pan = pan; audio_player1.pan = pan; audio_player2.pan = pan; + audio_player3.pan = 0.0f; + if( freecam ) { audio_player0.vol = 0.0f; @@ -1178,6 +1182,8 @@ static void player_audio(void) audio_player2.vol = (1.0f-air)*attn*slide; } } + + audio_player3.vol = audio_player0.vol * audio_occlusion_current * 2.0f; } /* @@ -1282,7 +1288,8 @@ static void player_update(void) player.on_board ^= 0x1; } - if( glfwGetKey( vg_window, GLFW_KEY_O ) ) + if( (glfwGetKey( vg_window, GLFW_KEY_O ) || (player.rb.co[1] < 0.0f)) && + !player.is_dead) { character_ragdoll_copypose( &player.mdl, player.rb.v ); player.is_dead = 1;