mirror of
https://github.com/osukey/osukey.git
synced 2025-05-18 20:17:23 +09:00
Specify ScoreProcessor.Judgements.Capacity in order to avoid List<T> internal auto reallocations
This commit is contained in:
parent
b493f359b9
commit
259c0964fd
@ -18,7 +18,7 @@ namespace osu.Game.Modes.Catch
|
|||||||
|
|
||||||
protected override PlayMode PlayMode => PlayMode.Catch;
|
protected override PlayMode PlayMode => PlayMode.Catch;
|
||||||
|
|
||||||
public override ScoreProcessor CreateScoreProcessor() => null;
|
public override ScoreProcessor CreateScoreProcessor(int hitObjectsNumber) => null;
|
||||||
|
|
||||||
public override HitObjectParser CreateHitObjectParser() => new OsuHitObjectParser();
|
public override HitObjectParser CreateHitObjectParser() => new OsuHitObjectParser();
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ namespace osu.Game.Modes.Mania
|
|||||||
|
|
||||||
protected override PlayMode PlayMode => PlayMode.Mania;
|
protected override PlayMode PlayMode => PlayMode.Mania;
|
||||||
|
|
||||||
public override ScoreProcessor CreateScoreProcessor() => null;
|
public override ScoreProcessor CreateScoreProcessor(int hitObjectsNumber) => null;
|
||||||
|
|
||||||
public override HitObjectParser CreateHitObjectParser() => new OsuHitObjectParser();
|
public override HitObjectParser CreateHitObjectParser() => new OsuHitObjectParser();
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@ namespace osu.Game.Modes.Osu
|
|||||||
|
|
||||||
public override HitObjectParser CreateHitObjectParser() => new OsuHitObjectParser();
|
public override HitObjectParser CreateHitObjectParser() => new OsuHitObjectParser();
|
||||||
|
|
||||||
public override ScoreProcessor CreateScoreProcessor() => new OsuScoreProcessor();
|
public override ScoreProcessor CreateScoreProcessor(int hitObjectsNumber) => new OsuScoreProcessor(hitObjectsNumber);
|
||||||
|
|
||||||
protected override PlayMode PlayMode => PlayMode.Osu;
|
protected override PlayMode PlayMode => PlayMode.Osu;
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,6 @@
|
|||||||
//Copyright (c) 2007-2016 ppy Pty Ltd <contact@ppy.sh>.
|
//Copyright (c) 2007-2016 ppy Pty Ltd <contact@ppy.sh>.
|
||||||
//Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
//Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using osu.Game.Modes.Objects.Drawables;
|
using osu.Game.Modes.Objects.Drawables;
|
||||||
using osu.Game.Modes.Osu.Objects.Drawables;
|
using osu.Game.Modes.Osu.Objects.Drawables;
|
||||||
|
|
||||||
@ -13,6 +8,11 @@ namespace osu.Game.Modes.Osu
|
|||||||
{
|
{
|
||||||
class OsuScoreProcessor : ScoreProcessor
|
class OsuScoreProcessor : ScoreProcessor
|
||||||
{
|
{
|
||||||
|
public OsuScoreProcessor(int hitObjectsNumber)
|
||||||
|
: base(hitObjectsNumber)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
protected override void UpdateCalculations(JudgementInfo judgement)
|
protected override void UpdateCalculations(JudgementInfo judgement)
|
||||||
{
|
{
|
||||||
if (judgement != null)
|
if (judgement != null)
|
||||||
|
@ -19,7 +19,7 @@ namespace osu.Game.Modes.Taiko
|
|||||||
|
|
||||||
protected override PlayMode PlayMode => PlayMode.Taiko;
|
protected override PlayMode PlayMode => PlayMode.Taiko;
|
||||||
|
|
||||||
public override ScoreProcessor CreateScoreProcessor() => null;
|
public override ScoreProcessor CreateScoreProcessor(int hitObjectsNumber) => null;
|
||||||
|
|
||||||
public override HitObjectParser CreateHitObjectParser() => new OsuHitObjectParser();
|
public override HitObjectParser CreateHitObjectParser() => new OsuHitObjectParser();
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ namespace osu.Game.Modes
|
|||||||
|
|
||||||
public abstract ScoreOverlay CreateScoreOverlay();
|
public abstract ScoreOverlay CreateScoreOverlay();
|
||||||
|
|
||||||
public abstract ScoreProcessor CreateScoreProcessor();
|
public abstract ScoreProcessor CreateScoreProcessor(int hitObjectsNumber);
|
||||||
|
|
||||||
public abstract HitRenderer CreateHitRendererWith(List<HitObject> objects);
|
public abstract HitRenderer CreateHitRendererWith(List<HitObject> objects);
|
||||||
|
|
||||||
|
@ -29,11 +29,12 @@ namespace osu.Game.Modes
|
|||||||
|
|
||||||
public readonly BindableInt HighestCombo = new BindableInt();
|
public readonly BindableInt HighestCombo = new BindableInt();
|
||||||
|
|
||||||
public readonly List<JudgementInfo> Judgements = new List<JudgementInfo>();
|
public readonly List<JudgementInfo> Judgements;
|
||||||
|
|
||||||
public ScoreProcessor()
|
public ScoreProcessor(int hitObjectsNumber)
|
||||||
{
|
{
|
||||||
Combo.ValueChanged += delegate { HighestCombo.Value = Math.Max(HighestCombo.Value, Combo.Value); };
|
Combo.ValueChanged += delegate { HighestCombo.Value = Math.Max(HighestCombo.Value, Combo.Value); };
|
||||||
|
Judgements = new List<JudgementInfo>(hitObjectsNumber);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddJudgement(JudgementInfo judgement)
|
public void AddJudgement(JudgementInfo judgement)
|
||||||
|
@ -92,7 +92,7 @@ namespace osu.Game.Screens.Play
|
|||||||
ruleset = Ruleset.GetRuleset(usablePlayMode);
|
ruleset = Ruleset.GetRuleset(usablePlayMode);
|
||||||
|
|
||||||
var scoreOverlay = ruleset.CreateScoreOverlay();
|
var scoreOverlay = ruleset.CreateScoreOverlay();
|
||||||
scoreOverlay.BindProcessor(scoreProcessor = ruleset.CreateScoreProcessor());
|
scoreOverlay.BindProcessor(scoreProcessor = ruleset.CreateScoreProcessor(beatmap.HitObjects.Count));
|
||||||
|
|
||||||
hitRenderer = ruleset.CreateHitRendererWith(beatmap.HitObjects);
|
hitRenderer = ruleset.CreateHitRendererWith(beatmap.HitObjects);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user