Commit Graph

795 Commits

Author SHA1 Message Date
OliBomby
77dcd0fae2 Create BezierConverter.cs 2022-10-26 17:21:20 +02:00
Dean Herbert
da93849b80 Rename some pieces and better document SampleBankInfo 2022-10-25 14:55:33 +09:00
Dean Herbert
f060e6a780 Implement hold "sliding" samples in osu!mania 2022-10-11 16:31:37 +09:00
sw1tchbl4d3
5a4196fd51 Make currentEffectPoint non-nullable 2022-10-10 15:34:29 +02:00
sw1tchbl4d3
d389808427 Make effect point search more efficient 2022-10-10 14:00:26 +02:00
sw1tchbl4d3
eae32ca483 Switch DefinitelyBigger to AlmostBigger to account for fp errors 2022-10-10 09:39:40 +02:00
sw1tchbl4d3
63ffaa6929 Respect OmitFirstBarLine effect 2022-10-07 20:38:32 +02:00
sw1tchbl4d3
903c8612c8 Move endTime to next timing point 2022-10-07 20:34:31 +02:00
sw1tchbl4d3
0cffbb7562 Clamp LifetimeStart of HitObject's to their judgement windows 2022-09-27 16:54:24 +02:00
Dean Herbert
78625fda7d Improve exception when attempting to call DrawableHitObject.ClearInternal 2022-09-22 14:44:03 +09:00
Dan Balasescu
e56ea58e71 Fix up xmldoc 2022-09-15 16:06:21 +09:00
Dan Balasescu
c847cc521e Add some inline comments 2022-09-15 16:00:35 +09:00
Dan Balasescu
68e4d22898 Precondition against entryMap intead of parentMap 2022-09-15 15:43:15 +09:00
Dan Balasescu
31bc067dd1 Don't store nulls to parentMap 2022-09-15 15:38:44 +09:00
Dean Herbert
5dc0d32e42 Apply NRT to hitobject lifetime related classes 2022-09-14 15:24:20 +09:00
ekrctb
c59aa57450 Remove createLifetimeEntry from HitObjectEntryManager 2022-09-14 15:19:33 +09:00
ekrctb
47539e2129 Add doc comments to HitObjectEntryManager 2022-09-14 15:19:05 +09:00
ekrctb
bde390828b Manage entries of nested hit objects in HitObjectEntryManager
- Fix nested hit objects are leaked when parent hit object is edited or deleted
2022-09-14 15:19:05 +09:00
ekrctb
a9eba27129 Factor out pooling logic from Playfield 2022-09-14 15:19:05 +09:00
Dean Herbert
105aa01e7d Update usages of RemoveInternal 2022-08-29 15:57:40 +09:00
Salman Ahmed
8f80a22ef9 Fix osu! and catch hitobjects no longer scaled to 1 by default 2022-07-19 07:00:13 +03:00
Salman Ahmed
5ddb5a3d74 Introduce HitObjectProperty<T> 2022-07-19 05:39:10 +03:00
Dean Herbert
f71f6302fd Remove unnecessary null casts 2022-06-24 14:50:11 +09:00
Dan Balasescu
e0c82d11ab Convert == usages to ReferenceEquals 2022-06-20 16:56:19 +09:00
Dan Balasescu
fd9902e816 Manual #nullable processing 2022-06-17 16:38:35 +09:00
Dan Balasescu
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Dan Balasescu
9259aa94f1 Fix Catmull slider parsing with duplicate initial point 2022-05-24 11:47:42 +09:00
Dan Balasescu
731f0960ec Don't merge adjacent legacy Catmull segments 2022-05-18 17:16:24 +09:00
Dean Herbert
10e41d018a Fix toggling hit animations on the editor not applying immediately 2022-05-12 17:36:35 +09:00
Dean Herbert
977e6d8a80 Add xmldoc for IDistanceSnapProvider and related properties 2022-05-05 16:25:45 +09:00
Salman Ahmed
59cf3ff50f Move distancing methods from IPositionSnapProvider to IDistanceSnapProvider 2022-04-28 05:48:45 +03:00
Dean Herbert
c079a9cd32 Add comment regarding equality check importance in LegacyHitSampleInfo 2022-03-23 20:18:44 +09:00
Dean Herbert
997c091a8d Revert "Remove IsLayered from LegacyHitSampleInfo comparison"
This reverts commit 4523393208.
2022-03-23 20:15:17 +09:00
Dean Herbert
2ea9e5245c Revert "Remove IsLayered from GetHasCode implementation"
This reverts commit 16ee6b5fc7.
2022-03-23 20:15:13 +09:00
Dean Herbert
16ee6b5fc7 Remove IsLayered from GetHasCode implementation 2022-03-14 18:12:04 +09:00
Dean Herbert
4523393208 Remove IsLayered from LegacyHitSampleInfo comparison
The equality of samples is generally used to compare the sample
equality, not its full properties. For instance, we don't compare
`Volume` in the base implementation.

