diff --git a/osu.Game.Rulesets.Osu/Mods/OsuModHardRock.cs b/osu.Game.Rulesets.Osu/Mods/OsuModHardRock.cs
index 5430929143..19d4a1bf83 100644
--- a/osu.Game.Rulesets.Osu/Mods/OsuModHardRock.cs
+++ b/osu.Game.Rulesets.Osu/Mods/OsuModHardRock.cs
@@ -20,7 +20,7 @@ namespace osu.Game.Rulesets.Osu.Mods
{
var osuObject = (OsuHitObject)hitObject;
- OsuHitObjectGenerationUtils.ReflectVertically(osuObject);
+ OsuHitObjectGenerationUtils.ReflectVerticallyAlongPlayfield(osuObject);
}
}
}
diff --git a/osu.Game.Rulesets.Osu/Mods/OsuModMirror.cs b/osu.Game.Rulesets.Osu/Mods/OsuModMirror.cs
index 0a54d58718..6d01808fb5 100644
--- a/osu.Game.Rulesets.Osu/Mods/OsuModMirror.cs
+++ b/osu.Game.Rulesets.Osu/Mods/OsuModMirror.cs
@@ -27,16 +27,16 @@ namespace osu.Game.Rulesets.Osu.Mods
switch (Reflection.Value)
{
case MirrorType.Horizontal:
- OsuHitObjectGenerationUtils.ReflectHorizontally(osuObject);
+ OsuHitObjectGenerationUtils.ReflectHorizontallyAlongPlayfield(osuObject);
break;
case MirrorType.Vertical:
- OsuHitObjectGenerationUtils.ReflectVertically(osuObject);
+ OsuHitObjectGenerationUtils.ReflectVerticallyAlongPlayfield(osuObject);
break;
case MirrorType.Both:
- OsuHitObjectGenerationUtils.ReflectHorizontally(osuObject);
- OsuHitObjectGenerationUtils.ReflectVertically(osuObject);
+ OsuHitObjectGenerationUtils.ReflectHorizontallyAlongPlayfield(osuObject);
+ OsuHitObjectGenerationUtils.ReflectVerticallyAlongPlayfield(osuObject);
break;
}
}
diff --git a/osu.Game.Rulesets.Osu/Mods/OsuModRandom.cs b/osu.Game.Rulesets.Osu/Mods/OsuModRandom.cs
index 58f5b2fa8d..307d731fd4 100644
--- a/osu.Game.Rulesets.Osu/Mods/OsuModRandom.cs
+++ b/osu.Game.Rulesets.Osu/Mods/OsuModRandom.cs
@@ -67,7 +67,7 @@ namespace osu.Game.Rulesets.Osu.Mods
if (positionInfos[i].HitObject is Slider slider && random.NextDouble() < 0.5)
{
- OsuHitObjectGenerationUtils.FlipSliderHorizontally(slider);
+ OsuHitObjectGenerationUtils.FlipSliderInPlaceHorizontally(slider);
}
if (i == 0)
diff --git a/osu.Game.Rulesets.Osu/Utils/OsuHitObjectGenerationUtils.cs b/osu.Game.Rulesets.Osu/Utils/OsuHitObjectGenerationUtils.cs
index 5b327fc3b0..15bc03261f 100644
--- a/osu.Game.Rulesets.Osu/Utils/OsuHitObjectGenerationUtils.cs
+++ b/osu.Game.Rulesets.Osu/Utils/OsuHitObjectGenerationUtils.cs
@@ -112,21 +112,24 @@ namespace osu.Game.Rulesets.Osu.Utils
/// Reflects the position of the in the playfield horizontally.
///
/// The object to reflect.
- public static void ReflectHorizontally(OsuHitObject osuObject)
+ public static void ReflectHorizontallyAlongPlayfield(OsuHitObject osuObject)
{
osuObject.Position = new Vector2(OsuPlayfield.BASE_SIZE.X - osuObject.X, osuObject.Position.Y);
if (osuObject is not Slider slider)
return;
- FlipSliderHorizontally(slider);
+ void flipNestedObject(OsuHitObject nested) => nested.Position = new Vector2(OsuPlayfield.BASE_SIZE.X - nested.Position.X, nested.Position.Y);
+ static void flipControlPoint(PathControlPoint point) => point.Position = new Vector2(-point.Position.X, point.Position.Y);
+
+ modifySlider(slider, flipNestedObject, flipControlPoint);
}
///
/// Reflects the position of the in the playfield vertically.
///
/// The object to reflect.
- public static void ReflectVertically(OsuHitObject osuObject)
+ public static void ReflectVerticallyAlongPlayfield(OsuHitObject osuObject)
{
osuObject.Position = new Vector2(osuObject.Position.X, OsuPlayfield.BASE_SIZE.Y - osuObject.Y);
@@ -139,6 +142,18 @@ namespace osu.Game.Rulesets.Osu.Utils
modifySlider(slider, flipNestedObject, flipControlPoint);
}
+ ///
+ /// Flips the position of the around its start position horizontally.
+ ///
+ /// The slider to be flipped.
+ public static void FlipSliderInPlaceHorizontally(Slider slider)
+ {
+ void flipNestedObject(OsuHitObject nested) => nested.Position = new Vector2(slider.X - (nested.X - slider.X), nested.Y);
+ static void flipControlPoint(PathControlPoint point) => point.Position = new Vector2(-point.Position.X, point.Position.Y);
+
+ modifySlider(slider, flipNestedObject, flipControlPoint);
+ }
+
///
/// Rotate a slider about its start position by the specified angle.
///
@@ -152,17 +167,6 @@ namespace osu.Game.Rulesets.Osu.Utils
modifySlider(slider, rotateNestedObject, rotateControlPoint);
}
- ///
- /// Flips the slider about its start position horizontally.
- ///
- public static void FlipSliderHorizontally(Slider slider)
- {
- void flipNestedObject(OsuHitObject nested) => nested.Position = new Vector2(slider.X - (nested.X - slider.X), nested.Y);
- static void flipControlPoint(PathControlPoint point) => point.Position = new Vector2(-point.Position.X, point.Position.Y);
-
- modifySlider(slider, flipNestedObject, flipControlPoint);
- }
-
private static void modifySlider(Slider slider, Action modifyNestedObject, Action modifyControlPoint)
{
// No need to update the head and tail circles, since slider handles that when the new slider path is set