X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_audio.h;h=3c86e3bde847df75fbccdea7e9701e95e909e29e;hb=75703291fbf045008a3b1ebb20fc46a2617b6b3b;hp=298ce0f0dab5994bcdd6e0d1f62e70a996983b78;hpb=47941822dae18a018c985847b052e70214a3ccc6;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_audio.h b/player_audio.h index 298ce0f..3c86e3b 100644 --- a/player_audio.h +++ b/player_audio.h @@ -59,6 +59,7 @@ VG_STATIC void player_audio(void) audio_player_set_position( &audio_player0, phys->rb.co ); audio_player_set_position( &audio_player1, phys->rb.co ); audio_player_set_position( &audio_player2, phys->rb.co ); + audio_player_set_position( &audio_player4, phys->rb.co ); audio_player_set_position( &audio_player_gate, world.render_gate_pos ); audio_player_set_vol( &audio_player_gate, 5.0f ); @@ -103,7 +104,8 @@ VG_STATIC void player_audio(void) } else if( sprite_type == k_audio_sprite_type_water ) { - audio_player_playclip( avail, &audio_water[rand()%6] ); + if( world.water.enabled ) + audio_player_playclip( avail, &audio_water[rand()%6] ); } } } @@ -114,6 +116,7 @@ VG_STATIC void player_audio(void) audio_player_set_vol( &audio_player1, 0.0f ); audio_player_set_vol( &audio_player2, 0.0f ); audio_player_set_vol( &audio_player3, 0.0f ); + audio_player_set_vol( &audio_player4, 0.0f ); int walk_phase = 0; if( vg_fractf(player.walk_timer) > 0.5f ) @@ -126,8 +129,28 @@ VG_STATIC void player_audio(void) audio_player_set_flags( &audio_player_extra, AUDIO_FLAG_SPACIAL_3D ); audio_player_set_position( &audio_player_extra, phys->rb.co ); audio_player_set_vol( &audio_player_extra, 6.0f ); - audio_player_playclip( &audio_player_extra, - &audio_footsteps[rand()%4] ); + + if( player.surface_prop == k_surface_prop_concrete ) + { + audio_player_playclip( + &audio_player_extra, + &audio_footsteps[rand()%vg_list_size(audio_footsteps)] + ); + } + else if( player.surface_prop == k_surface_prop_grass ) + { + audio_player_playclip( + &audio_player_extra, + &audio_footsteps_grass[rand()%vg_list_size(audio_footsteps_grass)] + ); + } + else if( player.surface_prop == k_surface_prop_wood ) + { + audio_player_playclip( + &audio_player_extra, + &audio_footsteps_wood[rand()%vg_list_size(audio_footsteps_wood)] + ); + } } player.step_phase = walk_phase; @@ -138,15 +161,19 @@ VG_STATIC void player_audio(void) float speed = vg_minf(v3_length( phys->rb.v )*0.1f,1.0f), attn = speed, slide = vg_clampf( fabsf(phys->slip), 0.0f, 1.0f ), - vol0 = (1.0f-air)*attn*(1.0f-slide), - vol1 = air *attn, - vol2 = (1.0f-air)*attn*slide; + grind = phys->grind, + vol0 = (1.0f-air)*attn*(1.0f-slide)*(1.0f-grind), + vol1 = air *attn*(1.0f-grind), + vol2 = (1.0f-air)*attn*slide*(1.0f-grind), + vol4 = grind*2.0f; audio_player_set_vol( &audio_player0, vol0*vg.time_rate ); audio_player_set_vol( &audio_player1, vol1*vg.time_rate ); audio_player_set_vol( &audio_player2, vol2*vg.time_rate ); + audio_player_set_vol( &audio_player4, vol4*vg.time_rate ); 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*vg.time_rate ); }