osu/osu.Game.Tests
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
..
Audio
Beatmaps Fix slider tail volume not saving 2024-06-26 15:52:16 +02:00
Chat Avoid ChatAckRequest failures flooding console in OsuGameTestScenes 2024-05-30 17:37:55 +09:00
Collections/IO
Database
Editing Add failing test coverage for manual breaks at start/end of map not being culled 2024-06-25 12:34:37 +02:00
Extensions
Gameplay
Input
Localisation
Models
Mods
NonVisual
Online
OnlinePlay
Resources Add test coverage for encode-after-decode stability of slider sample volume specs 2024-06-26 15:42:13 +02:00
Rulesets
Scores/IO Add failing tests for looking up users by online ID if present when importing scores 2024-05-06 13:24:24 +02:00
ScrollAlgorithms
Skins Merge branch 'master' into add-rank-display 2024-06-07 09:33:03 +02:00
Testing
Utils
Visual Remove unused using statements 2024-06-26 14:50:53 +09:00
ImportTest.cs
osu.Game.Tests.csproj
tests.ruleset
WaveformTestBeatmap.cs