1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-15 05:02:55 +08:00
osu-lazer/osu.Game.Tests/Beatmaps/Formats
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
..
LegacyBeatmapDecoderTest.cs Fix slider tail volume not saving 2024-06-26 15:52:16 +02:00
LegacyBeatmapEncoderTest.cs Add testing for actual presence of video after encode-decode 2024-04-30 00:50:40 +08:00
LegacyDecoderTest.cs Automated pass 2023-06-24 01:00:03 +09:00
LegacyScoreDecoderTest.cs Merge branch 'master' into negative-frame-handling 2024-05-29 13:14:59 +09:00
LegacyScoreEncoderTest.cs Add failing test case 2024-05-01 23:00:24 +03:00
LegacyStoryboardDecoderTest.cs Add failing test coverage for video events affecting storyboard time bounds 2023-10-27 22:09:33 +02:00
OsuJsonDecoderTest.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
ParsingTest.cs Allow NaN during beatmap parsing if desired 2022-08-22 21:04:26 -04:00