1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-15 15:17:44 +08:00
Commit Graph

764 Commits

Author SHA1 Message Date
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
mk-56
9065179c52 Fix 2021-11-28 14:09:30 +01:00
mk-56
c3fb793762 Fixed the problems that were brought up and deleted the old bind logic 2021-11-28 14:06:53 +01:00
mk-56
e83115ad5e Binding logic fix, nullification of unnecessary path 2021-11-28 03:25:11 +01:00
mk-56
eaa464e548 Initial implementation of adjustable positional hitobject audio strength 2021-11-28 02:58:08 +01:00
Dean Herbert
5c7623e68e
Merge pull request #15255 from goodtrailer/node-samples-ilist
Change IHasRepeats.NodeSamples to IList from List
2021-10-28 14:24:26 +09:00
Dean Herbert
add39fbd4f Merge branch 'master' into fix-skin-layout-editor-crash 2021-10-28 06:24:24 +09:00
Dean Herbert
6944151486 Apply batch fixing of built-in types using var 2021-10-27 13:04:41 +09:00
Dean Herbert
d5b4c68d3a Merge branch 'master' into fix-slider-path-extension-incorrectness 2021-10-26 17:36:50 +09:00
Dan Balasescu
6a6d3a5e8a
Merge pull request #15304 from peppy/fix-editor-new-beatmap-sample-change-crash
Fix editor crash when attempting to change sample/velocity from timeline on new beatmap
2021-10-26 17:13:56 +09:00
Dean Herbert
dae7cdc4c5 Ensure HitObject-local control points are non-default after ApplyDefaults
We will probably want to make this whole flow more efficient in the
future, but this should suffice for now.
2021-10-26 16:06:03 +09:00
Dean Herbert
81fee02c2b Fix slider paths being extended even when the last two points are equal 2021-10-26 15:47:59 +09:00
Jason Won
a582976851 reversing slider maintains shape 2021-10-26 00:05:46 -04:00
goodtrailer
0affe7b79d Remove unnecessary using 2021-10-23 02:25:20 -07:00
goodtrailer
4440b9ca11 Change IHasRepeats.NodeSamples to IList from List 2021-10-23 01:59:07 -07:00
Dean Herbert
93482414d6 Remove SkinConfiguration subclasses and allow configuration parsing for all skin types 2021-10-22 14:42:23 +09: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
46bafb6252 Merge branch 'master' into no-more-difficulty-control-points-info 2021-09-28 13:53:56 +09:00
Dean Herbert
16e60eed56 Reduce NestedHitObject enumerator overhead
This was especially bad due to it allocating on any and every start time
change, even the first (see usage in `HitObject.ctor`).
2021-09-20 15:09:27 +09:00
Dean Herbert
a7ae3cc03e Change SampleControlPoint time to use leniency in bindable changed event too 2021-09-14 16:24:55 +09:00
Dean Herbert
cd227213e6 Ensure time of HitObject related ControlPoints are kept in sync with the hitobject 2021-09-10 15:59:30 +09:00
Dean Herbert
714f55b6bc Clone control points when copying to HitObjects 2021-09-10 14:36:39 +09:00
Dean Herbert
6894ed3426 Fix new ordering of retrieval meaning EndTime is not available in time 2021-09-03 17:11:12 +09:00
Dean Herbert
74f385bad8 Assign default control points earlier in HitObject construction 2021-09-03 17:11:12 +09:00
Dean Herbert
1aff4c2238 Ensure all hitobject level control points are populated before calling virtual defaults application 2021-09-03 17:11:12 +09:00
Dean Herbert
a3d9ab1e2e Move approach rate to EffectControlPoint 2021-09-03 16:58:16 +09:00
Dean Herbert
b41b1e2394 Write out DifficultyControlPoints into HitObjects 2021-09-03 16:58:16 +09:00
Dean Herbert
d988aa1680 Actually serialise SampleControlPoints along with HitObjects 2021-08-31 15:14:03 +09:00
Dean Herbert
4da2dca339 Apply the default SampleControlPoint if not externally provided
This is mostly to handle tests for now, as generally this should be
provided by an external source in all other cases.
2021-08-30 17:21:07 +09:00
Dean Herbert
ccacf56dd8 Move to legacy namespace 2021-08-30 17:14:53 +09:00
Dean Herbert
7257aae7f2 Move samples to LegacyControlPointInfo 2021-08-30 17:14:53 +09:00