1
0
mirror of https://github.com/ppy/osu.git synced 2025-01-18 21:02:56 +08:00
osu-lazer/osu.Game/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
..
ControlPoints Merge pull request #28444 from bdach/scrolling-ruleset-editor-reloads 2024-06-20 15:15:26 +09:00
Drawables Fix code quality and null handling 2024-06-07 00:01:50 +08:00
Formats Fix slider tail volume not saving 2024-06-26 15:52:16 +02:00
Legacy Add ScoreV2 to LegacyMods 2023-07-09 16:06:05 +02:00
Timing Make (Manual)BreakPeriod a class again 2024-06-19 14:53:09 +02:00
APIBeatmapMetadataSource.cs Polish xmldocs 2023-06-08 19:11:48 +02:00
APIFailTimes.cs Manual fixes to reduce warnings to zero 2023-06-24 01:52:53 +09:00
Beatmap.cs Make list of breaks bindable 2024-06-19 07:44:03 +02:00
BeatmapConverter.cs Preserve storyboard events when saving a beatmap in the editor 2024-04-30 00:01:56 +08:00
BeatmapDifficulty.cs Move object counts to BeatmapInfo 2023-12-13 17:33:24 +09:00
BeatmapDifficultyCache.cs Partial everything 2022-11-27 00:00:27 +09:00
BeatmapImporter.cs Remove redundant string interpolation 2024-03-29 10:37:49 +01:00
BeatmapInfo.cs Change default values of new object counts to -1 to identify non-processed values 2023-12-19 18:20:02 +09:00
BeatmapInfoExtensions.cs Fix change in filter behaviour 2023-12-05 18:20:27 +09:00
BeatmapManager.cs Switch to const string 2024-02-18 22:12:03 -08:00
BeatmapMetadata.cs Remove usages of [ExcludeFromDynamicCompile] 2023-05-08 18:12:56 +09:00
BeatmapMetadataInfoExtensions.cs Fix change in filter behaviour 2023-12-05 18:20:27 +09:00
BeatmapModelDownloader.cs Add ImportAsUpdate method to IModelImporter to avoid otehr changes 2022-07-26 15:49:04 +09:00
BeatmapOnlineChangeIngest.cs Do not look up metadata for locally-modified beatmaps on save 2023-04-11 23:14:35 +02:00
BeatmapOnlineStatus.cs Automated pass 2023-06-24 01:00:03 +09:00
BeatmapPanelBackgroundTextureLoaderStore.cs Update ImageSharp usages 2024-03-06 12:13:12 +08:00
BeatmapProcessor.cs Fix combo/combo colouring issues around spinners 2023-11-23 13:54:05 +09:00
BeatmapSetHypeStatus.cs Automated pass 2023-06-24 01:00:03 +09:00
BeatmapSetInfo.cs It works now 2023-07-11 20:18:54 +02:00
BeatmapSetInfoExtensions.cs Match class name to file 2022-08-10 19:53:40 +09:00
BeatmapSetNominationStatus.cs Automated pass 2023-06-24 01:00:03 +09:00
BeatmapSetOnlineAvailability.cs Automated pass 2023-06-24 01:00:03 +09:00
BeatmapSetOnlineCovers.cs Fix tournament population failure when beatmap is not found on server 2022-09-01 22:03:01 +09:00
BeatmapSetOnlineGenre.cs Automated pass 2023-06-24 01:00:03 +09:00
BeatmapSetOnlineLanguage.cs Automated pass 2023-06-24 01:00:03 +09:00
BeatmapSetOnlineNomination.cs Move and rename nomination response model to singular 2023-01-07 10:54:48 -08:00
BeatmapStatistic.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
BeatmapStatisticIcon.cs Automated pass 2023-06-24 01:00:03 +09:00
BeatmapUpdater.cs Also populate ObjectCounts when running a full beatmap process 2023-12-18 18:41:41 +09:00
BeatmapUpdaterMetadataLookup.cs Add extended logging when discarding online metadata lookup results 2024-03-20 08:28:11 +01:00
BeatmapUserSettings.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
BeatSyncProviderExtensions.cs Change IBeatSyncProvider.Clock to always be non-null 2023-07-13 22:13:40 +09:00
CountdownType.cs Automated pass 2023-06-24 01:00:03 +09:00
DifficultyRating.cs Remove redundant nullable suppression directives 2023-06-07 08:20:41 +03:00
DifficultyRecommender.cs Fix the MOTHERLOAD of undetected issues that are now visible thanks to net6.0 2022-12-16 18:16:26 +09:00
DummyWorkingBeatmap.cs Stop using visually noisy bg4 for default backgrounds 2024-05-03 13:38:27 +08:00
FlatWorkingBeatmap.cs Repurpose Flat{File -> }WorkingBeatmap 2023-08-12 00:49:42 +02:00
FramedBeatmapClock.cs Add comprehensive log output to help figure out problematic clocks 2024-02-29 23:05:28 +08:00
IBeatmap.cs Make list of breaks bindable 2024-06-19 07:44:03 +02:00
IBeatmapConverter.cs Automated pass 2023-06-24 01:00:03 +09:00
IBeatmapDifficultyInfo.cs Fix InverseDifficultyRange() not working correctly in both directions 2023-12-14 20:41:12 +01:00
IBeatmapInfo.cs Change default values of new object counts to -1 to identify non-processed values 2023-12-19 18:20:02 +09:00
IBeatmapMetadataInfo.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
IBeatmapOnlineInfo.cs Fix beatmap info length tooltip not showing actual drain length 2023-06-17 15:00:32 -07:00
IBeatmapProcessor.cs Automated pass 2023-06-24 01:00:03 +09:00
IBeatmapResourceProvider.cs Automated pass 2023-06-24 01:00:03 +09:00
IBeatmapSetInfo.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
IBeatmapSetOnlineInfo.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
IBeatSyncProvider.cs Remove mention of clock being nullable in IBeatSyncProvider 2023-07-18 13:08:23 +09:00
IOnlineBeatmapMetadataSource.cs Polish xmldocs 2023-06-08 19:11:48 +02:00
IWorkingBeatmap.cs Revert internal access modifier application 2023-06-08 15:23:09 +02:00
IWorkingBeatmapCache.cs Remove unnecessary invalidation handling flow 2022-06-30 17:13:26 +09:00
LocalCachedBeatmapMetadataSource.cs Update local metadata lookup cache more often 2024-05-02 16:18:29 +02:00
MetadataLookupScope.cs Do not look up metadata for locally-modified beatmaps on save 2023-04-11 23:14:35 +02:00
MetadataUtils.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
OnlineBeatmapMetadata.cs Refactor metadata lookup to streamline online metadata application logic 2023-06-08 19:11:48 +02:00
StarDifficulty.cs Guard against NaN star difficulty results 2022-06-29 21:02:29 +09:00
WorkingBeatmap.cs Crop and disable mipmaps on beatmap panel backgrounds 2023-06-08 16:51:07 +09:00
WorkingBeatmapCache.cs Fix beatmap potentially loading in a bad state 2024-02-19 17:18:07 +08:00