Having `IsLayered` here breaks actual usages of equality, ie. for
pooling purposes.
2022-03-14 17:19:48 +09:00
Dean Herbert
8676a2587c Add the ability for HitObjects to specify auxiliary samples 2022-03-14 17:19:48 +09:00
Bartłomiej Dach
735414bc49
Replace TimeSignatures enum with struct for storage of arbitrary meter 2022-01-22 20:50:31 +01:00
Dean Herbert
eb5f15a77e
Merge pull request #16420 from bdach/slider-paste-parsing-failures-2
Fix pasted sliders having sample points with time at infinity
2022-01-13 23:28:49 +09:00
Joseph Madamba
5185f6010e Fix missed identifier typos 2022-01-12 15:46:20 -08:00
Bartłomiej Dach
afce976f08
Fix oversubscription to StartTimeBindable.ValueChanged 2022-01-12 19:29:49 +01:00
Bartłomiej Dach
07fc772c24
Merge branch 'master' into slider-paste-parsing-failures-2 2022-01-12 19:06:36 +01:00
Bartłomiej Dach
80ccff9068
Remove no longer necessary guards against default control points
The subscription in which the guards were present was moved from
constructor to `ApplyDefaults()`, and at that point neither the sample
control point or the difficulty point can be the default point, because
there are explicit paths that overwrite those with blank points in the
same methods, prior to the subscription's registration.

The only worry would be that someone would set the default point on the
object themselves, but at that point that is most likely programmer
error anyhow.
2022-01-11 22:14:47 +01:00
Bartłomiej Dach
7a25fe79b7
Fix sample control point time being calculated before defaults applied
In editor contexts, the `StartTimeBindable` subscription in `HitObject`
was firing before defaults were applied, which in the case of sliders
manifested in an infinite end time. `ApplyDefaults()` also did not
always set the time of the control point to the correct value, which
matters when the beatmap is encoded.

Ensure that the control points receive the correct time values during
default application, and only register the `StartTimeBindable` change
callback after defaults have been successfully applied.
2022-01-11 21:38:59 +01:00
Bartłomiej Dach
c09f6ee052
Use slider snapping more liberally to match user expectations
Previously the slider path length would be snapped using the current
beat snap setting on *every* change of the slider path. As it turns out
this is unexpected behaviour in some situations (e.g. when reversing a
path, which is expected to preserve the previous duration, even though
the slider may be technically "unsnapped" at that point in time due to a
different beat snap setting being selected afterwards).
2022-01-07 16:02:04 +01:00
Dean Herbert
bb54f438aa Merge branch 'master' into positional-sounds-strength-adjustment 2022-01-03 12:40:56 +09:00
Joseph Madamba
7de43e3aba Fix most open compound words in identifiers being closed 2021-12-27 20:26:28 -08:00
mk-56
fd5af1fbe7 Code refactor and name changes
cleaned code up with Jetbrains i hope it suffices
2021-12-17 13:16:06 +01:00
mk-56
cd095b5f7d Merge remote-tracking branch 'origin/positional-sounds-strength-adjustment' into positional-sounds-strength-adjustment 2021-11-28 14:21:26 +01:00
mk-56
9c42cc0c05 Fix 2021-11-28 14:12:39 +01:00