grind sound
[carveJwlIkooP6JGAAIwe30JlM.git] / player_audio.h
index 727080cea20c36bc5cf93d996d2aa94436cdeeaa..3c86e3bde847df75fbccdea7e9701e95e909e29e 100644 (file)
@@ -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 );
 
@@ -115,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 )
@@ -159,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 );
    }