1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-22 01:27:29 +08:00
Commit Graph

86 Commits

Author SHA1 Message Date
Bartłomiej Dach
a3b8493751
Remove rounding of slider velocity multiplier on juice streams
Compare: https://github.com/ppy/osu/pull/26616

This came up elsewhere, namely in
https://github.com/ppy/osu/pull/28277#issuecomment-2133505958.

As it turns out, at least one beatmap among those whose scores had
unexpected changes in total score, namely
https://osu.ppy.sh/beatmapsets/971028#fruits/2062131, was using slider
velocity multipliers that were not a multiple of 0.01 (the specific
value used was 0.225x). This meant that due to the rounding applied to
`SliderVelocityMultiplierBindable` via `Precision`, the raw value was
being incorrectly rounded, resulting in incorrect conversion.

The "direct" change that revealed this is most likely
https://github.com/ppy/osu-framework/pull/6249, by the virtue of
shuffling the `BindableNumber` rounding code around and accidentally
changing midpoint rounding semantics in the process. But it was not
at fault here, as rounding was just as wrong before that change
as after in this specific context.
2024-05-28 13:14:44 +02:00
Dan Balasescu
6320194e19
Fix catch applying positional clamping too early 2023-12-11 21:52:39 +09:00
Dan Balasescu
7d602c792d
Fix legacy tick distance in JuiceStream generation 2023-12-05 15:10:03 +09:00
Dan Balasescu
b90de83f33
Replicate integer calculations for tiny tick conversion 2023-12-05 11:58:00 +09:00
Dean Herbert
d7119674e8 Update comments to better explain what LastTick is doing 2023-09-29 14:40:44 +09:00
Dean Herbert
81485c548c Move LegacyLastTickOffset specification to generation code and stop passing everywhere 2023-09-29 14:32:29 +09:00
Dean Herbert
1a37543d28 Rename SliderVelocity to SliderVelocityMultiplier to distinguish from Velocity 2023-09-06 19:01:08 +09:00
OliBomby
41d4894aa3 add min and max value to SliderVelocity 2023-04-30 19:32:24 +02:00
OliBomby
c44f71a737 remove all regular usage of DifficultyControlPoint 2023-04-26 17:55:38 +02:00
ekrctb
56fb315f32 Remove #nullable disable from Catch.Objects 2023-01-15 17:29:35 +09:00
Drison64
86a09ad2cf Rename ClampToPlayField 2022-09-21 17:14:02 +02:00
Drison64
a4fae37013 Fixed tests failing 2022-09-20 19:45:39 +02:00
Drison64
6b1cd1bce3 Clamped JuiceStream to Playfield, but broke few tests 2022-09-20 19:13:40 +02:00
Dan Balasescu
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
ekrctb
670922c8e5 Use latest slider velocity for juice stream velocity computation.
This fixes one-frame glitch in editor when slider velocity is changed.
2022-05-08 22:36:33 +09:00
goodtrailer
4440b9ca11 Change IHasRepeats.NodeSamples to IList from List 2021-10-23 01:59:07 -07:00
smoogipoo
bc37cb6f43 Merge branch 'master' into no-more-difficulty-control-points-info 2021-10-08 18:41:17 +09:00
Dean Herbert
a92d499d7a Convert usages of BeatmapDifficulty to IBeatmapDifficultyInfo 2021-10-01 16:55:50 +09:00
Dean Herbert
a3d9ab1e2e Move approach rate to EffectControlPoint 2021-09-03 16:58:16 +09:00
Dean Herbert
071c56e90b Update usages of DifficultyPointAt 2021-09-03 16:58:16 +09:00
Dean Herbert
6dcd9427ac Remove bindable usage in PathControlPoint
This is quite a breaking change, but I think it is beneficial due to the large amount of usage of this class.

