1
0
mirror of https://github.com/ppy/osu.git synced 2025-01-18 16:52:54 +08:00
osu-lazer/osu.Game
Bartłomiej Dach e7225399a2
Fix slider event generator incorrectly not generating repeats when tick distance is zero
RFC. This closes https://github.com/ppy/osu/issues/31186.

To explain why: The issue occurs on
https://osu.ppy.sh/beatmapsets/594828#osu/1258033, specifically on the
slider at time 128604. The failure site is

	fa0d2f4af2/osu.Game.Rulesets.Osu/Edit/Blueprints/Sliders/SliderCircleOverlay.cs (L65-L66)

wherein `LastRepeat` is `null`, even though the slider's `RepeatCount`
is 1 and thus `SpanCount` is 2.

In this case, `SliderEventGenerator` is given a non-zero `tickDistance`
but a zero `length`. The former is clamped to the latter:

	fa0d2f4af2/osu.Game/Rulesets/Objects/SliderEventGenerator.cs (L34)

Because of this, a whole block of code pertaining to tick generation
gets turned off, because of zero tick spacing - however, that block also
includes within it *repeat* generation, for seemingly very little reason
whatsoever:

	fa0d2f4af2/osu.Game/Rulesets/Objects/SliderEventGenerator.cs (L47-L77)

While a zero tick distance would indeed cause `generateTicks()` to loop
forever, it should have absolutely no effect on repeats.

While this *is* ultimately an aspire-tier bug caused by people pushing
things to limits, I do believe that in this case a fix is warranted
because of how hard the current behaviour violates invariants. I do not
like the possibility of having a slider with multiple spans and no
repeats.
2024-12-27 12:38:31 +01:00
..
.idea/.idea.osu.dir/.idea Merge branch 'master' into multiplayer-remove-cmc-and-composite 2024-11-20 17:24:55 +09:00
Audio Implement auto additions editor-only 2024-10-01 16:40:48 +09:00
Beatmaps Merge pull request #31138 from bdach/mark-as-played 2024-12-24 21:43:15 +09:00
Collections Fix not being able to scroll to new collection text box when list overflows 2024-11-18 15:28:30 +01:00
Configuration Make "featured artist" beatmap listing filter persist in config 2024-12-21 18:18:46 -05:00
Database Add migration 2024-12-26 15:46:12 +09:00
Extensions Apply minor performance rules 2024-11-28 20:41:44 +08:00
Graphics Load seasonal backgrounds without requiring being logged in 2024-12-20 00:38:54 +09:00
Input Switch scroll direction for beat snap 2024-12-26 00:35:21 +01:00
IO Apply type inheritance check 2024-12-19 09:21:49 +01:00
IPC
Localisation Merge pull request #31220 from normalid-awa/feature/skin/rename-skin 2024-12-24 14:24:48 +09:00
Models Use native query to avoid huge overheads when cleaning up realm files 2024-01-09 15:37:29 +09:00
Online Hide !mp commands from tournament streaming chat 2024-12-16 17:39:27 +09:00
Overlays Merge pull request #31220 from normalid-awa/feature/skin/rename-skin 2024-12-24 14:24:48 +09:00
Performance Expose high performance session state 2024-04-16 10:04:38 +08:00
Properties Make medal overlay respect overlay disable via activation mode 2024-02-20 16:31:31 +01:00
Replays Update HasFlag usages 2024-07-03 00:19:04 +09:00
Rulesets Fix slider event generator incorrectly not generating repeats when tick distance is zero 2024-12-27 12:38:31 +01:00
Scoring Use RealmLive in SaveFailedScoreButton 2024-11-27 15:25:42 +09:00
Screens Merge pull request #31138 from bdach/mark-as-played 2024-12-24 21:43:15 +09:00
Seasonal Add extra safeties against null ref when rulesets are missing 2024-12-21 20:30:00 +09:00
Skinning Add FormatStarRating() method util 2024-12-12 15:23:00 -08:00
Storyboards Merge branch 'master' into netcore-analyzer 2024-12-05 17:18:56 +08:00
Tests Remove BeatmapCarousel testing backdoor 2024-12-11 16:28:51 +09:00
Updater Resurrect SimpleUpdateManager as MobileUpdateNotifier 2024-07-05 03:29:09 -04:00
Users Clean up model 2024-12-16 13:14:21 +09:00
Utils Add FormatStarRating() method util 2024-12-12 15:23:00 -08:00
.editorconfig
FodyWeavers.xml
osu!.res
osu.Game.csproj Update framework 2024-12-24 15:17:10 +09:00
OsuGame.cs Merge pull request #31226 from frenzibyte/fix-raw-input-mobile 2024-12-24 21:35:50 +09:00
OsuGameBase_Importing.cs
OsuGameBase.cs Merge branch 'master' into improve-menu-sample-playback 2024-12-05 21:07:03 +09:00
PerformFromMenuRunner.cs