1
0
mirror of https://github.com/ppy/osu.git synced 2025-01-18 19:32:55 +08:00
Commit Graph

1021 Commits

Author SHA1 Message Date
Dan Balasescu
77d9c955ea
Merge pull request #31306 from bdach/aspire-slider-breakage
Fix slider event generator incorrectly not generating repeats when tick distance is zero
2025-01-07 11:50:18 +09:00
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
Bartłomiej Dach
0d16ed028b
Add setters to hitobject coordinate interfaces 2024-12-27 11:01:47 +01:00
Bartłomiej Dach
1057aa867f
Merge pull request #30984 from smoogipoo/fix-mania-spinner-conversion
Fix "spinner" conversion for mania-specific beatmaps
2024-12-19 15:30:10 +01:00
Dan Balasescu
8dda5aada8
Populate default LegacyType value on convert hitobjects
Normally not an issue, but some tests create their own hitobjects
deriving from `ConvertHitObject`.
2024-12-06 17:47:14 +09:00
Huo Yaoyuan
f5a7716509 Apply minor performance rules 2024-11-28 20:41:44 +08:00
Dan Balasescu
8c68db0a36
Remove unused params 2024-11-11 16:10:15 +09:00
Dan Balasescu
7206e97b7b
Add IHasLegacyHitObjectType to ConvertHitObject 2024-11-11 16:10:15 +09:00
Dan Balasescu
e1d93a7d9c
Merge implementations of ConvertHitObjectParser
Having these be separate implementations sounded awesome at the time,
but it only ever led to confusion. There's no practical difference if,
for example, catch sees hitobjects with `IHasPosition` instead of
`IHasXPosition`.
2024-11-11 15:09:13 +09:00
OliBomby
2381c2c72c Fix hitobjects without custom sample banks parsing as not auto sample bank 2024-10-01 12:11:44 +02:00
OliBomby
0a78eb9628
Implement auto additions editor-only 2024-10-01 16:40:48 +09:00
Bartłomiej Dach
75fc57c34b
Fix distance spacing grid displaying incorrectly for unsnapped objects with duration 2024-09-30 13:36:16 +02:00
OliBomby
eefd7cf083 add back protection against perfect curve segments with > 3 points 2024-08-21 12:03:15 +02:00
OliBomby
a2e26ba9ff Fix perfect curve anchors losing type between reloads 2024-08-16 14:24:55 +02:00
Dean Herbert
d072c6a743
Fix hit object coordinates being truncated to int values
Closes https://github.com/ppy/osu/issues/29340.
2024-08-09 16:34:39 +09:00
Bartłomiej Dach
088e8ad0a2
Respect pre-empt time when auto-generating breaks
Closes https://github.com/ppy/osu/issues/28703.
2024-07-23 13:30:13 +02:00
Dean Herbert
5350945340
Update HasFlag usages 2024-07-03 00:19:04 +09:00
Bartłomiej Dach
ad2cd0ba8f
Adjust behaviour of hit animations toggle to match user expectations 2024-06-20 13:42:32 +02:00
Dean Herbert
316125d47a
Merge pull request #23443 from OliBomby/edit-nodesample
Make NodeSamples editable
2024-06-18 11:12:02 +09:00
Dan Balasescu
91f2cf8cc3
Use more descriptive HitObject names for debugger displays 2024-06-13 15:18:39 +09:00
Bartłomiej Dach
86b13074a0
Merge branch 'master' into edit-nodesample 2024-06-06 13:42:25 +02:00
Aurelian
9111da81d2 Updated comments 2024-05-31 08:20:19 +02:00
Aurelian
542809a748 Reduced subpoints limit to be a more practical value 2024-05-29 09:39:46 +02:00
Aurelian
6c4def1c09 Added check for infinite subpoints for PerfectCurve 2024-05-27 20:32:18 +02:00
Aurelian
b2c4e0e951 Reworked linear line check, and optimized scaled flat slider test 2024-05-24 14:05:56 +02:00
Aurelian
fff52be59a Addressed code quality issues 2024-05-24 09:30:24 +02:00
Aurelian
d948e0fc5c Nearly straight sliders are treated as linear 2024-05-24 08:26:17 +02:00
Dean Herbert
d0b1ebff5a
Revert "Temporary rollback of framework / SDL3"
This reverts commit d7d569cf4e.
2024-05-22 16:29:39 +08:00
Dean Herbert
d7d569cf4e
Temporary rollback of framework / SDL3 2024-05-21 14:36:16 +08:00
Dan Balasescu
3b8b56cbcb
Apply required changes after framework masking updates 2024-05-09 20:18:53 +09:00
Bartłomiej Dach
518addf323
Merge branch 'master' into fix-catmull-bulbs 2024-04-10 11:25:02 +02:00
Dean Herbert
94cbe1838f
Replace usages of is null with == null 2024-04-03 01:50:39 +08:00
Dan Balasescu
4806ea54f1
Only optimise Catmull segments in osu ruleset 2024-04-01 17:22:50 +09:00
Dan Balasescu
600098d845
Fix bulbs on Catmull sliders 2024-03-27 04:05:04 +09:00
Salman Ahmed
bbdcb38f5d
Merge branch 'master' into convert-path-string-new 2024-03-19 02:51:24 +03:00
Salman Ahmed
a8ce6a0bba Use Slice method instead of index range operators for readability 2024-03-19 02:43:36 +03:00
Berkan Diler
a891303484 Use ArgumentOutOfRangeException throw helper methods 2024-03-05 10:20:30 +01:00
Huo Yaoyuan
a11e63b184 Make the code more clear 2024-02-29 20:02:04 +08:00
Huo Yaoyuan
f28f19ed7e
Fix method indent size
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2024-02-29 10:47:16 +08:00
Huo Yaoyuan
e86ebd6cdb Fix formatting 2024-02-29 00:24:24 +08:00
Huo Yaoyuan
470d2be2e1 The overhead of LINQ is not ignorable 2024-02-29 00:07:00 +08:00
Huo Yaoyuan
bcb91f348d Use ArrayPool instead of stackalloc 2024-02-28 22:51:36 +08:00
Huo Yaoyuan
fe34577ee2 Update parsing. 2024-02-28 22:42:08 +08:00
Huo Yaoyuan
4bff54d35d Add ToString on PathControlPoint for debugging 2024-02-28 22:37:14 +08:00
Huo Yaoyuan
f49aa4d815 Parse points and segments for path string 2024-02-28 22:01:39 +08:00
Andrei Zavatski
9e3defebda Remove unused using 2024-02-25 19:05:40 +03:00
Andrei Zavatski
c3fa97d062 Reduce allocations in HitObjectLifetimeEntry 2024-02-25 18:02:42 +03:00
Andrei Zavatski
1fb19e7129 Reduce allocations in DrawableSpinner 2024-02-24 20:18:30 +03:00
Dean Herbert
4d4d69521f
Merge pull request #27114 from EVAST9919/judgements-rework
Cache created judgement in `HitObject`
2024-02-18 18:07:58 +08:00
Dean Herbert
9655e8c48a
Adjust xmldoc slightly 2024-02-18 17:54:29 +08:00