I originally intended just to remove the allocations of the two delegates handling the `Changed` flow internally, but as nothing was really using the bindables for anything more than a general "point has changed" case, this felt like a better direction.
2021-08-26 12:33:53 +09:00
ekrctb
ae1b1cbec9 Allow serialization of catch hit objects 2021-07-06 15:32:32 +09:00
ekrctb
d96399ea42 Revert "Remove X setter from CatchHitObject"
This reverts commit 7cbbd74d
2020-12-14 13:18:14 +09:00
ekrctb
7cbbd74df2 Remove X setter from CatchHitObject 2020-12-14 11:38:07 +09:00
ekrctb
96f3e0dad8 Replace CatchHitObject.X usage to EffectiveX and OriginalX 2020-12-14 11:03:14 +09:00
smoogipoo
5760e1c1fc Make HitSampleInfo immutable 2020-12-01 15:37:51 +09:00
smoogipoo
696e3d53af Fix slider samples being overwritten by the last node 2020-10-09 20:50:09 +09:00
ekrctb
3278a1d7d8 Standardize osu!catch coordinate system
There were two coordinate systems used:
- 0..512 (used in osu!stable)
- 0..1 (relative coordinate)

This commit replaces the usage of
the relative coordinate system to
the coordinate system of 0..512.
2020-07-02 00:21:45 +09:00
Dan Balasescu
64d1b4b11b
Merge branch 'master' into move-setter-to-duration 2020-06-01 15:55:48 +09:00
Dean Herbert
b8e0a6f127 Move sett from EndTime to Duration 2020-05-27 12:37:44 +09:00
Dean Herbert
6b5b215299 Split out IHasPath from IHasCurve to better define hitobjects 2020-05-26 17:44:47 +09:00
smoogipoo
4719fcc291 Actually use the cancellation token 2020-05-15 18:17:39 +09:00
smoogipoo
98125102a7 Add cancellation token support to CreateNestedHitObjects() 2020-05-15 18:07:41 +09:00
Dan Balasescu
cd5f0d6e96
Merge pull request #8201 from peppy/fix-hyperdash-test
Fix hyperdash test having a zero-length juice stream
2020-03-11 13:46:59 +09:00
Dean Herbert
14192c069f Don't play samples on catching a tiny droplet 2020-03-10 18:05:44 +09:00
Dean Herbert
5329b222f6 Fix hyperdash test having a zero-length juice stream 2020-03-10 17:49:51 +09:00
Dean Herbert
ffc7eaa3f2 Fix hitobjects with unknown lifetimes by enforcing non-null judgement
We've seen multiple cases where DrawableHitObject are stuck in the lifetime management container
due to not implementing a judgement (meaning they are never "hit" or "missed"). To avoid this going forward
CreateJudgement() must be implemented and return a non-null judgement.

This fixes BananaShower and JuiceStreams in osu!catch.

This also makes HitObject abstract and cleans up convert HitObject implementations.
2020-02-23 13:49:06 +09:00
Dean Herbert
bb541f5ae4 Update inspectcode version and fix new issues 2020-02-15 11:54:29 +09:00
Dean Herbert
daf5fa9da4 Throw NotSupportedException instead 2020-02-06 13:16:32 +09:00
Dean Herbert
cd6902a312 Make EndTime and RepeatCount settable 2020-02-05 17:52:51 +09:00
smoogipoo
a554ca728b Don't reuse the same control point references 2019-12-16 15:27:54 +09:00
smoogipoo
fa1468325e Refactor hitobjects to remove default control point 2019-12-09 17:48:27 +09:00
smoogipoo
b9d12e5fe4 Fix nested hitobjects not updating 2019-12-06 20:53:40 +09:00
Huo Yaoyuan
bbeab6fa76 Use auto property. 2019-11-12 19:53:25 +08:00
smoogipoo
6fc1be64c2 Make hitobject samples a bindable list 2019-11-08 14:04:57 +09:00
Dean Herbert
60ea3d4e1a Fix skinning support for combobreak 2019-06-30 21:58:30 +09:00
Dean Herbert
c39c37a18d Apply more missed cases 2019-04-01 12:44:46 +09:00
Dean Herbert
489153579a Add xmldoc and clarify struct variables 2019-03-11 14:36:29 +09:00
Dean Herbert
165a353a83 Add extensive commenting about LegacyLastTick usage 2019-03-08 20:12:48 +09:00
Dean Herbert
355705f0a5 Fix legacy tick handling 2019-03-08 19:57:30 +09:00