diff --git a/osu-framework b/osu-framework index 2b9a56e8b3..ed33cc4899 160000 --- a/osu-framework +++ b/osu-framework @@ -1 +1 @@ -Subproject commit 2b9a56e8b3bb6c99bf4c75307639e6726fe8d3ec +Subproject commit ed33cc48996e9b57093c4d057aa0560319495dee diff --git a/osu-resources b/osu-resources index c0781d1d55..5ce2639887 160000 --- a/osu-resources +++ b/osu-resources @@ -1 +1 @@ -Subproject commit c0781d1d557c3e5a00f6cf1780049e382f92c0c8 +Subproject commit 5ce263988735b3f15c1195568b65fef40756198c diff --git a/osu.Desktop.VisualTests/Tests/TestCasePlayer.cs b/osu.Desktop.VisualTests/Tests/TestCasePlayer.cs index 5d66888916..bb7b86db43 100644 --- a/osu.Desktop.VisualTests/Tests/TestCasePlayer.cs +++ b/osu.Desktop.VisualTests/Tests/TestCasePlayer.cs @@ -57,10 +57,7 @@ namespace osu.Desktop.VisualTests.Tests Add(new Player { - Beatmap = new WorkingBeatmap - { - Beatmap = b - } + Beatmap = new WorkingBeatmap(b) }); } diff --git a/osu.Desktop/Beatmaps/IO/LegacyFilesystemReader.cs b/osu.Desktop/Beatmaps/IO/LegacyFilesystemReader.cs index c57498f5dd..471f48c750 100644 --- a/osu.Desktop/Beatmaps/IO/LegacyFilesystemReader.cs +++ b/osu.Desktop/Beatmaps/IO/LegacyFilesystemReader.cs @@ -29,7 +29,7 @@ namespace osu.Desktop.Beatmaps.IO beatmaps = Directory.GetFiles(basePath, @"*.osu").Select(f => Path.GetFileName(f)).ToArray(); if (beatmaps.Length == 0) throw new FileNotFoundException(@"This directory contains no beatmaps"); - using (var stream = new StreamReader(ReadFile(beatmaps[0]))) + using (var stream = new StreamReader(GetStream(beatmaps[0]))) { var decoder = BeatmapDecoder.GetDecoder(stream); firstMap = decoder.Decode(stream); @@ -41,7 +41,7 @@ namespace osu.Desktop.Beatmaps.IO return beatmaps; } - public override Stream ReadFile(string name) + public override Stream GetStream(string name) { return File.OpenRead(Path.Combine(basePath, name)); } diff --git a/osu.Game.Tests/Beatmaps/IO/OszArchiveReaderTest.cs b/osu.Game.Tests/Beatmaps/IO/OszArchiveReaderTest.cs index 568c08cfc6..ea26cce467 100644 --- a/osu.Game.Tests/Beatmaps/IO/OszArchiveReaderTest.cs +++ b/osu.Game.Tests/Beatmaps/IO/OszArchiveReaderTest.cs @@ -70,7 +70,7 @@ namespace osu.Game.Tests.Beatmaps.IO { var reader = new OszArchiveReader(osz); using (var stream = new StreamReader( - reader.ReadFile("Soleily - Renatus (Deif) [Platter].osu"))) + reader.GetStream("Soleily - Renatus (Deif) [Platter].osu"))) { Assert.AreEqual("osu file format v13", stream.ReadLine().Trim()); } diff --git a/osu.Game/Beatmaps/Drawable/BeatmapGroup.cs b/osu.Game/Beatmaps/Drawable/BeatmapGroup.cs index 673394553e..5e10402206 100644 --- a/osu.Game/Beatmaps/Drawable/BeatmapGroup.cs +++ b/osu.Game/Beatmaps/Drawable/BeatmapGroup.cs @@ -52,7 +52,7 @@ namespace osu.Game.Beatmaps.Drawable header.State = PanelSelectedState.Selected; break; case BeatmapGroupState.Collapsed: - FadeTo(0.5f, 250); + FadeTo(0.8f, 250); header.State = PanelSelectedState.NotSelected; difficulties.Hide(); @@ -61,7 +61,7 @@ namespace osu.Game.Beatmaps.Drawable } } - public BeatmapGroup(BeatmapSetInfo beatmapSet) + public BeatmapGroup(BeatmapSetInfo beatmapSet, WorkingBeatmap working) { this.beatmapSet = beatmapSet; @@ -78,7 +78,7 @@ namespace osu.Game.Beatmaps.Drawable Direction = FlowDirection.VerticalOnly, Children = new Framework.Graphics.Drawable[] { - header = new BeatmapSetHeader(beatmapSet) + header = new BeatmapSetHeader(beatmapSet, working) { GainedSelection = headerGainedSelection, RelativeSizeAxes = Axes.X, diff --git a/osu.Game/Beatmaps/Drawable/BeatmapPanel.cs b/osu.Game/Beatmaps/Drawable/BeatmapPanel.cs index cd28e909a8..35a7f95037 100644 --- a/osu.Game/Beatmaps/Drawable/BeatmapPanel.cs +++ b/osu.Game/Beatmaps/Drawable/BeatmapPanel.cs @@ -29,7 +29,7 @@ namespace osu.Game.Beatmaps.Drawable public BeatmapPanel(BeatmapInfo beatmap) { Beatmap = beatmap; - Height *= 0.75f; + Height *= 0.60f; Children = new Framework.Graphics.Drawable[] { @@ -44,12 +44,20 @@ namespace osu.Game.Beatmaps.Drawable Padding = new MarginPadding(5), Direction = FlowDirection.HorizontalOnly, AutoSizeAxes = Axes.Both, + Anchor = Anchor.CentreLeft, + Origin = Anchor.CentreLeft, Children = new Framework.Graphics.Drawable[] { - new DifficultyIcon(FontAwesome.dot_circle_o, new Color4(159, 198, 0, 255)), + new DifficultyIcon(FontAwesome.dot_circle_o, new Color4(159, 198, 0, 255)) + { + Scale = new Vector2(1.8f), + Anchor = Anchor.CentreLeft, + Origin = Anchor.CentreLeft, + }, new FlowContainer { - Padding = new MarginPadding { Left = 10 }, + Padding = new MarginPadding { Left = 5 }, + Spacing = new Vector2(0, 5), Direction = FlowDirection.VerticalOnly, AutoSizeAxes = Axes.Both, Children = new Framework.Graphics.Drawable[] @@ -58,17 +66,32 @@ namespace osu.Game.Beatmaps.Drawable { Direction = FlowDirection.HorizontalOnly, AutoSizeAxes = Axes.Both, + Spacing = new Vector2(4, 0), Children = new[] { new SpriteText { + Font = @"Exo2.0-Medium", Text = beatmap.Version, TextSize = 20, + Anchor = Anchor.BottomLeft, + Origin = Anchor.BottomLeft }, new SpriteText { - Text = $" mapped by {(beatmap.Metadata ?? beatmap.BeatmapSet.Metadata).Author}", + Font = @"Exo2.0-Medium", + Text = "mapped by", TextSize = 16, + Anchor = Anchor.BottomLeft, + Origin = Anchor.BottomLeft + }, + new SpriteText + { + Font = @"Exo2.0-MediumItalic", + Text = $"{(beatmap.Metadata ?? beatmap.BeatmapSet.Metadata).Author}", + TextSize = 16, + Anchor = Anchor.BottomLeft, + Origin = Anchor.BottomLeft }, } }, diff --git a/osu.Game/Beatmaps/Drawable/BeatmapSetHeader.cs b/osu.Game/Beatmaps/Drawable/BeatmapSetHeader.cs index a15198cc8c..7c6fd5a963 100644 --- a/osu.Game/Beatmaps/Drawable/BeatmapSetHeader.cs +++ b/osu.Game/Beatmaps/Drawable/BeatmapSetHeader.cs @@ -31,27 +31,18 @@ namespace osu.Game.Beatmaps.Drawable Width = 0.8f; } - public BeatmapSetHeader(BeatmapSetInfo beatmapSet) + public BeatmapSetHeader(BeatmapSetInfo beatmapSet, WorkingBeatmap working) { Children = new Framework.Graphics.Drawable[] { - new Box + working.Background == null ? new Box{ RelativeSizeAxes = Axes.Both, Colour = new Color4(20, 20, 20, 255) } : new Sprite { - Colour = new Color4(85, 85, 85, 255), - RelativeSizeAxes = Axes.Both, - }, - new Container - { - RelativeSizeAxes = Axes.Both, - Children = new Framework.Graphics.Drawable[] - { - new Box // TODO: Gradient - { - Colour = new Color4(0, 0, 0, 100), - RelativeSizeAxes = Axes.Both, - } - } - }, + Texture = working.Background, + Anchor = Anchor.Centre, + Origin = Anchor.Centre, + Scale = new Vector2(0.5f), + Colour = new Color4(200, 200, 200, 255), + }, new FlowContainer { Direction = FlowDirection.VerticalOnly, @@ -60,14 +51,15 @@ namespace osu.Game.Beatmaps.Drawable AutoSizeAxes = Axes.Both, Children = new[] { - // TODO: Make these italic new SpriteText { + Font = @"Exo2.0-SemiBoldItalic", Text = beatmapSet.Metadata.Title ?? beatmapSet.Metadata.TitleUnicode, - TextSize = 20 + TextSize = 22 }, new SpriteText { + Font = @"Exo2.0-MediumItalic", Text = beatmapSet.Metadata.Artist ?? beatmapSet.Metadata.ArtistUnicode, TextSize = 16 }, diff --git a/osu.Game/Beatmaps/Drawable/Panel.cs b/osu.Game/Beatmaps/Drawable/Panel.cs index 98b7cc4e97..c9da9e9ac2 100644 --- a/osu.Game/Beatmaps/Drawable/Panel.cs +++ b/osu.Game/Beatmaps/Drawable/Panel.cs @@ -10,6 +10,7 @@ using osu.Framework; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Framework.Input; +using OpenTK; using OpenTK.Graphics; namespace osu.Game.Beatmaps.Drawable @@ -69,7 +70,13 @@ namespace osu.Game.Beatmaps.Drawable BorderColour = new Color4(BorderColour.R, BorderColour.G, BorderColour.B, 0); BorderThickness = 0; - EdgeEffect = new EdgeEffect { Type = EdgeEffectType.None }; + EdgeEffect = new EdgeEffect + { + Type = EdgeEffectType.Shadow, + Offset = new Vector2(1), + Radius = 10, + Colour = new Color4(0, 0, 0, 100), + }; } protected override bool OnClick(InputState state) diff --git a/osu.Game/Beatmaps/IO/ArchiveReader.cs b/osu.Game/Beatmaps/IO/ArchiveReader.cs index 5f1afe3a00..bde6bb8b35 100644 --- a/osu.Game/Beatmaps/IO/ArchiveReader.cs +++ b/osu.Game/Beatmaps/IO/ArchiveReader.cs @@ -1,12 +1,13 @@ using System; using System.Collections.Generic; using System.IO; +using osu.Framework.IO.Stores; using osu.Framework.Platform; using osu.Game.Database; namespace osu.Game.Beatmaps.IO { - public abstract class ArchiveReader : IDisposable + public abstract class ArchiveReader : IDisposable, IResourceStore { private class Reader { @@ -42,8 +43,23 @@ namespace osu.Game.Beatmaps.IO /// /// Opens a stream for reading a specific file from this archive. /// - public abstract Stream ReadFile(string name); + public abstract Stream GetStream(string name); public abstract void Dispose(); + + public virtual byte[] Get(string name) + { + using (Stream input = GetStream(name)) + { + if (input == null) + return null; + + using (MemoryStream ms = new MemoryStream()) + { + input.CopyTo(ms); + return ms.ToArray(); + } + } + } } } \ No newline at end of file diff --git a/osu.Game/Beatmaps/IO/OszArchiveReader.cs b/osu.Game/Beatmaps/IO/OszArchiveReader.cs index edfaca7708..85ee2d19b9 100644 --- a/osu.Game/Beatmaps/IO/OszArchiveReader.cs +++ b/osu.Game/Beatmaps/IO/OszArchiveReader.cs @@ -33,7 +33,7 @@ namespace osu.Game.Beatmaps.IO .Select(e => e.FileName).ToArray(); if (beatmaps.Length == 0) throw new FileNotFoundException(@"This directory contains no beatmaps"); - using (var stream = new StreamReader(ReadFile(beatmaps[0]))) + using (var stream = new StreamReader(GetStream(beatmaps[0]))) { var decoder = BeatmapDecoder.GetDecoder(stream); firstMap = decoder.Decode(stream); @@ -45,7 +45,7 @@ namespace osu.Game.Beatmaps.IO return beatmaps; } - public override Stream ReadFile(string name) + public override Stream GetStream(string name) { ZipEntry entry = archive.Entries.SingleOrDefault(e => e.FileName == name); if (entry == null) diff --git a/osu.Game/Beatmaps/Objects/Osu/Drawable/DrawableCircle.cs b/osu.Game/Beatmaps/Objects/Osu/Drawable/DrawableCircle.cs index 4626f554f7..595584f099 100644 --- a/osu.Game/Beatmaps/Objects/Osu/Drawable/DrawableCircle.cs +++ b/osu.Game/Beatmaps/Objects/Osu/Drawable/DrawableCircle.cs @@ -171,7 +171,7 @@ namespace osu.Game.Beatmaps.Objects.Osu.Drawable { Anchor = Anchor.Centre, Origin = Anchor.Centre, - Additive = true, + BlendingMode = BlendingMode.Additive, Alpha = 0.5f } }; @@ -222,7 +222,7 @@ namespace osu.Game.Beatmaps.Objects.Osu.Drawable Anchor = Anchor.Centre; Origin = Anchor.Centre; - Additive = true; + BlendingMode = BlendingMode.Additive; Alpha = 0; Children = new Framework.Graphics.Drawable[] @@ -244,7 +244,7 @@ namespace osu.Game.Beatmaps.Objects.Osu.Drawable Anchor = Anchor.Centre; Origin = Anchor.Centre; - Additive = true; + BlendingMode = BlendingMode.Additive; Alpha = 0; Children = new Framework.Graphics.Drawable[] @@ -283,7 +283,7 @@ namespace osu.Game.Beatmaps.Objects.Osu.Drawable }, triangles = new Triangles { - Additive = true, + BlendingMode = BlendingMode.Additive, RelativeSizeAxes = Axes.Both } }; diff --git a/osu.Game/Beatmaps/Timing/TimingChange.cs b/osu.Game/Beatmaps/Timing/TimingChange.cs index dd2b9cdc7c..da552881a1 100644 --- a/osu.Game/Beatmaps/Timing/TimingChange.cs +++ b/osu.Game/Beatmaps/Timing/TimingChange.cs @@ -13,6 +13,11 @@ namespace osu.Game.Beatmaps.Timing { public double BeatLength; + public TimingChange(double beatLength) + { + BeatLength = beatLength; + } + public double BPM => 60000 / BeatLength; } } diff --git a/osu.Game/Beatmaps/WorkingBeatmap.cs b/osu.Game/Beatmaps/WorkingBeatmap.cs index 4deed53465..07e88af517 100644 --- a/osu.Game/Beatmaps/WorkingBeatmap.cs +++ b/osu.Game/Beatmaps/WorkingBeatmap.cs @@ -4,6 +4,7 @@ using System; using System.IO; using osu.Framework.Audio.Track; +using osu.Framework.Graphics.Textures; using osu.Game.Beatmaps.Formats; using osu.Game.Beatmaps.IO; using osu.Game.Database; @@ -12,9 +13,30 @@ namespace osu.Game.Beatmaps { public class WorkingBeatmap : IDisposable { - public BeatmapInfo BeatmapInfo; + public readonly BeatmapInfo BeatmapInfo; - public readonly ArchiveReader Reader; + public readonly BeatmapSetInfo BeatmapSetInfo; + private readonly BeatmapDatabase database; + + private ArchiveReader reader => database.GetReader(BeatmapSetInfo); + + private Texture background; + public Texture Background + { + get + { + if (background != null) return background; + + try + { + background = new TextureStore(new RawTextureLoaderStore(reader)).Get(BeatmapInfo.Metadata.BackgroundFile); + } + catch { } + + return background; + } + set { background = value; } + } private Beatmap beatmap; public Beatmap Beatmap @@ -25,7 +47,7 @@ namespace osu.Game.Beatmaps try { - using (var stream = new StreamReader(Reader.ReadFile(BeatmapInfo.Path))) + using (var stream = new StreamReader(reader.GetStream(BeatmapInfo.Path))) beatmap = BeatmapDecoder.GetDecoder(stream)?.Decode(stream); } catch { } @@ -44,7 +66,7 @@ namespace osu.Game.Beatmaps try { - var trackData = Reader.ReadFile(BeatmapInfo.Metadata.AudioFile); + var trackData = reader.GetStream(BeatmapInfo.Metadata.AudioFile); if (trackData != null) track = new AudioTrackBass(trackData); } @@ -55,10 +77,16 @@ namespace osu.Game.Beatmaps set { track = value; } } - public WorkingBeatmap(BeatmapInfo beatmapInfo = null, ArchiveReader reader = null) + public WorkingBeatmap(Beatmap beatmap) + { + this.beatmap = beatmap; + } + + public WorkingBeatmap(BeatmapInfo beatmapInfo, BeatmapSetInfo beatmapSetInfo, BeatmapDatabase database) { this.BeatmapInfo = beatmapInfo; - Reader = reader; + this.BeatmapSetInfo = beatmapSetInfo; + this.database = database; } private bool isDisposed; @@ -68,7 +96,7 @@ namespace osu.Game.Beatmaps if (!isDisposed) { track?.Dispose(); - Reader?.Dispose(); + reader?.Dispose(); isDisposed = true; } } diff --git a/osu.Game/Database/BeatmapDatabase.cs b/osu.Game/Database/BeatmapDatabase.cs index bb98daf6bc..aa68a3be15 100644 --- a/osu.Game/Database/BeatmapDatabase.cs +++ b/osu.Game/Database/BeatmapDatabase.cs @@ -95,7 +95,7 @@ namespace osu.Game.Database string[] mapNames = reader.ReadBeatmaps(); foreach (var name in mapNames) { - using (var stream = new StreamReader(reader.ReadFile(name))) + using (var stream = new StreamReader(reader.GetStream(name))) { var decoder = BeatmapDecoder.GetDecoder(stream); Beatmap beatmap = decoder.Decode(stream); @@ -149,12 +149,10 @@ namespace osu.Game.Database if (beatmapSetInfo == null) throw new InvalidOperationException($@"Beatmap set {beatmapInfo.BeatmapSetID} is not in the local database."); - var reader = GetReader(beatmapSetInfo); - if (beatmapInfo.Metadata == null) beatmapInfo.Metadata = beatmapSetInfo.Metadata; - var working = new WorkingBeatmap(beatmapInfo, reader); + var working = new WorkingBeatmap(beatmapInfo, beatmapSetInfo, this); previous?.TransferTo(working); diff --git a/osu.Game/GameModes/GameModeWhiteBox.cs b/osu.Game/GameModes/GameModeWhiteBox.cs index d4a0893cba..3bb8dd4566 100644 --- a/osu.Game/GameModes/GameModeWhiteBox.cs +++ b/osu.Game/GameModes/GameModeWhiteBox.cs @@ -91,7 +91,7 @@ namespace osu.Game.GameModes Origin = Anchor.Centre, Colour = getColourFor(GetType()), Alpha = 1, - Additive = false + BlendingMode = BlendingMode.Additive, }, textContainer = new Container { diff --git a/osu.Game/GameModes/Menu/Intro.cs b/osu.Game/GameModes/Menu/Intro.cs index 308eb157d3..c107fd0c92 100644 --- a/osu.Game/GameModes/Menu/Intro.cs +++ b/osu.Game/GameModes/Menu/Intro.cs @@ -35,7 +35,7 @@ namespace osu.Game.GameModes.Menu logo = new OsuLogo() { Alpha = 0, - Additive = true, + BlendingMode = BlendingMode.Additive, Interactive = false, Colour = Color4.DarkGray, Ripple = false diff --git a/osu.Game/GameModes/Menu/OsuLogo.cs b/osu.Game/GameModes/Menu/OsuLogo.cs index 889b7ccb32..106df1a1be 100644 --- a/osu.Game/GameModes/Menu/OsuLogo.cs +++ b/osu.Game/GameModes/Menu/OsuLogo.cs @@ -83,7 +83,7 @@ namespace osu.Game.GameModes.Menu { Anchor = Anchor.Centre, Origin = Anchor.Centre, - Additive = true, + BlendingMode = BlendingMode.Additive, Alpha = 0.05f } } @@ -93,7 +93,7 @@ namespace osu.Game.GameModes.Menu Anchor = Anchor.Centre, Origin = Anchor.Centre, Size = logo.Size, - Additive = true, + BlendingMode = BlendingMode.Additive, Alpha = 0.2f, } } diff --git a/osu.Game/GameModes/Play/PlaySongSelect.cs b/osu.Game/GameModes/Play/PlaySongSelect.cs index d7136e52d0..a2855d55b5 100644 --- a/osu.Game/GameModes/Play/PlaySongSelect.cs +++ b/osu.Game/GameModes/Play/PlaySongSelect.cs @@ -240,7 +240,10 @@ namespace osu.Game.GameModes.Play beatmapSet = database.GetWithChildren(beatmapSet.BeatmapSetID); beatmapSet.Beatmaps.ForEach(b => database.GetChildren(b)); beatmapSet.Beatmaps = beatmapSet.Beatmaps.OrderBy(b => b.BaseDifficulty.OverallDifficulty).ToList(); - var group = new BeatmapGroup(beatmapSet) { SelectionChanged = selectionChanged }; + + var working = database.GetWorkingBeatmap(beatmapSet.Beatmaps.FirstOrDefault()); + + var group = new BeatmapGroup(beatmapSet, working) { SelectionChanged = selectionChanged }; group.Preload(Game, g => { diff --git a/osu.Game/Graphics/Background/Background.cs b/osu.Game/Graphics/Background/Background.cs index bb5b229f8b..8d004dcf86 100644 --- a/osu.Game/Graphics/Background/Background.cs +++ b/osu.Game/Graphics/Background/Background.cs @@ -10,7 +10,6 @@ using OpenTK.Graphics; using osu.Framework.Graphics.Containers; using osu.Framework; using System.Threading.Tasks; -using osu.Framework.Graphics.Textures; namespace osu.Game.Graphics.Background { @@ -27,8 +26,6 @@ namespace osu.Game.Graphics.Background Depth = float.MinValue; } - Texture texture; - protected override void Load(BaseGame game) { base.Load(game); diff --git a/osu.Game/OsuGameBase.cs b/osu.Game/OsuGameBase.cs index a506044bee..ae13b20f4a 100644 --- a/osu.Game/OsuGameBase.cs +++ b/osu.Game/OsuGameBase.cs @@ -65,9 +65,21 @@ namespace osu.Game //this completely overrides the framework default. will need to change once we make a proper FontStore. Fonts = new TextureStore() { ScaleAdjust = 0.01f }; - Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-Regular")); + Fonts.AddStore(new GlyphStore(Resources, @"Fonts/FontAwesome")); Fonts.AddStore(new GlyphStore(Resources, @"Fonts/osuFont")); + Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-Regular")); + Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-RegularItalic")); + Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-SemiBold")); + Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-SemiBoldItalic")); + Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-Bold")); + Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-BoldItalic")); + Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-Light")); + Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-LightItalic")); + Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-Medium")); + Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-MediumItalic")); + Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-Black")); + Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-BlackItalic")); API = new APIAccess() { diff --git a/osu.Game/Overlays/OptionsOverlay.cs b/osu.Game/Overlays/OptionsOverlay.cs index 5f6e3ba3e3..cdf7628953 100644 --- a/osu.Game/Overlays/OptionsOverlay.cs +++ b/osu.Game/Overlays/OptionsOverlay.cs @@ -44,7 +44,7 @@ namespace osu.Game.Overlays new ScrollContainer { RelativeSizeAxes = Axes.Both, - ScrollDraggerOnLeft = true, + ScrollDraggerAnchor = Anchor.TopLeft, Children = new[] { new FlowContainer diff --git a/osu.Game/Overlays/ToolbarButton.cs b/osu.Game/Overlays/ToolbarButton.cs index adc436a3b4..65004a78da 100644 --- a/osu.Game/Overlays/ToolbarButton.cs +++ b/osu.Game/Overlays/ToolbarButton.cs @@ -66,7 +66,7 @@ namespace osu.Game.Overlays HoverBackground = new Box { RelativeSizeAxes = Axes.Both, - Additive = true, + BlendingMode = BlendingMode.Additive, Colour = new Color4(60, 60, 60, 255), Alpha = 0, },