diff --git a/osu.Game.Rulesets.Mania/Objects/Drawables/DrawableHoldNote.cs b/osu.Game.Rulesets.Mania/Objects/Drawables/DrawableHoldNote.cs
index f8b2311a13..59808c5643 100644
--- a/osu.Game.Rulesets.Mania/Objects/Drawables/DrawableHoldNote.cs
+++ b/osu.Game.Rulesets.Mania/Objects/Drawables/DrawableHoldNote.cs
@@ -191,6 +191,13 @@ namespace osu.Game.Rulesets.Mania.Objects.Drawables
///
private class DrawableTailNote : DrawableNote
{
+ ///
+ /// Lenience of release hit windows. This is to make cases where the hold note release
+ /// is timed alongside presses of other hit objects less awkward.
+ /// Todo: This shouldn't exist for non-LegacyBeatmapDecoder beatmaps
+ ///
+ private const double release_window_lenience = 1.5;
+
private readonly DrawableHoldNote holdNote;
public DrawableTailNote(DrawableHoldNote holdNote, ManiaAction action)
@@ -203,6 +210,9 @@ namespace osu.Game.Rulesets.Mania.Objects.Drawables
protected override void CheckForJudgements(bool userTriggered, double timeOffset)
{
+ // Factor in the release lenience
+ timeOffset /= release_window_lenience;
+
if (!userTriggered)
{
if (!HitObject.HitWindows.CanBeHit(timeOffset))
diff --git a/osu.Game.Rulesets.Mania/Objects/HoldNote.cs b/osu.Game.Rulesets.Mania/Objects/HoldNote.cs
index 12e3d2de51..22fa93a308 100644
--- a/osu.Game.Rulesets.Mania/Objects/HoldNote.cs
+++ b/osu.Game.Rulesets.Mania/Objects/HoldNote.cs
@@ -55,7 +55,7 @@ namespace osu.Game.Rulesets.Mania.Objects
///
/// The tail note of the hold.
///
- public readonly Note Tail = new TailNote();
+ public readonly Note Tail = new Note();
///
/// The time between ticks of this hold.
@@ -94,25 +94,5 @@ namespace osu.Game.Rulesets.Mania.Objects
});
}
}
-
- ///
- /// The tail of the hold note.
- ///
- private class TailNote : Note
- {
- ///
- /// Lenience of release hit windows. This is to make cases where the hold note release
- /// is timed alongside presses of other hit objects less awkward.
- /// Todo: This shouldn't exist for non-LegacyBeatmapDecoder beatmaps
- ///
- private const double release_window_lenience = 1.5;
-
- protected override void ApplyDefaultsToSelf(ControlPointInfo controlPointInfo, BeatmapDifficulty difficulty)
- {
- base.ApplyDefaultsToSelf(controlPointInfo, difficulty);
-
- HitWindows *= release_window_lenience;
- }
- }
}
}
diff --git a/osu.Game/Rulesets/Objects/HitWindows.cs b/osu.Game/Rulesets/Objects/HitWindows.cs
index 7610593d6a..3717209860 100644
--- a/osu.Game/Rulesets/Objects/HitWindows.cs
+++ b/osu.Game/Rulesets/Objects/HitWindows.cs
@@ -135,39 +135,5 @@ namespace osu.Game.Rulesets.Objects
/// The time offset.
/// Whether the can be hit at any point in the future from this time offset.
public bool CanBeHit(double timeOffset) => timeOffset <= HalfWindowFor(HitResult.Meh);
-
- ///
- /// Multiplies all hit windows by a value.
- ///
- /// The hit windows to multiply.
- /// The value to multiply each hit window by.
- public static HitWindows operator *(HitWindows windows, double value)
- {
- windows.Perfect *= value;
- windows.Great *= value;
- windows.Good *= value;
- windows.Ok *= value;
- windows.Meh *= value;
- windows.Miss *= value;
-
- return windows;
- }
-
- ///
- /// Divides all hit windows by a value.
- ///
- /// The hit windows to divide.
- /// The value to divide each hit window by.
- public static HitWindows operator /(HitWindows windows, double value)
- {
- windows.Perfect /= value;
- windows.Great /= value;
- windows.Good /= value;
- windows.Ok /= value;
- windows.Meh /= value;
- windows.Miss /= value;
-
- return windows;
- }
}
}