diff --git a/osu.Game/Beatmaps/ControlPoints/ControlPoint.cs b/osu.Game/Beatmaps/ControlPoints/ControlPoint.cs
index 90c0ded38f..9ed476d97c 100644
--- a/osu.Game/Beatmaps/ControlPoints/ControlPoint.cs
+++ b/osu.Game/Beatmaps/ControlPoints/ControlPoint.cs
@@ -15,15 +15,14 @@ namespace osu.Game.Beatmaps.ControlPoints
public int CompareTo(ControlPoint other) => Time.CompareTo(other.Time);
///
- /// Whether this provides the same changes to gameplay as another .
+ /// Whether this provides the same parametric changes as another .
+ /// Basically an equality check without considering the .
///
/// The to compare to.
- /// Whether this provides the same changes to gameplay as .
- public virtual bool ChangeEquals(ControlPoint other) => !ReferenceEquals(null, other);
+ /// Whether this is equivalent to .
+ public virtual bool EquivalentTo(ControlPoint other) => true;
public bool Equals(ControlPoint other)
- => ChangeEquals(other)
- && !ReferenceEquals(null, other)
- && Time.Equals(other.Time);
+ => EquivalentTo(other) && Time.Equals(other?.Time);
}
}
diff --git a/osu.Game/Beatmaps/ControlPoints/DifficultyControlPoint.cs b/osu.Game/Beatmaps/ControlPoints/DifficultyControlPoint.cs
index f821ff11f4..526bddf51a 100644
--- a/osu.Game/Beatmaps/ControlPoints/DifficultyControlPoint.cs
+++ b/osu.Game/Beatmaps/ControlPoints/DifficultyControlPoint.cs
@@ -18,8 +18,8 @@ namespace osu.Game.Beatmaps.ControlPoints
private double speedMultiplier = 1;
- public override bool ChangeEquals(ControlPoint other)
- => base.ChangeEquals(other)
+ public override bool EquivalentTo(ControlPoint other)
+ => base.EquivalentTo(other)
&& other is DifficultyControlPoint difficulty
&& SpeedMultiplier.Equals(difficulty.SpeedMultiplier);
}
diff --git a/osu.Game/Beatmaps/ControlPoints/EffectControlPoint.cs b/osu.Game/Beatmaps/ControlPoints/EffectControlPoint.cs
index 0cbdf7fdf2..dd9d568133 100644
--- a/osu.Game/Beatmaps/ControlPoints/EffectControlPoint.cs
+++ b/osu.Game/Beatmaps/ControlPoints/EffectControlPoint.cs
@@ -15,8 +15,8 @@ namespace osu.Game.Beatmaps.ControlPoints
///
public bool OmitFirstBarLine;
- public override bool ChangeEquals(ControlPoint other)
- => base.ChangeEquals(other)
+ public override bool EquivalentTo(ControlPoint other)
+ => base.EquivalentTo(other)
&& other is EffectControlPoint effect
&& KiaiMode.Equals(effect.KiaiMode)
&& OmitFirstBarLine.Equals(effect.OmitFirstBarLine);
diff --git a/osu.Game/Beatmaps/ControlPoints/SampleControlPoint.cs b/osu.Game/Beatmaps/ControlPoints/SampleControlPoint.cs
index 77d42551c6..acccbcde46 100644
--- a/osu.Game/Beatmaps/ControlPoints/SampleControlPoint.cs
+++ b/osu.Game/Beatmaps/ControlPoints/SampleControlPoint.cs
@@ -45,8 +45,8 @@ namespace osu.Game.Beatmaps.ControlPoints
return newSampleInfo;
}
- public override bool ChangeEquals(ControlPoint other)
- => base.ChangeEquals(other)
+ public override bool EquivalentTo(ControlPoint other)
+ => base.EquivalentTo(other)
&& other is SampleControlPoint sample
&& SampleBank.Equals(sample.SampleBank)
&& SampleVolume.Equals(sample.SampleVolume);
diff --git a/osu.Game/Beatmaps/ControlPoints/TimingControlPoint.cs b/osu.Game/Beatmaps/ControlPoints/TimingControlPoint.cs
index 8fe3257786..eb60133fed 100644
--- a/osu.Game/Beatmaps/ControlPoints/TimingControlPoint.cs
+++ b/osu.Game/Beatmaps/ControlPoints/TimingControlPoint.cs
@@ -24,8 +24,8 @@ namespace osu.Game.Beatmaps.ControlPoints
private double beatLength = 1000;
- public override bool ChangeEquals(ControlPoint other)
- => base.ChangeEquals(other)
+ public override bool EquivalentTo(ControlPoint other)
+ => base.EquivalentTo(other)
&& other is TimingControlPoint timing
&& TimeSignature.Equals(timing.TimeSignature)
&& BeatLength.Equals(timing.BeatLength);
diff --git a/osu.Game/Beatmaps/Formats/LegacyBeatmapDecoder.cs b/osu.Game/Beatmaps/Formats/LegacyBeatmapDecoder.cs
index fe55d19908..c79938e613 100644
--- a/osu.Game/Beatmaps/Formats/LegacyBeatmapDecoder.cs
+++ b/osu.Game/Beatmaps/Formats/LegacyBeatmapDecoder.cs
@@ -359,7 +359,7 @@ namespace osu.Game.Beatmaps.Formats
{
var existing = beatmap.ControlPointInfo.DifficultyPointAt(newPoint.Time);
- if (newPoint.ChangeEquals(existing))
+ if (newPoint.EquivalentTo(existing))
return;
beatmap.ControlPointInfo.DifficultyPoints.RemoveAll(x => x.Time == newPoint.Time);
@@ -370,7 +370,7 @@ namespace osu.Game.Beatmaps.Formats
{
var existing = beatmap.ControlPointInfo.EffectPointAt(newPoint.Time);
- if (newPoint.ChangeEquals(existing))
+ if (newPoint.EquivalentTo(existing))
return;
beatmap.ControlPointInfo.EffectPoints.Add(newPoint);
@@ -380,7 +380,7 @@ namespace osu.Game.Beatmaps.Formats
{
var existing = beatmap.ControlPointInfo.SamplePointAt(newPoint.Time);
- if (newPoint.ChangeEquals(existing))
+ if (newPoint.EquivalentTo(existing))
return;
beatmap.ControlPointInfo.SamplePoints.Add(newPoint);
diff --git a/osu.Game/Beatmaps/Formats/LegacyDecoder.cs b/osu.Game/Beatmaps/Formats/LegacyDecoder.cs
index f5e3a34462..22a6acf459 100644
--- a/osu.Game/Beatmaps/Formats/LegacyDecoder.cs
+++ b/osu.Game/Beatmaps/Formats/LegacyDecoder.cs
@@ -184,8 +184,8 @@ namespace osu.Game.Beatmaps.Formats
return baseInfo;
}
- public override bool ChangeEquals(ControlPoint other)
- => base.ChangeEquals(other)
+ public override bool EquivalentTo(ControlPoint other)
+ => base.EquivalentTo(other)
&& other is LegacySampleControlPoint legacy
&& CustomSampleBank == legacy.CustomSampleBank;
}