From 9bbcc0526de83b6c6845bd8c984e330b7d51d2b3 Mon Sep 17 00:00:00 2001 From: Dean Herbert <pe@ppy.sh> Date: Tue, 11 Jul 2017 18:39:10 +0900 Subject: [PATCH] Disable beatmap changes in specified screens --- osu.Game/Screens/OsuScreen.cs | 9 +++++++-- osu.Game/Screens/Play/Player.cs | 2 +- osu.Game/Screens/Play/PlayerLoader.cs | 2 +- osu.Game/Screens/Ranking/Results.cs | 2 +- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/osu.Game/Screens/OsuScreen.cs b/osu.Game/Screens/OsuScreen.cs index 4f8109b4e4..f0e673a739 100644 --- a/osu.Game/Screens/OsuScreen.cs +++ b/osu.Game/Screens/OsuScreen.cs @@ -29,7 +29,11 @@ namespace osu.Game.Screens internal virtual bool HasLocalCursorDisplayed => false; - internal virtual bool AllowRulesetChange => true; + /// <summary> + /// Whether the beatmap or ruleset should be allowed to be changed by the user or game. + /// Used to mark exclusive areas where this is strongly prohibited, like gameplay. + /// </summary> + internal virtual bool AllowBeatmapRulesetChange => true; private readonly Bindable<WorkingBeatmap> beatmap = new Bindable<WorkingBeatmap>(); @@ -85,7 +89,8 @@ namespace osu.Game.Screens { if (!IsCurrentScreen) return; - ruleset.Disabled = !AllowRulesetChange; + ruleset.Disabled = !AllowBeatmapRulesetChange; + beatmap.Disabled = !AllowBeatmapRulesetChange; } protected override void OnResuming(Screen last) diff --git a/osu.Game/Screens/Play/Player.cs b/osu.Game/Screens/Play/Player.cs index d0ffe1de1c..a7ea77c710 100644 --- a/osu.Game/Screens/Play/Player.cs +++ b/osu.Game/Screens/Play/Player.cs @@ -39,7 +39,7 @@ namespace osu.Game.Screens.Play public Action RestartRequested; - internal override bool AllowRulesetChange => false; + internal override bool AllowBeatmapRulesetChange => false; public bool HasFailed { get; private set; } diff --git a/osu.Game/Screens/Play/PlayerLoader.cs b/osu.Game/Screens/Play/PlayerLoader.cs index c8ebb1f436..f2ed378e7c 100644 --- a/osu.Game/Screens/Play/PlayerLoader.cs +++ b/osu.Game/Screens/Play/PlayerLoader.cs @@ -27,7 +27,7 @@ namespace osu.Game.Screens.Play private bool showOverlays = true; internal override bool ShowOverlays => showOverlays; - internal override bool AllowRulesetChange => false; + internal override bool AllowBeatmapRulesetChange => false; protected override BackgroundScreen CreateBackground() => new BackgroundScreenBeatmap(Beatmap); diff --git a/osu.Game/Screens/Ranking/Results.cs b/osu.Game/Screens/Ranking/Results.cs index dac83536ed..636851e14d 100644 --- a/osu.Game/Screens/Ranking/Results.cs +++ b/osu.Game/Screens/Ranking/Results.cs @@ -31,7 +31,7 @@ namespace osu.Game.Screens.Ranking private ResultModeTabControl modeChangeButtons; - internal override bool AllowRulesetChange => false; + internal override bool AllowBeatmapRulesetChange => false; private Container currentPage;