diff --git a/osu.Game/Rulesets/Scoring/ScoreProcessor.cs b/osu.Game/Rulesets/Scoring/ScoreProcessor.cs
index f29e3533a0..7d2bc17bda 100644
--- a/osu.Game/Rulesets/Scoring/ScoreProcessor.cs
+++ b/osu.Game/Rulesets/Scoring/ScoreProcessor.cs
@@ -33,6 +33,9 @@ namespace osu.Game.Rulesets.Scoring
///
/// Whether should be populated during application of results.
///
+ ///
+ /// Should only be disabled for special cases.
+ /// When disabled, cannot be used.
internal bool TrackHitEvents = true;
///
@@ -231,10 +234,13 @@ namespace osu.Game.Rulesets.Scoring
ApplyScoreChange(result);
- if (!IsSimulating && TrackHitEvents)
+ if (!IsSimulating)
{
- hitEvents.Add(CreateHitEvent(result));
- lastHitObject = result.HitObject;
+ if (TrackHitEvents)
+ {
+ hitEvents.Add(CreateHitEvent(result));
+ lastHitObject = result.HitObject;
+ }
updateScore();
}
@@ -250,6 +256,9 @@ namespace osu.Game.Rulesets.Scoring
protected sealed override void RevertResultInternal(JudgementResult result)
{
+ if (!TrackHitEvents)
+ throw new InvalidOperationException(@$"Rewind is not supported when {nameof(TrackHitEvents)} is disabled.");
+
Combo.Value = result.ComboAtJudgement;
HighestCombo.Value = result.HighestComboAtJudgement;