Closes https://github.com/ppy/osu/issues/29492.
I'm not immediately sure why this happened, but some old locally
modified beatmaps in my local realm database have a `BeatDivisor` of 0
stored, which is then passed to
`BindableBeatDivisor.SetArbitraryDivisor()`, which then blows up.
To stop this from happening, just refuse to use values outside of a sane
range.
- On entering the screen, the timing point active at the current instant
of the map is selected. This is the *only* time where the selected
point is changed automatically for the user.
- The ongoing automatic tracking of the relevant point after the initial
selection is *gone*. Even knowing the fact that it was supposed to
track the supposedly relevant "last selected type" of control point,
I always found the tracking to be fairly arbitrary in how it works.
Removing this behaviour also incidentally fixes
https://github.com/ppy/osu/issues/23147.
In its stead, to indicate which timing groups are having an effect,
they receive an indicator line on the left (coloured using the
relevant control points' representing colours), as well as a slight
highlight effect.
- If there is no control point selected, the table will autoscroll to
the latest timing group, unless the user manually scrolled the table
before.
- If the selected control point changes, the table will autoscroll to
the newly selected point, *regardless* of whether the user manually
scrolled the table before.
- A new button is added which permits the user to select the latest
timing group. As per the point above, this will autoscroll the user
to that group at the same time.
This is in addition to Shift + Right-click.
I thik middle mouse feels more natural and is a good permanent solution
to this issue.
Note that this also *allows triggering the context menu from placement
mode*. Until now it's done nothing. This may be annoying to users with
muscle memory but I want to make the change and harvest feedback. I
think showing the context menu is more correct behaviour (although
arguably it should return to placement mode on dismiss?).
Closes https://github.com/ppy/osu/issues/28916.
The previous behaviour *may* have been intended, but it was honestly
quite baffling. This seems like a saner variant.