From f0a1df06aced3051a93684588a6f21a0bf0fafd0 Mon Sep 17 00:00:00 2001
From: Jamie Taylor <me@nekodex.net>
Date: Wed, 8 Nov 2023 22:13:35 +0900
Subject: [PATCH] Add 'swoosh' samples to accentuate `MainMenu` animations

---
 osu.Game/Screens/Menu/ButtonSystem.cs |  4 ++++
 osu.Game/Screens/Menu/MainMenu.cs     | 10 +++++++++-
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/osu.Game/Screens/Menu/ButtonSystem.cs b/osu.Game/Screens/Menu/ButtonSystem.cs
index 8ebe4de8de..20af7e4d4a 100644
--- a/osu.Game/Screens/Menu/ButtonSystem.cs
+++ b/osu.Game/Screens/Menu/ButtonSystem.cs
@@ -86,6 +86,7 @@ namespace osu.Game.Screens.Menu
         private readonly List<MainMenuButton> buttonsPlay = new List<MainMenuButton>();
 
         private Sample sampleBackToLogo;
+        private Sample sampleLogoSwoosh;
 
         private readonly LogoTrackingContainer logoTrackingContainer;
 
@@ -156,6 +157,7 @@ namespace osu.Game.Screens.Menu
             if (idleTracker != null) isIdle.BindTo(idleTracker.IsIdle);
 
             sampleBackToLogo = audio.Samples.Get(@"Menu/back-to-logo");
+            sampleLogoSwoosh = audio.Samples.Get(@"Menu/osu-logo-swoosh");
         }
 
         private void onMultiplayer()
@@ -263,6 +265,8 @@ namespace osu.Game.Screens.Menu
 
                     // Samples are explicitly played here in response to user interaction and not when transitioning due to idle.
                     sampleBackToLogo?.Play();
+                    sampleLogoSwoosh?.Play();
+
                     return true;
 
                 case ButtonSystemState.Play:
diff --git a/osu.Game/Screens/Menu/MainMenu.cs b/osu.Game/Screens/Menu/MainMenu.cs
index 22040b4f0b..36e336e960 100644
--- a/osu.Game/Screens/Menu/MainMenu.cs
+++ b/osu.Game/Screens/Menu/MainMenu.cs
@@ -7,6 +7,8 @@ using System;
 using System.Diagnostics;
 using JetBrains.Annotations;
 using osu.Framework.Allocation;
+using osu.Framework.Audio;
+using osu.Framework.Audio.Sample;
 using osu.Framework.Bindables;
 using osu.Framework.Graphics;
 using osu.Framework.Graphics.Containers;
@@ -89,8 +91,10 @@ namespace osu.Game.Screens.Menu
         private SongTicker songTicker;
         private Container logoTarget;
 
+        private Sample reappearSampleSwoosh;
+
         [BackgroundDependencyLoader(true)]
-        private void load(BeatmapListingOverlay beatmapListing, SettingsOverlay settings, OsuConfigManager config, SessionStatics statics)
+        private void load(BeatmapListingOverlay beatmapListing, SettingsOverlay settings, OsuConfigManager config, SessionStatics statics, AudioManager audio)
         {
             holdDelay = config.GetBindable<double>(OsuSetting.UIHoldActivationDelay);
             loginDisplayed = statics.GetBindable<bool>(Static.LoginOverlayDisplayed);
@@ -162,6 +166,8 @@ namespace osu.Game.Screens.Menu
             Buttons.OnSettings = () => settings?.ToggleVisibility();
             Buttons.OnBeatmapListing = () => beatmapListing?.ToggleVisibility();
 
+            reappearSampleSwoosh = audio.Samples.Get(@"Menu/reappear-swoosh");
+
             preloadSongSelect();
         }
 
@@ -291,6 +297,8 @@ namespace osu.Game.Screens.Menu
         {
             base.OnResuming(e);
 
+            reappearSampleSwoosh?.Play();
+
             ApplyToBackground(b => (b as BackgroundScreenDefault)?.Next());
 
             // we may have consumed our preloaded instance, so let's make another.