From 1cc9e11790a81a4a5e3e4797afca35fc2eaa8c69 Mon Sep 17 00:00:00 2001 From: hgn Date: Mon, 27 Mar 2023 00:47:27 +0100 Subject: [PATCH 1/1] skate audio fadeout --- player_skate.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/player_skate.c b/player_skate.c index c6e5db6..df54c58 100644 --- a/player_skate.c +++ b/player_skate.c @@ -22,6 +22,20 @@ VG_STATIC void player__skate_bind( player_instance *player ) s->anim_grabs = skeleton_get_anim( sk, "grabs" ); } +VG_STATIC void player__skate_kill_audio( player_instance *player ) +{ + struct player_skate *s = &player->_skate; + + audio_lock(); + if( s->aud_main ) + s->aud_main = audio_channel_fadeout( s->aud_main, 0.1f ); + if( s->aud_air ) + s->aud_air = audio_channel_fadeout( s->aud_air, 0.1f ); + if( s->aud_slide ) + s->aud_slide = audio_channel_fadeout( s->aud_slide, 0.1f ); + audio_unlock(); +} + /* * Collision detection routines * @@ -636,6 +650,7 @@ VG_STATIC void skate_apply_trick_model( player_instance *player ) if( (v3_length2(s->state.trick_vel) >= 0.0001f ) && s->state.trick_time > 0.2f) { + player__skate_kill_audio( player ); player__dead_transition( player ); } @@ -967,6 +982,7 @@ VG_STATIC void player__skate_pre_update( player_instance *player ) angles[2] = 0.0f; player->holdout_time = 0.25f; + player__skate_kill_audio( player ); player__walk_transition( player, angles ); return; } @@ -2065,6 +2081,7 @@ begin_collision:; v3_lerp( start_co, player->rb.co, t, player->rb.co ); rb_update_transform( &player->rb ); + player__skate_kill_audio( player ); player__dead_transition( player ); return; } -- 2.25.1