player.jump = 0.0f;
player.jump_time = vg_time;
+
+ audio_lock();
+ audio_player_set_flags( &audio_player_extra, AUDIO_FLAG_SPACIAL_3D );
+ audio_player_set_position( &audio_player_extra, player.rb.co );
+ audio_player_set_vol( &audio_player_extra, 3.0f );
+ audio_player_playclip( &audio_player_extra, &audio_jumps[rand()%4] );
+ audio_unlock();
}
}
else
m3x3_copy( player.vr, player.gate_vr_frame );
m3x3_copy( player.vr_pstep, player.gate_vr_pstep_frame );
+
+ audio_lock();
+ audio_play_oneshot( &audio_gate_lap, 1.0f );
+ audio_unlock();
break;
}
}
*/
static void player_audio(void)
{
- sfx_lock();
+ static int _ding = 0;
+
+ int last = _ding;
+ _ding = glfwGetKey(vg_window, GLFW_KEY_C);
+
+ int trigger_ding = 0;
+ if( _ding && !last )
+ trigger_ding = 1;
+
+ static int _air = 0;
+
+ int l2 = _air;
+ _air = player.in_air;
+
+ static double last_revert = -2000.0;
+
+
+
+
+ audio_lock();
+
+ double revert_delta = vg_time - last_revert;
+ if( (!_air && l2) && (fabsf(player.slip) > 0.5f) && (revert_delta > 0.7) )
+ {
+ audio_player_set_position( &audio_player_extra, player.rb.co );
+ audio_player_set_flags( &audio_player_extra, AUDIO_FLAG_SPACIAL_3D );
+ audio_player_set_vol( &audio_player_extra, 2.0f );
+ audio_player_playclip( &audio_player_extra, &audio_lands[rand()%5] );
+
+ last_revert = vg_time;
+ }
static float air = 0.0f;
air = vg_lerpf(air, player.in_air? 1.0f: 0.0f, 5.0f*ktimestep);
float *cam = player.camera[3],
*pos = player.rb.co;
+
+ if( trigger_ding )
+ audio_player_playclip( &audio_player_extra, &audio_ding );
+
+ audio_player_set_position( &audio_player0, player.rb.co );
+ audio_player_set_position( &audio_player1, player.rb.co );
+ audio_player_set_position( &audio_player2, player.rb.co );
+ audio_player_set_position( &audio_player_gate, world.render_gate_pos );
v3_sub( player.rb.co, player.camera[3], delta );
v3_normalize( delta );
m3x3_mulv( player.camera, ears, ears );
+
+ /* TODO, Make function */
+ v3_copy( ears, vg_audio.listener_ears );
+ v3_copy( player.camera[3], vg_audio.listener_pos );
+
+ /* Tunnel / occlusion */
+ audio_sample_occlusion( player.camera[3] );
if( freecam || player.is_dead || !player.on_board )
{
- audio_player0.vol = 0.0f;
- audio_player1.vol = 0.0f;
- audio_player2.vol = 0.0f;
-
- audio_player0.pan = 0.0f;
- audio_player1.pan = 0.0f;
- audio_player2.pan = 0.0f;
+ audio_player_set_vol( &audio_player0, 0.0f );
+ audio_player_set_vol( &audio_player1, 0.0f );
+ audio_player_set_vol( &audio_player2, 0.0f );
}
else
{
- /* Spacialize 0 */
- audio_spacialize( &audio_player0, pos, cam, ears, 1.0f );
- audio_player1.pan = audio_player0.pan;
- audio_player2.pan = audio_player0.pan;
-
/* Composite */
float speed = vg_minf(v3_length( player.rb.v )*0.1f,1.0f),
- attn = audio_player0.vol * speed,
+ attn = speed,
slide = vg_clampf( fabsf(player.slip), 0.0f, 1.0f ),
vol0 = (1.0f-air)*attn*(1.0f-slide),
vol1 = air *attn,
vol2 = (1.0f-air)*attn*slide;
+
+ audio_player_set_vol( &audio_player0, vol0 );
+ audio_player_set_vol( &audio_player1, vol1 );
+ audio_player_set_vol( &audio_player2, vol2 );
- audio_player1.vol = vol1;
- audio_player2.vol = vol2;
- audio_player0.vol = vol0;
+ float reverb_amt = vol0 * audio_occlusion_current * 0.5f;
+ audio_player_set_pan( &audio_player3, 0.0f );
+ audio_player_set_vol( &audio_player3, reverb_amt );
}
-
- /* Tunnel / occlusion */
- audio_sample_occlusion( player.camera[3] );
- audio_player3.pan = 0.0f;
- audio_player3.vol = audio_player0.vol * audio_occlusion_current * 2.0f;
+#if 0
world_audio_update( cam, ears );
- sfx_unlock();
+#endif
+ audio_unlock();
}
/*