diff --git a/osu-framework b/osu-framework
index 4d131fd0d9..269a1fd192 160000
--- a/osu-framework
+++ b/osu-framework
@@ -1 +1 @@
-Subproject commit 4d131fd0d997bee313de3fa33a45900637570ff0
+Subproject commit 269a1fd192c573d558a5ab0ff990a8b462947287
diff --git a/osu.Desktop/OpenTK.dll.config b/osu.Desktop/OpenTK.dll.config
new file mode 100644
index 0000000000..627e9f6009
--- /dev/null
+++ b/osu.Desktop/OpenTK.dll.config
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/osu.Desktop/osu.Desktop.csproj b/osu.Desktop/osu.Desktop.csproj
index 934004dfde..fbc342d695 100644
--- a/osu.Desktop/osu.Desktop.csproj
+++ b/osu.Desktop/osu.Desktop.csproj
@@ -123,7 +123,10 @@
$(SolutionDir)\packages\squirrel.windows.1.5.2\lib\Net45\NuGet.Squirrel.dll
True
-
+
+ $(SolutionDir)\packages\ppy.OpenTK.2.0.50727.1340\lib\net45\OpenTK.dll
+ True
+
$(SolutionDir)\packages\Splat.2.0.0\lib\Net45\Splat.dll
True
@@ -150,6 +153,7 @@
osu.licenseheader
+
diff --git a/osu.Desktop/packages.config b/osu.Desktop/packages.config
index bdeaf1de89..be9b65f0c6 100644
--- a/osu.Desktop/packages.config
+++ b/osu.Desktop/packages.config
@@ -7,6 +7,7 @@ Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/maste
+
\ No newline at end of file
diff --git a/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs b/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs
index f8986b2ecd..e26dcac16b 100644
--- a/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs
+++ b/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs
@@ -36,7 +36,8 @@ namespace osu.Game.Beatmaps.Drawables
new DelayedLoadContainer
{
RelativeSizeAxes = Axes.Both,
- TimeBeforeLoad = 100,
+ TimeBeforeLoad = 300,
+ FinishedLoading = d => d.FadeInFromZero(400, EasingTypes.Out),
Children = new[]
{
new PanelBackground(beatmap)
diff --git a/osu.Game/OsuGame.cs b/osu.Game/OsuGame.cs
index fdcc250d0f..66196670b8 100644
--- a/osu.Game/OsuGame.cs
+++ b/osu.Game/OsuGame.cs
@@ -199,7 +199,7 @@ namespace osu.Game
{
Depth = -3,
OnHome = delegate { intro?.ChildScreen?.MakeCurrent(); },
- OnPlayModeChange = delegate (PlayMode m) { PlayMode.Value = m; },
+ OnPlayModeChange = m => PlayMode.Value = m,
}).LoadAsync(this, t =>
{
PlayMode.ValueChanged += delegate { Toolbar.SetGameMode(PlayMode.Value); };
diff --git a/osu.Game/Overlays/Toolbar/ToolbarModeSelector.cs b/osu.Game/Overlays/Toolbar/ToolbarModeSelector.cs
index be28857de6..d20564bd03 100644
--- a/osu.Game/Overlays/Toolbar/ToolbarModeSelector.cs
+++ b/osu.Game/Overlays/Toolbar/ToolbarModeSelector.cs
@@ -65,14 +65,13 @@ namespace osu.Game.Overlays.Toolbar
foreach (PlayMode m in Ruleset.PlayModes)
{
- var localMode = m;
modeButtons.Add(new ToolbarModeButton
{
Mode = m,
Action = delegate
{
- SetGameMode(localMode);
- OnPlayModeChange?.Invoke(localMode);
+ SetGameMode(m);
+ OnPlayModeChange?.Invoke(m);
}
});
}
diff --git a/osu.Game/Screens/Select/BeatmapCarousel.cs b/osu.Game/Screens/Select/BeatmapCarousel.cs
index e947d12f22..7443603c8b 100644
--- a/osu.Game/Screens/Select/BeatmapCarousel.cs
+++ b/osu.Game/Screens/Select/BeatmapCarousel.cs
@@ -181,7 +181,8 @@ namespace osu.Game.Screens.Select
{
if (!IsLoaded) return;
- criteria = newCriteria ?? criteria ?? new FilterCriteria();
+ if (newCriteria != null)
+ criteria = newCriteria;
Action perform = delegate
{
@@ -202,6 +203,8 @@ namespace osu.Game.Screens.Select
if (selectedGroup == null || selectedGroup.State == BeatmapGroupState.Hidden)
SelectNext();
+ else
+ selectGroup(selectedGroup);
};
filterTask?.Cancel();
diff --git a/osu.Game/Screens/Select/FilterControl.cs b/osu.Game/Screens/Select/FilterControl.cs
index d6537ca0d6..5445847da5 100644
--- a/osu.Game/Screens/Select/FilterControl.cs
+++ b/osu.Game/Screens/Select/FilterControl.cs
@@ -175,6 +175,7 @@ namespace osu.Game.Screens.Select
if (osu != null)
playMode.BindTo(osu.PlayMode);
+ playMode.ValueChanged += (s, e) => FilterChanged?.Invoke(CreateCriteria());
}
protected override bool OnMouseDown(InputState state, MouseDownEventArgs args) => true;
diff --git a/osu.Game/Screens/Select/SongSelect.cs b/osu.Game/Screens/Select/SongSelect.cs
index 6eb26d22cb..656adf0d62 100644
--- a/osu.Game/Screens/Select/SongSelect.cs
+++ b/osu.Game/Screens/Select/SongSelect.cs
@@ -276,7 +276,7 @@ namespace osu.Game.Screens.Select
initialAddSetsTask.Cancel();
}
- private void playMode_ValueChanged(object sender, EventArgs e) => carousel.Filter();
+ private void playMode_ValueChanged(object sender, EventArgs e) => Beatmap.PreferredPlayMode = playMode;
private void changeBackground(WorkingBeatmap beatmap)
{
diff --git a/osu.Game/Screens/Tournament/ScrollingTeamContainer.cs b/osu.Game/Screens/Tournament/ScrollingTeamContainer.cs
index 4d965bf3a5..b80f76d281 100644
--- a/osu.Game/Screens/Tournament/ScrollingTeamContainer.cs
+++ b/osu.Game/Screens/Tournament/ScrollingTeamContainer.cs
@@ -298,9 +298,7 @@ namespace osu.Game.Screens.Tournament
private void speedTo(float value, double duration = 0, EasingTypes easing = EasingTypes.None)
{
DelayReset();
-
- UpdateTransformsOfType(typeof(TransformScrollSpeed));
- TransformFloatTo(speed, value, duration, easing, new TransformScrollSpeed());
+ TransformTo(speed, value, duration, easing, new TransformScrollSpeed());
}
private enum ScrollState