X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_skate.c;h=df54c58e02fbe411734b7e38ce8dddd70f4899e1;hb=dd5c7c307f156768189af84603ec6f1f3b887bb4;hp=c6e5db6ab6c188cd3cc901301b751fa530829ecb;hpb=a1056ed8198f0f5be0e0f341da8bd49aa6c47198;p=carveJwlIkooP6JGAAIwe30JlM.git 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; }