Skip to content

Commit 1f1a174

Browse files
committed
Remove no longer required nested object reposition hacks
As touched on in ppy#30237 (comment), these types of maneouvers are no longer required after ppy#30021 - although as it turns out on closer inspection, these things being there still *did not actually break anything*, because the `slider.Path` mutation at the end of `modifySlider()` causes `updateNestedPositions()` to be called eventually anyway. So this is at mostly a code quality upgrade.
1 parent 275b86c commit 1f1a174

File tree

1 file changed

+5
-14
lines changed

1 file changed

+5
-14
lines changed

osu.Game.Rulesets.Osu/Utils/OsuHitObjectGenerationUtils.cs

+5-14
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
using System;
55
using System.Linq;
6-
using osu.Framework.Extensions.IEnumerableExtensions;
76
using osu.Game.Rulesets.Osu.UI;
87
using osu.Game.Rulesets.Objects;
98
using osu.Game.Rulesets.Osu.Beatmaps;
@@ -117,10 +116,9 @@ public static void ReflectHorizontallyAlongPlayfield(OsuHitObject osuObject)
117116
if (osuObject is not Slider slider)
118117
return;
119118

120-
void reflectNestedObject(OsuHitObject nested) => nested.Position = new Vector2(OsuPlayfield.BASE_SIZE.X - nested.Position.X, nested.Position.Y);
121119
static void reflectControlPoint(PathControlPoint point) => point.Position = new Vector2(-point.Position.X, point.Position.Y);
122120

123-
modifySlider(slider, reflectNestedObject, reflectControlPoint);
121+
modifySlider(slider, reflectControlPoint);
124122
}
125123

126124
/// <summary>
@@ -134,10 +132,9 @@ public static void ReflectVerticallyAlongPlayfield(OsuHitObject osuObject)
134132
if (osuObject is not Slider slider)
135133
return;
136134

137-
void reflectNestedObject(OsuHitObject nested) => nested.Position = new Vector2(nested.Position.X, OsuPlayfield.BASE_SIZE.Y - nested.Position.Y);
138135
static void reflectControlPoint(PathControlPoint point) => point.Position = new Vector2(point.Position.X, -point.Position.Y);
139136

140-
modifySlider(slider, reflectNestedObject, reflectControlPoint);
137+
modifySlider(slider, reflectControlPoint);
141138
}
142139

143140
/// <summary>
@@ -146,10 +143,9 @@ public static void ReflectVerticallyAlongPlayfield(OsuHitObject osuObject)
146143
/// <param name="slider">The slider to be flipped.</param>
147144
public static void FlipSliderInPlaceHorizontally(Slider slider)
148145
{
149-
void flipNestedObject(OsuHitObject nested) => nested.Position = new Vector2(slider.X - (nested.X - slider.X), nested.Y);
150146
static void flipControlPoint(PathControlPoint point) => point.Position = new Vector2(-point.Position.X, point.Position.Y);
151147

152-
modifySlider(slider, flipNestedObject, flipControlPoint);
148+
modifySlider(slider, flipControlPoint);
153149
}
154150

155151
/// <summary>
@@ -159,18 +155,13 @@ public static void FlipSliderInPlaceHorizontally(Slider slider)
159155
/// <param name="rotation">The angle, measured in radians, to rotate the slider by.</param>
160156
public static void RotateSlider(Slider slider, float rotation)
161157
{
162-
void rotateNestedObject(OsuHitObject nested) => nested.Position = rotateVector(nested.Position - slider.Position, rotation) + slider.Position;
163158
void rotateControlPoint(PathControlPoint point) => point.Position = rotateVector(point.Position, rotation);
164159

165-
modifySlider(slider, rotateNestedObject, rotateControlPoint);
160+
modifySlider(slider, rotateControlPoint);
166161
}
167162

168-
private static void modifySlider(Slider slider, Action<OsuHitObject> modifyNestedObject, Action<PathControlPoint> modifyControlPoint)
163+
private static void modifySlider(Slider slider, Action<PathControlPoint> modifyControlPoint)
169164
{
170-
// No need to update the head and tail circles, since slider handles that when the new slider path is set
171-
slider.NestedHitObjects.OfType<SliderTick>().ForEach(modifyNestedObject);
172-
slider.NestedHitObjects.OfType<SliderRepeat>().ForEach(modifyNestedObject);
173-
174165
var controlPoints = slider.Path.ControlPoints.Select(p => new PathControlPoint(p.Position, p.Type)).ToArray();
175166
foreach (var point in controlPoints)
176167
modifyControlPoint(point);

0 commit comments

Comments
 (0)