mirror of
https://github.com/ppy/osu.git
synced 2025-02-19 11:23:23 +08:00
Refactor applyLegacyInfoAndDefaults
for legibility
This commit is contained in:
parent
588a4e6196
commit
cca15f930c
@ -101,9 +101,14 @@ namespace osu.Game.Beatmaps.Formats
|
|||||||
|
|
||||||
private void applyLegacyInfoAndDefaults(HitObject hitObject)
|
private void applyLegacyInfoAndDefaults(HitObject hitObject)
|
||||||
{
|
{
|
||||||
var legacyInfo = beatmap.ControlPointInfo as LegacyControlPointInfo;
|
DifficultyControlPoint difficultyControlPoint = DifficultyControlPoint.DEFAULT;
|
||||||
|
SampleControlPoint sampleControlPoint = SampleControlPoint.DEFAULT;
|
||||||
|
|
||||||
DifficultyControlPoint difficultyControlPoint = legacyInfo != null ? legacyInfo.DifficultyPointAt(hitObject.StartTime) : DifficultyControlPoint.DEFAULT;
|
if (beatmap.ControlPointInfo is LegacyControlPointInfo legacyInfo)
|
||||||
|
{
|
||||||
|
difficultyControlPoint = legacyInfo.DifficultyPointAt(hitObject.StartTime);
|
||||||
|
sampleControlPoint = legacyInfo.SamplePointAt(hitObject.GetEndTime() + control_point_leniency);
|
||||||
|
}
|
||||||
|
|
||||||
if (difficultyControlPoint is LegacyDifficultyControlPoint legacyDifficultyControlPoint)
|
if (difficultyControlPoint is LegacyDifficultyControlPoint legacyDifficultyControlPoint)
|
||||||
{
|
{
|
||||||
@ -117,20 +122,19 @@ namespace osu.Game.Beatmaps.Formats
|
|||||||
|
|
||||||
hitObject.ApplyDefaults(beatmap.ControlPointInfo, beatmap.Difficulty);
|
hitObject.ApplyDefaults(beatmap.ControlPointInfo, beatmap.Difficulty);
|
||||||
|
|
||||||
SampleControlPoint sampleControlPoint = legacyInfo != null ? legacyInfo.SamplePointAt(hitObject.GetEndTime() + control_point_leniency) : SampleControlPoint.DEFAULT;
|
|
||||||
|
|
||||||
hitObject.Samples = hitObject.Samples.Select(o => sampleControlPoint.ApplyTo(o)).ToList();
|
hitObject.Samples = hitObject.Samples.Select(o => sampleControlPoint.ApplyTo(o)).ToList();
|
||||||
|
|
||||||
if (hitObject is not IHasRepeats hasRepeats) return;
|
if (hitObject is IHasRepeats hasRepeats)
|
||||||
|
{
|
||||||
for (int i = 0; i < hasRepeats.NodeSamples.Count; i++)
|
for (int i = 0; i < hasRepeats.NodeSamples.Count; i++)
|
||||||
{
|
{
|
||||||
double time = hitObject.StartTime + i * hasRepeats.Duration / hasRepeats.SpanCount() + control_point_leniency;
|
double time = hitObject.StartTime + i * hasRepeats.Duration / hasRepeats.SpanCount() + control_point_leniency;
|
||||||
sampleControlPoint = legacyInfo != null ? legacyInfo.SamplePointAt(time) : SampleControlPoint.DEFAULT;
|
sampleControlPoint = (beatmap.ControlPointInfo as LegacyControlPointInfo)?.SamplePointAt(time) ?? SampleControlPoint.DEFAULT;
|
||||||
|
|
||||||
hasRepeats.NodeSamples[i] = hasRepeats.NodeSamples[i].Select(o => sampleControlPoint.ApplyTo(o)).ToList();
|
hasRepeats.NodeSamples[i] = hasRepeats.NodeSamples[i].Select(o => sampleControlPoint.ApplyTo(o)).ToList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Some `BeatmapInfo` members have default values that differ from the default values used by stable.
|
/// Some `BeatmapInfo` members have default values that differ from the default values used by stable.
|
||||||
|
Loading…
Reference in New Issue
Block a user