osu/osu.Game.Tests/Beatmaps
Bartłomiej Dach fff27e619d
Fix slider tail volume not saving
Closes https://github.com/ppy/osu/issues/28587.

As outlined in the issue thread, the tail volume wasn't saving because
it wasn't actually attached to a hitobject properly, and as such the
`LegacyBeatmapEncoder` logic, which is based on hitobjects, did not
pick them up on save.

To fix that, switch to using `NodeSamples` for objects that are
`IHasRepeats`. That has one added complication in that having it work
properly requires changes to the decode side too. That is because the
intent is to allow the user to change the sample settings for each node
(which are specified via `NodeSamples`), as well as "the rest of the
object", which generally means ticks or auxiliary samples like
`sliderslide` (which are specified by `Samples`).

However, up until now, `Samples` always queried the control point
which was _active at the end time of the slider_. This obviously can't
work anymore when converting `NodeSamples` to legacy control points,
because the last node's sample is _also_ at the end time of the slider.
To bypass that, add extra sample points after each node (just out of
reach of the 5ms leniency), which are supposed to control volume of
ticks and/or slides.

Upon testing, this *sort of* has the intended effect in stable, with
the exception of `sliderslide`, which seems to either respect or _not_
respect the relevant volume spec dependent on... not sure what, and not
sure I want to be debugging that. It might be frame alignment, or it
might be the phase of the moon.
2024-06-26 15:52:16 +02:00
..
Formats Fix slider tail volume not saving 2024-06-26 15:52:16 +02:00
IO Automated pass 2023-06-24 01:00:03 +09:00
BeatmapUpdaterMetadataLookupTest.cs Add test coverage for correct setting of beatmap set status 2024-02-12 12:08:51 +01:00
SliderEventGenerationTest.cs Document remaining pieces of `LastTick` and add back legacy prefix for generation flow 2023-09-29 16:58:17 +09:00
TestSceneBeatmapDifficultyCache.cs
TestSceneEditorBeatmap.cs
ToStringFormattingTest.cs Automated pass 2023-06-24 01:00:03 +09:00
WorkingBeatmapManagerTest.cs Bring realm library up-to-date 2023-07-06 13:37:43 +09:00
WorkingBeatmapTest.cs Update R# + fix inspections 2024-02-02 21:00:28 +09:00