mirror of
https://github.com/ppy/osu
synced 2025-02-01 19:02:00 +00:00
Fix div-by-zero when scaling a 1-dimensional slider
This commit is contained in:
parent
ab1a1a1df4
commit
8de68e0ebf
@ -205,10 +205,12 @@ namespace osu.Game.Rulesets.Osu.Edit
|
|||||||
|
|
||||||
Quad sliderQuad = getSurroundingQuad(slider.Path.ControlPoints.Select(p => p.Position.Value));
|
Quad sliderQuad = getSurroundingQuad(slider.Path.ControlPoints.Select(p => p.Position.Value));
|
||||||
|
|
||||||
// Limit minimum distance between control points after scaling to almost 0. Less than 0 causes the slider to flip, exactly 0 causes a crash through division by 0.
|
// Limit minimum distance between control points after scaling to almost 0. Less than 0 causes the slider to flip, exactly 0 causes a crash through division by 0.
|
||||||
scale = Vector2.ComponentMax(new Vector2(Precision.FLOAT_EPSILON), sliderQuad.Size + scale) - sliderQuad.Size;
|
scale = Vector2.ComponentMax(new Vector2(Precision.FLOAT_EPSILON), sliderQuad.Size + scale) - sliderQuad.Size;
|
||||||
|
|
||||||
Vector2 pathRelativeDeltaScale = new Vector2(1 + scale.X / sliderQuad.Width, 1 + scale.Y / sliderQuad.Height);
|
Vector2 pathRelativeDeltaScale = new Vector2(
|
||||||
|
sliderQuad.Width == 0 ? 0 : 1 + scale.X / sliderQuad.Width,
|
||||||
|
sliderQuad.Height == 0 ? 0 : 1 + scale.Y / sliderQuad.Height);
|
||||||
|
|
||||||
Queue<Vector2> oldControlPoints = new Queue<Vector2>();
|
Queue<Vector2> oldControlPoints = new Queue<Vector2>();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user