From 27578c48f5fd43a42cde43acb290c10dac9c3fe4 Mon Sep 17 00:00:00 2001 From: ekrctb Date: Fri, 27 Jan 2023 19:35:44 +0900 Subject: [PATCH] Remove JudgementResultEntry It is not needed anymore as TimeAbsolute is stored raw. --- .../Judgements/JudgementResultEntry.cs | 22 ------------------- osu.Game/Rulesets/UI/Playfield.cs | 18 ++++++++------- 2 files changed, 10 insertions(+), 30 deletions(-) delete mode 100644 osu.Game/Rulesets/Judgements/JudgementResultEntry.cs diff --git a/osu.Game/Rulesets/Judgements/JudgementResultEntry.cs b/osu.Game/Rulesets/Judgements/JudgementResultEntry.cs deleted file mode 100644 index 09351e6974..0000000000 --- a/osu.Game/Rulesets/Judgements/JudgementResultEntry.cs +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. -// See the LICENCE file in the repository root for full licence text. - -using osu.Game.Rulesets.Objects; - -namespace osu.Game.Rulesets.Judgements -{ - internal class JudgementResultEntry - { - public double Time => Result.TimeAbsolute; - - public readonly HitObjectLifetimeEntry HitObjectEntry; - - public readonly JudgementResult Result; - - public JudgementResultEntry(HitObjectLifetimeEntry hitObjectEntry, JudgementResult result) - { - HitObjectEntry = hitObjectEntry; - Result = result; - } - } -} \ No newline at end of file diff --git a/osu.Game/Rulesets/UI/Playfield.cs b/osu.Game/Rulesets/UI/Playfield.cs index 3ec31db4b9..5d6a8de33c 100644 --- a/osu.Game/Rulesets/UI/Playfield.cs +++ b/osu.Game/Rulesets/UI/Playfield.cs @@ -99,7 +99,7 @@ namespace osu.Game.Rulesets.UI private readonly HitObjectEntryManager entryManager = new HitObjectEntryManager(); - private readonly Stack judgementResults; + private readonly Stack judgedEntries; /// /// Creates a new . @@ -118,7 +118,7 @@ namespace osu.Game.Rulesets.UI entryManager.OnEntryAdded += onEntryAdded; entryManager.OnEntryRemoved += onEntryRemoved; - judgementResults = new Stack(); + judgedEntries = new Stack(); } [BackgroundDependencyLoader] @@ -258,8 +258,8 @@ namespace osu.Game.Rulesets.UI } // When rewinding, revert future judgements in the reverse order. - while (judgementResults.Count > 0 && Time.Current < judgementResults.Peek().Time) - revertResult(judgementResults.Pop()); + while (judgedEntries.Count > 0 && Time.Current < judgedEntries.Peek().Result.AsNonNull().TimeAbsolute) + revertResult(judgedEntries.Pop()); } /// @@ -453,17 +453,19 @@ namespace osu.Game.Rulesets.UI private void onNewResult(DrawableHitObject drawable, JudgementResult result) { - // Not using result.TimeAbsolute because that might change and also there is a potential precision issue. - judgementResults.Push(new JudgementResultEntry(drawable.Entry.AsNonNull(), result)); + Debug.Assert(result != null && drawable.Entry?.Result == result); + judgedEntries.Push(drawable.Entry.AsNonNull()); NewResult?.Invoke(drawable, result); } - private void revertResult(JudgementResultEntry entry) + private void revertResult(HitObjectLifetimeEntry entry) { var result = entry.Result; + Debug.Assert(result != null); + RevertResult?.Invoke(result); - entry.HitObjectEntry.OnRevertResult(); + entry.OnRevertResult(); result.Reset(); }