From e48c5898bd8f59f98e95b92f28cd9a699ce56370 Mon Sep 17 00:00:00 2001
From: Shane Woolcock <samahnub@gmail.com>
Date: Fri, 11 Aug 2017 17:26:30 +0930
Subject: [PATCH 1/2] Ensure the Track for the selected beatmap is added to the
 TrackManager.  Fixes the problem where a beatmap would be stuck at 100% if it
 is replayed.

---
 osu.Game/Screens/Select/SongSelect.cs | 1 +
 1 file changed, 1 insertion(+)

diff --git a/osu.Game/Screens/Select/SongSelect.cs b/osu.Game/Screens/Select/SongSelect.cs
index 8f545240c8..f8423a90ed 100644
--- a/osu.Game/Screens/Select/SongSelect.cs
+++ b/osu.Game/Screens/Select/SongSelect.cs
@@ -372,6 +372,7 @@ namespace osu.Game.Screens.Select
 
             if (!track.IsRunning)
             {
+                Game.Audio.Track.AddItemToList(track);
                 if (preview) track.Seek(Beatmap.Value.Metadata.PreviewTime);
                 track.Start();
             }

From 4901ac9e35f7c0cd4f23b15c30461e2593ea43df Mon Sep 17 00:00:00 2001
From: Shane Woolcock <samahnub@gmail.com>
Date: Fri, 18 Aug 2017 18:01:18 +0930
Subject: [PATCH 2/2] Add some comments explaining why the Track is being
 forcefully added to the TrackManager

---
 osu.Game/Screens/Select/SongSelect.cs | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/osu.Game/Screens/Select/SongSelect.cs b/osu.Game/Screens/Select/SongSelect.cs
index e20ddf1c09..aa554152f9 100644
--- a/osu.Game/Screens/Select/SongSelect.cs
+++ b/osu.Game/Screens/Select/SongSelect.cs
@@ -370,6 +370,8 @@ namespace osu.Game.Screens.Select
 
             if (!track.IsRunning)
             {
+                // Ensure the track is added to the TrackManager, since it is removed after the player finishes the map.
+                // Using AddItemToList rather than AddItem so that it doesn't attempt to register adjustment dependencies more than once.
                 Game.Audio.Track.AddItemToList(track);
                 if (preview) track.Seek(Beatmap.Value.Metadata.PreviewTime);
                 track.Start();