Fixes startup sounds from potentially being fetched from the wrong
source if API connection establishment takes longer than the intro
screen takes to load.
Closes https://github.com/ppy/osu/issues/22492.
Fixes the main part of https://github.com/ppy/osu/issues/31144.
Support for selecting a video will come later.
Making this work was an absolutely awful time full of dealing with
delightfully kooky issues, and yielded in a very weird-shaped
contraption. There is at least one issue remaining wherein storyboard
videos do not actually display until the track is started in editor, but
that is 99% a framework issue and I do not currently have the mental
fortitude to diagnose further.
This seems like the lowest friction way of fixing
https://github.com/ppy/osu/issues/30885.
We could also only null this on application, but this feels worse
because
- It would require local handling (potentially complex) in
`BeatmapOffsetControl` if we want to continue displaying the graph and
button after clicking it.
- It would make the session static very specific in usage and
potentially make future usage not possible due to being nulled in only
a very specific scenario.
One might argue that it would be nice to have this non-null until the
next play, but if such a usage comes up I'd propose we rename this
session static and add a new one with that purpose.
Users have asked for this multiple times since last release.
Not sure on the best default value, but I'm going with the
stable/classic one, at least for the initial release to avoid needing
migrations.
In the future we may reconsider this for new users.