mirror of https://github.com/ppy/osu
Always encode perfect curves as explicit segments
This commit is contained in:
parent
d4c55070e7
commit
d81f270e21
|
@ -333,9 +333,10 @@ private void addPathData(TextWriter writer, IHasPath pathData, Vector2 position)
|
||||||
|
|
||||||
// Explicit segments have a new format in which the type is injected into the middle of the control point string.
|
// Explicit segments have a new format in which the type is injected into the middle of the control point string.
|
||||||
// To preserve compatibility with osu-stable as much as possible, explicit segments with the same type are converted to use implicit segments by duplicating the control point.
|
// To preserve compatibility with osu-stable as much as possible, explicit segments with the same type are converted to use implicit segments by duplicating the control point.
|
||||||
bool needsExplicitSegment = point.Type.Value != lastType;
|
// One exception are consecutive perfect curves, which aren't supported in osu-stable
|
||||||
|
bool needsExplicitSegment = point.Type.Value != lastType || point.Type.Value == PathType.PerfectCurve;
|
||||||
|
|
||||||
// One exception to this is when the last two control points of the last segment were duplicated. This is not a scenario supported by osu!stable.
|
// Another exception to this is when the last two control points of the last segment were duplicated. This is not a scenario supported by osu!stable.
|
||||||
// Lazer does not add implicit segments for the last two control points of _any_ explicit segment, so an explicit segment is forced in order to maintain consistency with the decoder.
|
// Lazer does not add implicit segments for the last two control points of _any_ explicit segment, so an explicit segment is forced in order to maintain consistency with the decoder.
|
||||||
if (i > 1)
|
if (i > 1)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue