pause audio in menu
authorhgn <hgodden00@gmail.com>
Wed, 5 Mar 2025 13:44:43 +0000 (13:44 +0000)
committerhgn <hgodden00@gmail.com>
Wed, 5 Mar 2025 13:44:43 +0000 (13:44 +0000)
src/menu.c

index 7397e8952db47b6f372ece20ed7feab62c0ee1c5..89cc0b99278f15875e4bd47565229c3896596c26 100644 (file)
@@ -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: