From 385529ec7813d49beba1692328100ca1e2f7745f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marvin=20Sch=C3=BCrz?= Date: Mon, 1 Sep 2025 13:05:22 +0200 Subject: [PATCH] Fix mismatch in cutoff time check between `preventMissOnPreviousHitObjects` and `markPreviousObjectsHit` --- .../Screens/Edit/GameplayTest/EditorPlayer.cs | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/osu.Game/Screens/Edit/GameplayTest/EditorPlayer.cs b/osu.Game/Screens/Edit/GameplayTest/EditorPlayer.cs index b99c0afdeb..589ce34450 100644 --- a/osu.Game/Screens/Edit/GameplayTest/EditorPlayer.cs +++ b/osu.Game/Screens/Edit/GameplayTest/EditorPlayer.cs @@ -124,27 +124,28 @@ namespace osu.Game.Screens.Edit.GameplayTest { void preventMiss(HitObject hitObject) { - if (hitObject.StartTime > editorState.Time) - return; - var drawableObject = DrawableRuleset.Playfield.HitObjectContainer .AliveObjects .LastOrDefault(it => it.HitObject == hitObject); - preventMissOnDrawable(drawableObject); + if (drawableObject != null) + preventMissOnDrawable(drawableObject); } - void preventMissOnDrawable(DrawableHitObject? drawableObject) + void preventMissOnDrawable(DrawableHitObject drawableObject) { - if (drawableObject?.Entry == null) + if (drawableObject.Entry == null) return; - var result = drawableObject.CreateResult(drawableObject.HitObject.Judgement); - result.Type = result.Judgement.MaxResult; - drawableObject.Entry.Result = result; - foreach (var nested in drawableObject.NestedHitObjects) preventMissOnDrawable(nested); + + if (drawableObject.HitObject.GetEndTime() < editorState.Time) + { + var result = drawableObject.CreateResult(drawableObject.HitObject.Judgement); + result.Type = result.Judgement.MaxResult; + drawableObject.Entry.Result = result; + } } void removeListener()