diff --git a/osu.Game.Tests/Visual/Background/TestSceneUserDimContainer.cs b/osu.Game.Tests/Visual/Background/TestSceneUserDimContainer.cs
index f867b98fda..fdfde9cc2f 100644
--- a/osu.Game.Tests/Visual/Background/TestSceneUserDimContainer.cs
+++ b/osu.Game.Tests/Visual/Background/TestSceneUserDimContainer.cs
@@ -155,9 +155,18 @@ namespace osu.Game.Tests.Visual.Background
public void DisableUserDisplaySettingsTest()
{
performFullSetup();
- AddStep("Start ignoring user settings", () => player.DimmableStoryboard.IgnoreUserSettings.Value = true);
+ createFakeStoryboard();
+ AddStep("Enable Storyboard", () =>
+ {
+ player.ReplacesBackground.Value = true;
+ player.StoryboardEnabled.Value = true;
+ });
+ AddStep("Enable user dim", () => player.DimmableStoryboard.EnableUserDim.Value = true);
+ AddStep("Set dim level to 1", () => songSelect.DimLevel.Value = 1f);
waitForDim();
- AddAssert("Check the background is undimmed", () => player.IsBackgroundUndimmed());
+ AddAssert("Ignore User Settings", () => player.DimmableStoryboard.IgnoreUserSettings.Value = true);
+ waitForDim();
+ AddAssert("User dim settings ignored", () => !player.DimmableStoryboard.EnableUserDim.Value && player.DimmableStoryboard.DimLevel == 0);
}
///
@@ -365,8 +374,6 @@ namespace osu.Game.Tests.Visual.Background
public new DimmableStoryboard DimmableStoryboard => base.DimmableStoryboard;
- public bool IsBackgroundUndimmed() => ((FadeAccessibleBackground)Background).CurrentColour == OsuColour.Gray(1);
-
// Whether or not the player should be allowed to load.
public bool BlockLoad;
diff --git a/osu.Game/Graphics/Containers/UserDimContainer.cs b/osu.Game/Graphics/Containers/UserDimContainer.cs
index bddbbca0ea..ae4e5557be 100644
--- a/osu.Game/Graphics/Containers/UserDimContainer.cs
+++ b/osu.Game/Graphics/Containers/UserDimContainer.cs
@@ -37,7 +37,7 @@ namespace osu.Game.Graphics.Containers
///
public bool ContentDisplayed { get; private set; }
- public double DimLevel => EnableUserDim.Value && !IgnoreUserSettings.Value ? UserDimLevel.Value : 0;
+ public double DimLevel => EnableUserDim.Value ? UserDimLevel.Value : 0;
protected Bindable UserDimLevel { get; private set; }
@@ -69,7 +69,7 @@ namespace osu.Game.Graphics.Containers
ShowStoryboard.ValueChanged += _ => UpdateVisuals();
ShowVideo.ValueChanged += _ => UpdateVisuals();
StoryboardReplacesBackground.ValueChanged += _ => UpdateVisuals();
- IgnoreUserSettings.ValueChanged += _ => UpdateVisuals();
+ IgnoreUserSettings.ValueChanged += _ => updateSettings();
}
protected override void LoadComplete()
@@ -91,7 +91,15 @@ namespace osu.Game.Graphics.Containers
ContentDisplayed = ShowDimContent;
dimContent.FadeTo(ContentDisplayed ? 1 : 0, BACKGROUND_FADE_DURATION, Easing.OutQuint);
- dimContent.FadeColour(IgnoreUserSettings.Value ? Color4.White : OsuColour.Gray(1 - (float)DimLevel), BACKGROUND_FADE_DURATION, Easing.OutQuint);
+ dimContent.FadeColour(OsuColour.Gray(1 - (float)DimLevel), BACKGROUND_FADE_DURATION, Easing.OutQuint);
+ }
+
+ ///
+ /// Invoked when the IgnoreUserSettings bindable is changed
+ ///
+ private void updateSettings()
+ {
+ EnableUserDim.Value = !IgnoreUserSettings.Value;
}
}
}
diff --git a/osu.Game/Rulesets/Mods/ModCinema.cs b/osu.Game/Rulesets/Mods/ModCinema.cs
index 77bf80b149..5faa2f4f3e 100644
--- a/osu.Game/Rulesets/Mods/ModCinema.cs
+++ b/osu.Game/Rulesets/Mods/ModCinema.cs
@@ -37,8 +37,6 @@ namespace osu.Game.Rulesets.Mods
public void ApplyToPlayer(Player player)
{
player.Background.EnableUserDim.Value = false;
- player.DimmableVideo.EnableUserDim.Value = false;
- player.DimmableStoryboard.EnableUserDim.Value = false;
player.DimmableVideo.IgnoreUserSettings.Value = true;
player.DimmableStoryboard.IgnoreUserSettings.Value = true;