Because the online info reset (which includes online ID reset) was
happening after encoding,
`TestSceneBeatmapLeaderboard.TestLocalScoresDisplayOnBeatmapEdit()`
started failing, as the hash no longer matched expectations after the
first save of the map.
This matches stable, and is a much saner default value.
Will apply to new beatmaps and also beatmaps which don't specify a snap
value in the `.osu` file.
In stable, the storyboard filename is fixed. In lazer, we were always
looking for the first `.osb` in the database. In the case a beatmap
archive housed more than one `.osb` files, this may load the incorrect
one.
Using `GetDisplayString` here feels like it could potentially go wrong
in the future, so I'm open to hard-coding this locally (or using string
manipulation to remove the ` [creator_name]` portion of the beatmap's
filename). Open to opinions on that.
Fixes storyboard playback in https://osu.ppy.sh/beatmapsets/1913687#osu/3947758
Fixes#22306.
Changes beatmap saving so that by default it does not transfer
the hashes in collections, and only transfers them when saving the same
difficulty in the editor.
Issue seems to have been introduced in https://github.com/ppy/osu/pull/20641.
In current `master`, the difficulty creation flow would retrieve a
"reference beatmap" to copy metadata and timing points from using
`GetPlayableBeatmap()`. But, importantly, it was calling that method
using *the ruleset of the new difficulty* rather than the ruleset of the
existing one. This would make the difficulty creation flow fail if the
beatmap couldn't be converted between rulesets (like taiko to catch).
Fixing to use the reference beatmap's actual ruleset would be trivial,
but there's no real reason to do all of that work anyway when a
`WorkingBeatmap` is available. Because getting a playable beatmap is not
required to copy across metadata and timing points, remove the
`GetPlayableBeatmap()` step entirely to fix the bug.
Closes#22145.