diff --git a/osu.Game.Rulesets.Osu/Scoring/OsuScoreProcessor.cs b/osu.Game.Rulesets.Osu/Scoring/OsuScoreProcessor.cs
index 7cd78c8be7..a24efe4a1e 100644
--- a/osu.Game.Rulesets.Osu/Scoring/OsuScoreProcessor.cs
+++ b/osu.Game.Rulesets.Osu/Scoring/OsuScoreProcessor.cs
@@ -5,6 +5,7 @@ using System.Collections.Generic;
using osu.Framework.Extensions;
using osu.Game.Beatmaps;
using osu.Game.Rulesets.Judgements;
+using osu.Game.Rulesets.Objects;
using osu.Game.Rulesets.Osu.Judgements;
using osu.Game.Rulesets.Osu.Objects;
using osu.Game.Rulesets.Scoring;
@@ -72,5 +73,7 @@ namespace osu.Game.Rulesets.Osu.Scoring
}
protected override JudgementResult CreateResult(Judgement judgement) => new OsuJudgementResult(judgement);
+
+ protected override HitWindows CreateHitWindows() => new OsuHitWindows();
}
}
diff --git a/osu.Game/Online/PollingComponent.cs b/osu.Game/Online/PollingComponent.cs
index 36a42b5d0a..6296608e5d 100644
--- a/osu.Game/Online/PollingComponent.cs
+++ b/osu.Game/Online/PollingComponent.cs
@@ -39,7 +39,7 @@ namespace osu.Game.Online
///
///
///
- /// The initial time in milliseconds to wait between polls. Setting to zero stops al polling.
+ /// The initial time in milliseconds to wait between polls. Setting to zero stops all polling.
protected PollingComponent(double timeBetweenPolls = 0)
{
TimeBetweenPolls = timeBetweenPolls;
diff --git a/osu.Game/Rulesets/Scoring/ScoreProcessor.cs b/osu.Game/Rulesets/Scoring/ScoreProcessor.cs
index ae0f0dda50..4b3012192d 100644
--- a/osu.Game/Rulesets/Scoring/ScoreProcessor.cs
+++ b/osu.Game/Rulesets/Scoring/ScoreProcessor.cs
@@ -163,8 +163,6 @@ namespace osu.Game.Rulesets.Scoring
AllJudged?.Invoke();
}
- private readonly Dictionary scoreResultCounts = new Dictionary();
-
///
/// Retrieve a score populated with data for the current play this processor is responsible for.
///
@@ -180,9 +178,11 @@ namespace osu.Game.Rulesets.Scoring
var hitWindows = CreateHitWindows();
foreach (var result in Enum.GetValues(typeof(HitResult)).OfType().Where(r => r > HitResult.None && hitWindows.IsHitResultAllowed(r)))
- score.Statistics[result] = scoreResultCounts.GetOrDefault(result);
+ score.Statistics[result] = GetStatistic(result);
}
+ protected abstract int GetStatistic(HitResult result);
+
public abstract double GetStandardisedScore();
}
@@ -378,6 +378,8 @@ namespace osu.Game.Rulesets.Scoring
}
}
+ protected override int GetStatistic(HitResult result) => scoreResultCounts.GetOrDefault(result);
+
public override double GetStandardisedScore() => getScore(ScoringMode.Standardised);
protected override void Reset(bool storeResults)