diff --git a/osu-framework b/osu-framework
index 41e2a0a430..cc39713fbf 160000
--- a/osu-framework
+++ b/osu-framework
@@ -1 +1 @@
-Subproject commit 41e2a0a4304544fb67779c21cad1435c105982d5
+Subproject commit cc39713fbf9427aa53df91e27ecd09d15661089f
diff --git a/osu.Desktop/osu.nuspec b/osu.Desktop/osu.nuspec
index bb7d382cee..316a5443ef 100644
--- a/osu.Desktop/osu.nuspec
+++ b/osu.Desktop/osu.nuspec
@@ -16,11 +16,9 @@
en-AU
-
-
-
-
-
+
+
+
diff --git a/osu.Game/Database/ArchiveModelManager.cs b/osu.Game/Database/ArchiveModelManager.cs
index 4c60db3a23..f0e67a7185 100644
--- a/osu.Game/Database/ArchiveModelManager.cs
+++ b/osu.Game/Database/ArchiveModelManager.cs
@@ -80,7 +80,6 @@ namespace osu.Game.Database
var notification = new ProgressNotification
{
Text = "Import is initialising...",
- CompletionText = "Import successful!",
Progress = 0,
State = ProgressNotificationState.Active,
};
@@ -89,7 +88,8 @@ namespace osu.Game.Database
List imported = new List();
- int i = 0;
+ int current = 0;
+ int errors = 0;
foreach (string path in paths)
{
if (notification.State == ProgressNotificationState.Cancelled)
@@ -98,11 +98,11 @@ namespace osu.Game.Database
try
{
- notification.Text = $"Importing ({i} of {paths.Length})\n{Path.GetFileName(path)}";
+ notification.Text = $"Importing ({++current} of {paths.Length})\n{Path.GetFileName(path)}";
using (ArchiveReader reader = getReaderFrom(path))
imported.Add(Import(reader));
- notification.Progress = (float)++i / paths.Length;
+ notification.Progress = (float)current / paths.Length;
// We may or may not want to delete the file depending on where it is stored.
// e.g. reconstructing/repairing database with items from default storage.
@@ -122,9 +122,11 @@ namespace osu.Game.Database
{
e = e.InnerException ?? e;
Logger.Error(e, $@"Could not import ({Path.GetFileName(path)})");
+ errors++;
}
}
+ notification.Text = errors > 0 ? $"Import complete with {errors} errors" : "Import successful!";
notification.State = ProgressNotificationState.Completed;
}
@@ -219,9 +221,11 @@ namespace osu.Game.Database
// user requested abort
return;
- notification.Text = $"Deleting ({i} of {items.Count})";
- notification.Progress = (float)++i / items.Count;
+ notification.Text = $"Deleting ({++i} of {items.Count})";
+
Delete(b);
+
+ notification.Progress = (float)i / items.Count;
}
}
@@ -255,9 +259,11 @@ namespace osu.Game.Database
// user requested abort
return;
- notification.Text = $"Restoring ({i} of {items.Count})";
- notification.Progress = (float)++i / items.Count;
+ notification.Text = $"Restoring ({++i} of {items.Count})";
+
Undelete(item);
+
+ notification.Progress = (float)i / items.Count;
}
}
diff --git a/osu.Game/Graphics/Backgrounds/Triangles.cs b/osu.Game/Graphics/Backgrounds/Triangles.cs
index 6f9d83473f..89ed8044e6 100644
--- a/osu.Game/Graphics/Backgrounds/Triangles.cs
+++ b/osu.Game/Graphics/Backgrounds/Triangles.cs
@@ -242,7 +242,7 @@ namespace osu.Game.Graphics.Backgrounds
triangle,
colourInfo,
null,
- Shared.VertexBatch.Add,
+ Shared.VertexBatch.AddAction,
Vector2.Divide(localInflationAmount, size));
}
diff --git a/osu.Game/Screens/Menu/LogoVisualisation.cs b/osu.Game/Screens/Menu/LogoVisualisation.cs
index 3a3f3d4650..fc747acbb4 100644
--- a/osu.Game/Screens/Menu/LogoVisualisation.cs
+++ b/osu.Game/Screens/Menu/LogoVisualisation.cs
@@ -211,7 +211,7 @@ namespace osu.Game.Screens.Menu
rectangle,
colourInfo,
null,
- Shared.VertexBatch.Add,
+ Shared.VertexBatch.AddAction,
//barSize by itself will make it smooth more in the X axis than in the Y axis, this reverts that.
Vector2.Divide(inflation, barSize.Yx));
}
diff --git a/osu.Game/Screens/Select/SongSelect.cs b/osu.Game/Screens/Select/SongSelect.cs
index ca8a1cae41..f01616ade2 100644
--- a/osu.Game/Screens/Select/SongSelect.cs
+++ b/osu.Game/Screens/Select/SongSelect.cs
@@ -259,6 +259,8 @@ namespace osu.Game.Screens.Select
private void workingBeatmapChanged(WorkingBeatmap beatmap)
{
+ if (beatmap is DummyWorkingBeatmap) return;
+
if (IsCurrentScreen && !Carousel.SelectBeatmap(beatmap?.BeatmapInfo, false))
// If selecting new beatmap without bypassing filters failed, there's possibly a ruleset mismatch
if (beatmap?.BeatmapInfo?.Ruleset != null && beatmap.BeatmapInfo.Ruleset != Ruleset.Value)