From 110749205d7366f05ca5d56dd2f037bc7770bff2 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 13 Dec 2023 16:13:08 +0900 Subject: [PATCH 1/3] Cache `GameplayClockContainer` to allow usage of `OnSeek` --- osu.Game/Screens/Play/GameplayClockContainer.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/osu.Game/Screens/Play/GameplayClockContainer.cs b/osu.Game/Screens/Play/GameplayClockContainer.cs index 5a713fdae78a..4def1d36bbdf 100644 --- a/osu.Game/Screens/Play/GameplayClockContainer.cs +++ b/osu.Game/Screens/Play/GameplayClockContainer.cs @@ -17,6 +17,7 @@ namespace osu.Game.Screens.Play /// Encapsulates gameplay timing logic and provides a via DI for gameplay components to use. /// [Cached(typeof(IGameplayClock))] + [Cached(typeof(GameplayClockContainer))] public partial class GameplayClockContainer : Container, IAdjustableClock, IGameplayClock { public IBindable IsPaused => isPaused; From f2c6c348be850bb07347bfb46a9c836c6304895f Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 13 Dec 2023 16:13:23 +0900 Subject: [PATCH 2/3] Fix `HitError` `Clear` methods not correctly returning pooled drawables --- .../Screens/Play/HUD/HitErrorMeters/BarHitErrorMeter.cs | 6 +++++- .../Screens/Play/HUD/HitErrorMeters/ColourHitErrorMeter.cs | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/osu.Game/Screens/Play/HUD/HitErrorMeters/BarHitErrorMeter.cs b/osu.Game/Screens/Play/HUD/HitErrorMeters/BarHitErrorMeter.cs index eb5221aa45d0..a9141110c598 100644 --- a/osu.Game/Screens/Play/HUD/HitErrorMeters/BarHitErrorMeter.cs +++ b/osu.Game/Screens/Play/HUD/HitErrorMeters/BarHitErrorMeter.cs @@ -485,7 +485,11 @@ protected override void PrepareForUse() } } - public override void Clear() => judgementsContainer.Clear(); + public override void Clear() + { + foreach (var j in judgementsContainer) + j.FadeOut().Expire(); + } public enum CentreMarkerStyles { diff --git a/osu.Game/Screens/Play/HUD/HitErrorMeters/ColourHitErrorMeter.cs b/osu.Game/Screens/Play/HUD/HitErrorMeters/ColourHitErrorMeter.cs index 5793713fcad6..d95959bf9ee5 100644 --- a/osu.Game/Screens/Play/HUD/HitErrorMeters/ColourHitErrorMeter.cs +++ b/osu.Game/Screens/Play/HUD/HitErrorMeters/ColourHitErrorMeter.cs @@ -63,7 +63,11 @@ protected override void OnNewJudgement(JudgementResult judgement) judgementsFlow.Push(GetColourForHitResult(judgement.Type)); } - public override void Clear() => judgementsFlow.Clear(); + public override void Clear() + { + foreach (var j in judgementsFlow) + j.FadeOut().Expire(); + } private partial class JudgementFlow : FillFlowContainer { From 3131d376218af0673a1b79190f52f7aaf576105e Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 13 Dec 2023 17:00:21 +0900 Subject: [PATCH 3/3] Clear transformations with more fire --- osu.Game/Screens/Play/HUD/HitErrorMeters/BarHitErrorMeter.cs | 5 ++++- .../Screens/Play/HUD/HitErrorMeters/ColourHitErrorMeter.cs | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/osu.Game/Screens/Play/HUD/HitErrorMeters/BarHitErrorMeter.cs b/osu.Game/Screens/Play/HUD/HitErrorMeters/BarHitErrorMeter.cs index a9141110c598..443863fb2f40 100644 --- a/osu.Game/Screens/Play/HUD/HitErrorMeters/BarHitErrorMeter.cs +++ b/osu.Game/Screens/Play/HUD/HitErrorMeters/BarHitErrorMeter.cs @@ -488,7 +488,10 @@ protected override void PrepareForUse() public override void Clear() { foreach (var j in judgementsContainer) - j.FadeOut().Expire(); + { + j.ClearTransforms(); + j.Expire(); + } } public enum CentreMarkerStyles diff --git a/osu.Game/Screens/Play/HUD/HitErrorMeters/ColourHitErrorMeter.cs b/osu.Game/Screens/Play/HUD/HitErrorMeters/ColourHitErrorMeter.cs index d95959bf9ee5..65f4b50dde28 100644 --- a/osu.Game/Screens/Play/HUD/HitErrorMeters/ColourHitErrorMeter.cs +++ b/osu.Game/Screens/Play/HUD/HitErrorMeters/ColourHitErrorMeter.cs @@ -66,7 +66,10 @@ protected override void OnNewJudgement(JudgementResult judgement) public override void Clear() { foreach (var j in judgementsFlow) - j.FadeOut().Expire(); + { + j.ClearTransforms(); + j.Expire(); + } } private partial class JudgementFlow : FillFlowContainer