diff --git a/osu.Game/Beatmaps/BeatmapOnlineStatus.cs b/osu.Game/Beatmaps/BeatmapOnlineStatus.cs
index c91b46c92f..b78c42022a 100644
--- a/osu.Game/Beatmaps/BeatmapOnlineStatus.cs
+++ b/osu.Game/Beatmaps/BeatmapOnlineStatus.cs
@@ -11,6 +11,10 @@ namespace osu.Game.Beatmaps
{
public enum BeatmapOnlineStatus
{
+ ///
+ /// This is a special status given when local changes are made via the editor.
+ /// Once in this state, online status changes should be ignored unless the beatmap is reverted or submitted.
+ ///
[Description("Local")]
LocallyModified = -4,
diff --git a/osu.Game/Beatmaps/BeatmapUpdaterMetadataLookup.cs b/osu.Game/Beatmaps/BeatmapUpdaterMetadataLookup.cs
index f51a8bf7bf..2228281ed3 100644
--- a/osu.Game/Beatmaps/BeatmapUpdaterMetadataLookup.cs
+++ b/osu.Game/Beatmaps/BeatmapUpdaterMetadataLookup.cs
@@ -51,6 +51,9 @@ namespace osu.Game.Beatmaps
///
/// Queue an update for a beatmap set.
///
+ ///
+ /// This may happen during initial import, or at a later stage in response to a user action or server event.
+ ///
/// The beatmap set to update. Updates will be applied directly (so a transaction should be started if this instance is managed).
/// Whether metadata from an online source should be preferred. If true, the local cache will be skipped to ensure the freshest data state possible.
public void Update(BeatmapSetInfo beatmapSet, bool preferOnlineFetch)
@@ -94,15 +97,15 @@ namespace osu.Game.Beatmaps
beatmapInfo.LastOnlineUpdate = res.LastUpdated;
beatmapInfo.Metadata.Author.OnlineID = res.AuthorID;
+ Debug.Assert(beatmapInfo.BeatmapSet != null);
+
// In the case local changes have been applied, don't reset the status.
if (beatmapInfo.MatchesOnlineVersion || beatmapInfo.Status != BeatmapOnlineStatus.LocallyModified)
{
beatmapInfo.Status = res.Status;
+ beatmapInfo.BeatmapSet.Status = res.BeatmapSet?.Status ?? BeatmapOnlineStatus.None;
}
- Debug.Assert(beatmapInfo.BeatmapSet != null);
-
- beatmapInfo.BeatmapSet.Status = res.BeatmapSet?.Status ?? BeatmapOnlineStatus.None;
beatmapInfo.BeatmapSet.OnlineID = res.OnlineBeatmapSetID;
beatmapInfo.BeatmapSet.DateRanked = res.BeatmapSet?.Ranked;
beatmapInfo.BeatmapSet.DateSubmitted = res.BeatmapSet?.Submitted;