Fix slider paths being extended even when the last two points are equal

This commit is contained in:
Dean Herbert 2021-10-26 15:46:15 +09:00
parent f687ed8599
commit 81fee02c2b
1 changed files with 7 additions and 0 deletions

View File

@ -280,6 +280,13 @@ private void calculateLength()
if (ExpectedDistance.Value is double expectedDistance && calculatedLength != expectedDistance)
{
// In osu-stable, if the last two control points of a slider are equal, extension is not performed.
if (ControlPoints.Count >= 2 && ControlPoints[^1].Position == ControlPoints[^2].Position && expectedDistance > calculatedLength)
{
cumulativeLength.Add(calculatedLength);
return;
}
// The last length is always incorrect
cumulativeLength.RemoveAt(cumulativeLength.Count - 1);