Add back autogeneration rules

Will be removed in https://github.com/ppy/osu/pull/6604
This commit is contained in:
Dean Herbert 2019-10-26 10:25:13 +09:00
parent 7100319858
commit d6a49b9e93
3 changed files with 16 additions and 12 deletions

View File

@ -30,10 +30,19 @@ namespace osu.Game.Beatmaps.ControlPoints
public void Add(ControlPoint point) public void Add(ControlPoint point)
{ {
point.AttachGroup(this); var existing = controlPoints.FirstOrDefault(p => p.GetType() == point.GetType());
if (existing != null)
{
// autogenerated points should not replace non-autogenerated.
// this allows for incorrectly ordered timing points to still be correctly handled.
if (point.AutoGenerated && !existing.AutoGenerated)
return;
foreach (var existing in controlPoints.Where(p => p.GetType() == point.GetType()).ToArray())
Remove(existing); Remove(existing);
}
point.AttachGroup(this);
controlPoints.Add(point); controlPoints.Add(point);
ItemAdded?.Invoke(point); ItemAdded?.Invoke(point);

View File

@ -184,9 +184,6 @@ namespace osu.Game.Beatmaps.ControlPoints
public void Add(double time, ControlPoint newPoint, bool force = false) public void Add(double time, ControlPoint newPoint, bool force = false)
{ {
if (!force && SimilarPointAt(time, newPoint)?.EquivalentTo(newPoint) == true)
return;
GroupAt(time, true).Add(newPoint); GroupAt(time, true).Add(newPoint);
} }

View File

@ -374,14 +374,12 @@ namespace osu.Game.Beatmaps.Formats
beatmap.ControlPointInfo.Add(time, controlPoint); beatmap.ControlPointInfo.Add(time, controlPoint);
} }
else
beatmap.ControlPointInfo.Add(time, new DifficultyControlPoint
{ {
beatmap.ControlPointInfo.Add(time, new DifficultyControlPoint SpeedMultiplier = speedMultiplier,
{ AutoGenerated = timingChange
SpeedMultiplier = speedMultiplier, });
AutoGenerated = false
});
}
beatmap.ControlPointInfo.Add(time, new EffectControlPoint beatmap.ControlPointInfo.Add(time, new EffectControlPoint
{ {