From: hgn Date: Wed, 5 Mar 2025 13:44:43 +0000 (+0000) Subject: pause audio in menu X-Git-Url: https://harrygodden.com/git/?a=commitdiff_plain;h=6e68e8ba4fa356e92d48f18b5512eef3bfbc6cdc;p=carveJwlIkooP6JGAAIwe30JlM.git pause audio in menu --- diff --git a/src/menu.c b/src/menu.c index 7397e89..89cc0b9 100644 --- a/src/menu.c +++ b/src/menu.c @@ -79,12 +79,32 @@ void menu_open( enum menu_page page ) { skaterift.activity = k_skaterift_menu; + if( _cutscene.state != k_cutscene_state_none ) + { + vg_audio_lock(); + vg_audio_set_flagged_pause( AUDIO_FLAG_CUTSCENE, 1 ); + vg_audio_unlock(); + } + if( page != k_menu_page_any ) { menu.page = page; } } +static void menu_close(void) +{ + skaterift.activity = k_skaterift_default; + srinput.state = k_input_state_resume; + + if( _cutscene.state != k_cutscene_state_none ) + { + vg_audio_lock(); + vg_audio_set_flagged_pause( AUDIO_FLAG_CUTSCENE, 0 ); + vg_audio_unlock(); + } +} + bool menu_viewing_map(void) { return (skaterift.activity == k_skaterift_menu) && @@ -422,8 +442,7 @@ void menu_gui( ui_context *ctx ) vg_audio_lock(); vg_audio_oneshot( &audio_ui[3], 1.0f, 0.0f, 0, 0 ); vg_audio_unlock(); - skaterift.activity = k_skaterift_default; - srinput.state = k_input_state_resume; + menu_close(); return; } @@ -628,7 +647,7 @@ void menu_gui( ui_context *ctx ) if( menu_button( ctx, end, R == 3, 1, "OK" ) ) { menu.page = k_menu_page_main; - skaterift.activity = k_skaterift_default; + menu_close(); } //menu_try_find_cam( 3 ); @@ -672,7 +691,7 @@ void menu_gui( ui_context *ctx ) vg_audio_lock(); vg_audio_oneshot( &audio_ui[3], 1.0f, 0.0f, 0, 0 ); vg_audio_unlock(); - skaterift.activity = k_skaterift_default; + menu_close(); return; } @@ -815,7 +834,7 @@ void menu_gui( ui_context *ctx ) if( menu_button( ctx, list, R == 0, 1, "Resume" ) ) { - skaterift.activity = k_skaterift_default; + menu_close(); return; } @@ -1021,8 +1040,7 @@ void menu_gui( ui_context *ctx ) vg_audio_lock(); vg_audio_oneshot( &audio_ui[3], 1.0f, 0.0f, 0, 0 ); vg_audio_unlock(); - srinput.state = k_input_state_resume; - skaterift.activity = k_skaterift_default; + menu_close(); } menu_draw: