diff --git a/osu.Game/Screens/Play/HUD/VisualSettings.cs b/osu.Game/Screens/Play/HUD/VisualSettings.cs index e9aabefc5d..068783df34 100644 --- a/osu.Game/Screens/Play/HUD/VisualSettings.cs +++ b/osu.Game/Screens/Play/HUD/VisualSettings.cs @@ -3,7 +3,6 @@ using osu.Framework.Allocation; using osu.Framework.Graphics; -using osu.Framework.Graphics.Containers; using osu.Framework.Timing; using osu.Game.Configuration; using osu.Game.Graphics.Sprites; @@ -14,7 +13,9 @@ namespace osu.Game.Screens.Play.HUD public class VisualSettings : ReplayGroup { protected override string Title => "Visual settings"; - public IAdjustableClock AdjustableClock { get; set; } + + public IAdjustableClock AudioClock { get; set; } + public FramedClock FramedClock { get; set; } private readonly ReplaySliderBar dimSliderBar; private readonly ReplayCheckbox showStoryboardToggle; @@ -51,9 +52,17 @@ namespace osu.Game.Screens.Play.HUD { base.ToggleContentVisibility(); if (Expanded) - AdjustableClock?.Stop(); + { + AudioClock?.Stop(); + if (FramedClock != null) + FramedClock.ProcessSourceClockFrames = false; + } else - AdjustableClock?.Start(); + { + AudioClock?.Start(); + if (FramedClock != null) + FramedClock.ProcessSourceClockFrames = true; + } } } } diff --git a/osu.Game/Screens/Play/HUDOverlay.cs b/osu.Game/Screens/Play/HUDOverlay.cs index 6593391da4..be37da04cd 100644 --- a/osu.Game/Screens/Play/HUDOverlay.cs +++ b/osu.Game/Screens/Play/HUDOverlay.cs @@ -103,7 +103,8 @@ namespace osu.Game.Screens.Play if (!replayLoaded) { ReplaySettingsOverlay.PlaybackSettings.Hide(); - ReplaySettingsOverlay.Delay(5000).FadeOut(200); + // TODO Hide VisualSettings correctly. At least, It shouldn't dissapear in expanded state. + //ReplaySettingsOverlay.VisualSettings.Delay(10000).FadeOut(200); ModDisplay.Delay(2000).FadeOut(200); } } diff --git a/osu.Game/Screens/Play/Player.cs b/osu.Game/Screens/Play/Player.cs index 0245491431..39d436bdf2 100644 --- a/osu.Game/Screens/Play/Player.cs +++ b/osu.Game/Screens/Play/Player.cs @@ -228,8 +228,9 @@ namespace osu.Game.Screens.Play breakOverlay.BindProcessor(scoreProcessor); - hudOverlay.ReplaySettingsOverlay.PlaybackSettings.AdjustableClock = - hudOverlay.ReplaySettingsOverlay.VisualSettings.AdjustableClock = adjustableSourceClock; + hudOverlay.ReplaySettingsOverlay.PlaybackSettings.AdjustableClock = adjustableSourceClock; + hudOverlay.ReplaySettingsOverlay.VisualSettings.AudioClock = decoupledClock; + hudOverlay.ReplaySettingsOverlay.VisualSettings.FramedClock = offsetClock; // Bind ScoreProcessor to ourselves scoreProcessor.AllJudged += onCompletion;