Process beatmap before generating mappings

This commit is contained in:
smoogipoo 2018-06-13 18:38:27 +09:00
parent af4d4b529f
commit 5e66b02108

View File

@ -84,19 +84,26 @@ namespace osu.Game.Tests.Beatmaps
beatmap.BeatmapInfo.Ruleset = beatmap.BeatmapInfo.RulesetID == rulesetInstance.RulesetInfo.ID ? rulesetInstance.RulesetInfo : new RulesetInfo();
var result = new ConvertResult();
var converter = rulesetInstance.CreateBeatmapConverter(beatmap);
List<KeyValuePair<HitObject, IEnumerable<HitObject>>> conversions = new List<KeyValuePair<HitObject, IEnumerable<HitObject>>>();
converter.ObjectConverted += (orig, converted) =>
{
conversions.Add(new KeyValuePair<HitObject, IEnumerable<HitObject>>(orig, converted));
converted.ForEach(h => h.ApplyDefaults(beatmap.ControlPointInfo, beatmap.BeatmapInfo.BaseDifficulty));
var mapping = new ConvertMapping { StartTime = orig.StartTime };
foreach (var obj in converted)
mapping.Objects.AddRange(CreateConvertValue(obj));
result.Mappings.Add(mapping);
};
converter.Convert();
IBeatmap convertedBeatmap = converter.Convert();
rulesetInstance.CreateBeatmapProcessor(convertedBeatmap).PostProcess();
foreach (var pair in conversions)
{
var mapping = new ConvertMapping { StartTime = pair.Key.StartTime };
foreach (var obj in pair.Value)
mapping.Objects.AddRange(CreateConvertValue(obj));
result.Mappings.Add(mapping);
}
return result;
}