*/
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;
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;
audio_player2.vol = (1.0f-air)*attn*slide;
}
}
+
+ audio_player3.vol = audio_player0.vol * audio_occlusion_current * 2.0f;
}
/*
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;