1
0
mirror of https://github.com/ppy/osu.git synced 2026-05-16 13:43:28 +08:00

Do not overwrite "locally modified" beatmap set status when performing online lookups in song select

A relatively recent regression. It's maybe not a huge one, in that it
probably doesn't matter all that much, but it is somewhat important to
keep the "locally modified" status of the set for as long as possible.

One reason for that is that keeping the "locally modified" status will
pull up a dialog when the user attempts to update the beatmap, warning
them that they will lose their local changes - this dialog will not show
if the online lookup flow is allowed to overwrite the map status with
something else.
This commit is contained in:
Bartłomiej Dach
2025-10-02 08:52:37 +02:00
Unverified
parent 37a11b5592
commit 365cdfd40e
@@ -82,7 +82,9 @@ namespace osu.Game.Screens.SelectV2
// unfortunately in terms of subscriptions realm treats *every* write to any realm object as a modification,
// even if the write was redundant and had no observable effect.
if (dbBeatmapSet.Status != onlineBeatmapSet.Status)
// notably, `LocallyModified` status is preserved on the set until the user performs an explicit action to get rid of it
// (be it updating the set or deciding to discard their changes, removing the set and re-downloading it, etc.)
if (dbBeatmapSet.Status != onlineBeatmapSet.Status && dbBeatmapSet.Status != BeatmapOnlineStatus.LocallyModified)
dbBeatmapSet.Status = onlineBeatmapSet.Status;
foreach (var dbBeatmap in dbBeatmapSet.Beatmaps)