From cebeb0a2190946f9100b857f62facb7b46e58276 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Tue, 22 Jan 2019 11:40:57 +0900 Subject: [PATCH 1/2] Fix replay playback speed not being displayed initially --- .../Play/PlayerSettings/PlaybackSettings.cs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/osu.Game/Screens/Play/PlayerSettings/PlaybackSettings.cs b/osu.Game/Screens/Play/PlayerSettings/PlaybackSettings.cs index 13e403e899..cba6a88c4e 100644 --- a/osu.Game/Screens/Play/PlayerSettings/PlaybackSettings.cs +++ b/osu.Game/Screens/Play/PlayerSettings/PlaybackSettings.cs @@ -19,10 +19,10 @@ namespace osu.Game.Screens.Play.PlayerSettings private readonly PlayerSliderBar sliderbar; + private readonly OsuSpriteText multiplierText; + public PlaybackSettings() { - OsuSpriteText multiplierText; - Children = new Drawable[] { new Container @@ -57,9 +57,6 @@ namespace osu.Game.Screens.Play.PlayerSettings }, } }; - - sliderbar.Bindable.ValueChanged += rateMultiplier => multiplierText.Text = $"{sliderbar.Bar.TooltipText}x"; - sliderbar.Bindable.TriggerChange(); } protected override void LoadComplete() @@ -70,7 +67,12 @@ namespace osu.Game.Screens.Play.PlayerSettings return; var clockRate = AdjustableClock.Rate; - sliderbar.Bindable.ValueChanged += rateMultiplier => AdjustableClock.Rate = clockRate * rateMultiplier; + + sliderbar.Bindable.BindValueChanged(multiplier => + { + multiplierText.Text = $"{multiplier:0.0}x"; + AdjustableClock.Rate = clockRate * multiplier; + }, true); } } } From c58fe4f4ffed4f44d31ca11081b8204087bc921e Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Tue, 22 Jan 2019 13:18:01 +0900 Subject: [PATCH 2/2] Fix nullref --- osu.Game/Screens/Play/PlayerSettings/PlaybackSettings.cs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/osu.Game/Screens/Play/PlayerSettings/PlaybackSettings.cs b/osu.Game/Screens/Play/PlayerSettings/PlaybackSettings.cs index cba6a88c4e..8ad0e14137 100644 --- a/osu.Game/Screens/Play/PlayerSettings/PlaybackSettings.cs +++ b/osu.Game/Screens/Play/PlayerSettings/PlaybackSettings.cs @@ -68,11 +68,10 @@ namespace osu.Game.Screens.Play.PlayerSettings var clockRate = AdjustableClock.Rate; - sliderbar.Bindable.BindValueChanged(multiplier => - { - multiplierText.Text = $"{multiplier:0.0}x"; - AdjustableClock.Rate = clockRate * multiplier; - }, true); + // can't trigger this line instantly as the underlying clock may not be ready to accept adjustments yet. + sliderbar.Bindable.ValueChanged += multiplier => AdjustableClock.Rate = clockRate * multiplier; + + sliderbar.Bindable.BindValueChanged(multiplier => multiplierText.Text = $"{multiplier:0.0}x", true); } } }