From 98851e4a783843655f114087dd4c055a0d838657 Mon Sep 17 00:00:00 2001 From: TocoToucan Date: Thu, 11 Jan 2018 01:24:34 +0300 Subject: [PATCH] Stop time whenever visual settings are expanded --- osu.Game/Screens/Play/HUD/VisualSettings.cs | 17 +++++++++++++---- osu.Game/Screens/Play/HUDOverlay.cs | 3 ++- osu.Game/Screens/Play/Player.cs | 5 +++-- 3 files changed, 18 insertions(+), 7 deletions(-) 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 @@ protected override void ToggleContentVisibility() { 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 @@ public virtual void BindRulesetContainer(RulesetContainer rulesetContainer) 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 @@ private void load(AudioManager audio, OsuConfigManager config, APIAccess api) 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;