Note that this does not handle sizing/scaling changes applied directly
to `Playfield`, but it handles any changes within the layers inside
`PlayfieldAdjustmentContainer`.
The quirks in question being that lazer's hit windows in mania preceding
this change are used in stable *if and only if* Score V2 is active. If
Score V2 is *not* active, stable has two disparate other sets of hit
window ranges, dependent on whether the beatmap is a convert or not.
With this commit, those hit windows are used in lazer when the Classic
mod is active.
Open points for discussion would be:
- What does this mean for plays already set on lazer using the Classic
mod? Are there even enough of them to care about? Also, on `master`
the Classic mod does precisely nothing, so maybe such scores should
just have Classic mod stripped from them?
- What does this mean for the mod multiplier of Classic in mania? (I don't
expect an answer to this one.)
Closes https://github.com/ppy/osu/issues/33444.
The issue here is that for a set of required mods to make sense in the
context of a freestyle playlist item, it must be consistently either
valid or invalid *as a combination* across all four default rulesets,
because freestyle also permits changing ruleset. There are two
pertinent cases here:
- Flashlight and Hidden are compatible in osu!, taiko, and catch, but
not compatible in mania. In this case I've disallowed both mods
because of symmetry, basically - I don't see one "better mod" to
disallow here.
- Accuracy Challenge and Easy are incompatible in osu!, catch, and mania
(because the mod gives extra lives) there, but *compatible* in taiko,
where it does not. In this case I've disallowed Accuracy Challenge
only, because I find its value in being forced on a freestyle room
to be much smaller than Easy's.
In the large scale of things I don't see this being very important
because my view is that 99% of the use case of required mods in
freestyle is going to be changing the track speed. So I don't think
anyone is going to care about this going away - but we can reassess if
I'm proven wrong.
Closes https://github.com/ppy/osu/issues/27522.
Concerns mostly taiko and catch.
Not much of a proper fix rather than a workaround but it is what it is.
I tried a few other things, including setting `MaskingSmoothness = 0` on
the scaling container itself, to no avail.