Updating a selected beatmap may not follow selection at song select
Discussed in https://github.com/ppy/osu/discussions/19327
Originally posted by Flamiii July 23, 2022 Updating a map can cause it to seemingly disappear as it gets moved from its original position in the beatmap carousel to another location. For example, if you're sorting by difficulty and are updating a 6.8* map that was edited and is now 7.2*, the map will disappear from view. I think it would be better behavior if the game brought the user to the newly updated map.
https://user-images.githubusercontent.com/74088315/180602283-144923e6-3c4a-4528-a352-69469af2b804.mp4
I don't know if this is the right spot for it but beatmaps are also removed from collections when they're updated. Does this issue cover that or should I make another?
Please open another.
This one is, as expected, quite hard to achieve. Currently selection is maintained by BeatmapInfo.ID, falling back to index in the carousel when that is not matching.
There's no linking between a pre-updated and post-updated beatmap, so it is always using the index lookup, which can sometimes be miles off (as the example in this thread shows).
A few potential solutions I can think of, in order of preference descending:
BeatmapCraouselfallback to match onFilenameGuid? PreviousIDinBeatmapInfo- Transfer
Guids from old to new instances (with the caveat that modified instances in soft deleted state would have theirGuidchange, which is pretty weird)
The first thing that came to my mind is transferring Guids. Matching by filename could work, with the caveat that if the same beatmap is present in multiple sets then... I'm not sure how that will handle, or if that's a common thing at all / how lazer would handle that in the first place.