diff --git a/LangVer.props b/LangVer.props
new file mode 100644
index 0000000000..6b1d1dae73
--- /dev/null
+++ b/LangVer.props
@@ -0,0 +1,6 @@
+
+
+
+ 6
+
+
\ No newline at end of file
diff --git a/OpenTK.props b/OpenTK.props
new file mode 100644
index 0000000000..0876c52b66
--- /dev/null
+++ b/OpenTK.props
@@ -0,0 +1,9 @@
+
+
+
+
+
+ PreserveNewest
+
+
+
\ No newline at end of file
diff --git a/osu-framework b/osu-framework
index aa7fb2f83c..7d5df64338 160000
--- a/osu-framework
+++ b/osu-framework
@@ -1 +1 @@
-Subproject commit aa7fb2f83c5883a23eca0f5799905669fa6cead3
+Subproject commit 7d5df64338e3b3be7bdf3509e9c47a3e9b930430
diff --git a/osu-resources b/osu-resources
index 1750ab8f67..c3def1cf00 160000
--- a/osu-resources
+++ b/osu-resources
@@ -1 +1 @@
-Subproject commit 1750ab8f6761ab35592fd46da71fbe0c141bfd93
+Subproject commit c3def1cf0038c5a8bcbe35a56914ffeebb25b10b
diff --git a/osu.Desktop/OsuGameDesktop.cs b/osu.Desktop/OsuGameDesktop.cs
index 60d70e1ece..3eaa23f4c7 100644
--- a/osu.Desktop/OsuGameDesktop.cs
+++ b/osu.Desktop/OsuGameDesktop.cs
@@ -2,10 +2,8 @@
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
using System;
-using System.Drawing;
using System.IO;
using System.Linq;
-using System.Reflection;
using System.Threading.Tasks;
using Microsoft.Win32;
using osu.Desktop.Overlays;
diff --git a/osu.Game.Rulesets.Catch/OpenTK.dll.config b/osu.Game.Rulesets.Catch/OpenTK.dll.config
deleted file mode 100644
index 5620e3d9e2..0000000000
--- a/osu.Game.Rulesets.Catch/OpenTK.dll.config
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/osu.Game.Rulesets.Catch/Properties/AssemblyInfo.cs b/osu.Game.Rulesets.Catch/Properties/AssemblyInfo.cs
deleted file mode 100644
index dd2006c60c..0000000000
--- a/osu.Game.Rulesets.Catch/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (c) 2007-2017 ppy Pty Ltd .
-// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
-
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("osu.Game.Rulesets.Catch")]
-[assembly: AssemblyDescription("catch the fruit. to the beat.")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("ppy Pty Ltd")]
-[assembly: AssemblyProduct("osu.Game.Rulesets.Catch")]
-[assembly: AssemblyCopyright("ppy Pty Ltd 2007-2017")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("58f6c80c-1253-4a0e-a465-b8c85ebeadf3")]
-
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/osu.Game.Rulesets.Catch/app.config b/osu.Game.Rulesets.Catch/app.config
deleted file mode 100644
index c9d4e44b1a..0000000000
--- a/osu.Game.Rulesets.Catch/app.config
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/osu.Game.Rulesets.Catch/osu.Game.Rulesets.Catch.csproj b/osu.Game.Rulesets.Catch/osu.Game.Rulesets.Catch.csproj
index 0c61a5b312..76396f1815 100644
--- a/osu.Game.Rulesets.Catch/osu.Game.Rulesets.Catch.csproj
+++ b/osu.Game.Rulesets.Catch/osu.Game.Rulesets.Catch.csproj
@@ -1,102 +1,23 @@
-
-
-
-
- Debug
- AnyCPU
- {58F6C80C-1253-4A0E-A465-B8C85EBEADF3}
+
+
+
+
+ netstandard2.0;net461
Library
- Properties
- osu.Game.Rulesets.Catch
- osu.Game.Rulesets.Catch
- v4.6.1
- 512
+ AnyCPU
+ true
+ ppy Pty Ltd
+ 1.0.0.0
+ ppy Pty Ltd 2007-2017
+ osu.Game.Rulesets.Catch
+ catch the fruit. to the beat.
+ osu.Game.Rulesets.Catch
-
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
- false
- 6
-
-
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
- false
-
-
-
- $(SolutionDir)\packages\NUnit.3.8.1\lib\net45\nunit.framework.dll
- True
-
-
- True
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
- osu.licenseheader
-
-
-
-
-
-
-
- {C76BF5B3-985E-4D39-95FE-97C9C879B83A}
- osu.Framework
- True
-
-
- {2a66dd92-adb1-4994-89e2-c94e04acda0d}
- osu.Game
- True
-
-
-
-
\ No newline at end of file
diff --git a/osu.Game.Rulesets.Mania/OpenTK.dll.config b/osu.Game.Rulesets.Mania/OpenTK.dll.config
deleted file mode 100644
index 5620e3d9e2..0000000000
--- a/osu.Game.Rulesets.Mania/OpenTK.dll.config
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/osu.Game.Rulesets.Mania/Properties/AssemblyInfo.cs b/osu.Game.Rulesets.Mania/Properties/AssemblyInfo.cs
deleted file mode 100644
index 85a8f95b14..0000000000
--- a/osu.Game.Rulesets.Mania/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (c) 2007-2017 ppy Pty Ltd .
-// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
-
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("osu.Game.Rulesets.Mania")]
-[assembly: AssemblyDescription("smash the keys. to the beat.")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("ppy Pty Ltd")]
-[assembly: AssemblyProduct("osu.Game.Rulesets.Mania")]
-[assembly: AssemblyCopyright("ppy Pty Ltd 2007-2017")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("48f4582b-7687-4621-9cbe-5c24197cb536")]
-
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/osu.Game.Rulesets.Mania/app.config b/osu.Game.Rulesets.Mania/app.config
deleted file mode 100644
index c9d4e44b1a..0000000000
--- a/osu.Game.Rulesets.Mania/app.config
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/osu.Game.Rulesets.Mania/osu.Game.Rulesets.Mania.csproj b/osu.Game.Rulesets.Mania/osu.Game.Rulesets.Mania.csproj
index edc77f5c7b..ba9176c853 100644
--- a/osu.Game.Rulesets.Mania/osu.Game.Rulesets.Mania.csproj
+++ b/osu.Game.Rulesets.Mania/osu.Game.Rulesets.Mania.csproj
@@ -1,125 +1,23 @@
-
-
-
-
- Debug
- AnyCPU
- {48F4582B-7687-4621-9CBE-5C24197CB536}
+
+
+
+
+ netstandard2.0;net461
Library
- Properties
- osu.Game.Rulesets.Mania
- osu.Game.Rulesets.Mania
- v4.6.1
- 512
+ AnyCPU
+ true
+ ppy Pty Ltd
+ 1.0.0.0
+ ppy Pty Ltd 2007-2017
+ osu.Game.Rulests.Mania
+ smash the keys. to the beat.
+ osu.Game.Rulests.Mania
-
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
- false
- 6
-
-
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
- false
-
-
-
- $(SolutionDir)\packages\NUnit.3.8.1\lib\net45\nunit.framework.dll
- True
-
-
- True
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
- osu.licenseheader
-
-
-
-
-
-
-
- {C76BF5B3-985E-4D39-95FE-97C9C879B83A}
- osu.Framework
- True
-
-
- {2a66dd92-adb1-4994-89e2-c94e04acda0d}
- osu.Game
- True
-
-
-
-
\ No newline at end of file
diff --git a/osu.Game.Rulesets.Osu/OpenTK.dll.config b/osu.Game.Rulesets.Osu/OpenTK.dll.config
deleted file mode 100644
index 5620e3d9e2..0000000000
--- a/osu.Game.Rulesets.Osu/OpenTK.dll.config
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/osu.Game.Rulesets.Osu/Properties/AssemblyInfo.cs b/osu.Game.Rulesets.Osu/Properties/AssemblyInfo.cs
deleted file mode 100644
index b6cf47071a..0000000000
--- a/osu.Game.Rulesets.Osu/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (c) 2007-2017 ppy Pty Ltd .
-// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
-
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("osu.Game.Mode.Osu")]
-[assembly: AssemblyDescription("click the circles. to the beat.")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("ppy Pty Ltd")]
-[assembly: AssemblyProduct("osu.Game.Mode.Osu")]
-[assembly: AssemblyCopyright("ppy Pty Ltd 2007-2017")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("c92a607b-1fdd-4954-9f92-03ff547d9080")]
-
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/osu.Game.Rulesets.Osu/app.config b/osu.Game.Rulesets.Osu/app.config
deleted file mode 100644
index c9d4e44b1a..0000000000
--- a/osu.Game.Rulesets.Osu/app.config
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/osu.Game.Rulesets.Osu/osu.Game.Rulesets.Osu.csproj b/osu.Game.Rulesets.Osu/osu.Game.Rulesets.Osu.csproj
index 3939b3f108..a28ee218b5 100644
--- a/osu.Game.Rulesets.Osu/osu.Game.Rulesets.Osu.csproj
+++ b/osu.Game.Rulesets.Osu/osu.Game.Rulesets.Osu.csproj
@@ -1,133 +1,23 @@
-
-
-
-
- Debug
- AnyCPU
- {C92A607B-1FDD-4954-9F92-03FF547D9080}
+
+
+
+
+ netstandard2.0;net461
Library
- Properties
- osu.Game.Rulesets.Osu
- osu.Game.Rulesets.Osu
- v4.6.1
- 512
-
+ AnyCPU
+ true
+ ppy Pty Ltd
+ 1.0.0.0
+ ppy Pty Ltd 2007-2017
+ osu.Game.Rulesets.Osu
+ click the circles. to the beat.
+ osu.Game.Rulesets.Osu
-
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
- false
- 6
-
-
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
- false
-
-
-
- $(SolutionDir)\packages\NUnit.3.8.1\lib\net45\nunit.framework.dll
- True
-
-
- True
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
- osu.licenseheader
-
-
-
-
-
-
-
- {C76BF5B3-985E-4D39-95FE-97C9C879B83A}
- osu.Framework
- True
-
-
- {2a66dd92-adb1-4994-89e2-c94e04acda0d}
- osu.Game
- True
-
-
-
-
-
\ No newline at end of file
diff --git a/osu.Game.Rulesets.Taiko/OpenTK.dll.config b/osu.Game.Rulesets.Taiko/OpenTK.dll.config
deleted file mode 100644
index 5620e3d9e2..0000000000
--- a/osu.Game.Rulesets.Taiko/OpenTK.dll.config
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/osu.Game.Rulesets.Taiko/Properties/AssemblyInfo.cs b/osu.Game.Rulesets.Taiko/Properties/AssemblyInfo.cs
deleted file mode 100644
index f6a9c8f101..0000000000
--- a/osu.Game.Rulesets.Taiko/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (c) 2007-2017 ppy Pty Ltd .
-// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
-
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("osu.Game.Rulesets.Taiko")]
-[assembly: AssemblyDescription("bash the drum. to the beat.")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("ppy Pty Ltd")]
-[assembly: AssemblyProduct("osu.Game.Rulesets.Taiko")]
-[assembly: AssemblyCopyright("ppy Pty Ltd 2007-2017")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("f167e17a-7de6-4af5-b920-a5112296c695")]
-
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/osu.Game.Rulesets.Taiko/app.config b/osu.Game.Rulesets.Taiko/app.config
deleted file mode 100644
index c9d4e44b1a..0000000000
--- a/osu.Game.Rulesets.Taiko/app.config
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/osu.Game.Rulesets.Taiko/osu.Game.Rulesets.Taiko.csproj b/osu.Game.Rulesets.Taiko/osu.Game.Rulesets.Taiko.csproj
index 868460e3d6..c4899d3c5c 100644
--- a/osu.Game.Rulesets.Taiko/osu.Game.Rulesets.Taiko.csproj
+++ b/osu.Game.Rulesets.Taiko/osu.Game.Rulesets.Taiko.csproj
@@ -1,124 +1,23 @@
-
-
-
-
- Debug
- AnyCPU
- {F167E17A-7DE6-4AF5-B920-A5112296C695}
+
+
+
+
+ netstandard2.0;net461
Library
- Properties
- osu.Game.Rulesets.Taiko
- osu.Game.Rulesets.Taiko
- v4.6.1
- 512
+ AnyCPU
+ true
+ ppy Pty Ltd
+ 1.0.0.0
+ ppy Pty Ltd 2007-2017
+ osu.Game.Rulesets.Taiko
+ bash the drum. to the beat.
+ osu.Game.Rulesets.Taiko
-
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
- false
- 6
-
-
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
- false
-
-
-
- $(SolutionDir)\packages\NUnit.3.8.1\lib\net45\nunit.framework.dll
- True
-
-
- True
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
- osu.licenseheader
-
-
-
-
-
-
-
- {C76BF5B3-985E-4D39-95FE-97C9C879B83A}
- osu.Framework
- True
-
-
- {2a66dd92-adb1-4994-89e2-c94e04acda0d}
- osu.Game
- True
-
-
-
-
\ No newline at end of file
diff --git a/osu.Game.props b/osu.Game.props
new file mode 100644
index 0000000000..c352fa2b06
--- /dev/null
+++ b/osu.Game.props
@@ -0,0 +1,8 @@
+
+
+
+
+ osu.licenseheader
+
+
+
\ No newline at end of file
diff --git a/osu.Game/Beatmaps/BeatmapManager.cs b/osu.Game/Beatmaps/BeatmapManager.cs
index ff0abd3d78..4bce2a96da 100644
--- a/osu.Game/Beatmaps/BeatmapManager.cs
+++ b/osu.Game/Beatmaps/BeatmapManager.cs
@@ -7,7 +7,6 @@ using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
-using Ionic.Zip;
using Microsoft.EntityFrameworkCore;
using osu.Framework.Audio.Track;
using osu.Framework.Extensions;
@@ -24,6 +23,7 @@ using osu.Game.Online.API;
using osu.Game.Online.API.Requests;
using osu.Game.Overlays.Notifications;
using osu.Game.Rulesets;
+using osu.Game.Utils;
namespace osu.Game.Beatmaps
{
@@ -418,7 +418,7 @@ namespace osu.Game.Beatmaps
/// A reader giving access to the beatmap's content.
private ArchiveReader getReaderFrom(string path)
{
- if (ZipFile.IsZipFile(path))
+ if (ZipUtils.IsZipArchive(path))
// ReSharper disable once InconsistentlySynchronizedField
return new OszArchiveReader(storage.GetStream(path));
return new LegacyFilesystemReader(path);
diff --git a/osu.Game/Beatmaps/IO/OszArchiveReader.cs b/osu.Game/Beatmaps/IO/OszArchiveReader.cs
index 4e0c40d28e..491bd06487 100644
--- a/osu.Game/Beatmaps/IO/OszArchiveReader.cs
+++ b/osu.Game/Beatmaps/IO/OszArchiveReader.cs
@@ -4,31 +4,31 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
-using Ionic.Zip;
+using SharpCompress.Archives.Zip;
namespace osu.Game.Beatmaps.IO
{
public sealed class OszArchiveReader : ArchiveReader
{
private readonly Stream archiveStream;
- private readonly ZipFile archive;
+ private readonly ZipArchive archive;
public OszArchiveReader(Stream archiveStream)
{
this.archiveStream = archiveStream;
- archive = ZipFile.Read(archiveStream);
+ archive = ZipArchive.Open(archiveStream);
}
public override Stream GetStream(string name)
{
- ZipEntry entry = archive.Entries.SingleOrDefault(e => e.FileName == name);
+ ZipArchiveEntry entry = archive.Entries.SingleOrDefault(e => e.Key == name);
if (entry == null)
throw new FileNotFoundException();
// allow seeking
MemoryStream copy = new MemoryStream();
- using (Stream s = entry.OpenReader())
+ using (Stream s = entry.OpenEntryStream())
s.CopyTo(copy);
copy.Position = 0;
@@ -42,8 +42,8 @@ namespace osu.Game.Beatmaps.IO
archiveStream.Dispose();
}
- public override IEnumerable Filenames => archive.Entries.Select(e => e.FileName).ToArray();
+ public override IEnumerable Filenames => archive.Entries.Select(e => e.Key).ToArray();
public override Stream GetUnderlyingStream() => archiveStream;
}
-}
\ No newline at end of file
+}
diff --git a/osu.Game/IO/Legacy/SerializationReader.cs b/osu.Game/IO/Legacy/SerializationReader.cs
index c7ea884821..e79eef4e2b 100644
--- a/osu.Game/IO/Legacy/SerializationReader.cs
+++ b/osu.Game/IO/Legacy/SerializationReader.cs
@@ -7,7 +7,6 @@ using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.Serialization;
-using System.Runtime.Serialization.Formatters;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
@@ -175,7 +174,7 @@ namespace osu.Game.IO.Legacy
versionBinder = new VersionConfigToNamespaceAssemblyObjectBinder();
formatter = new BinaryFormatter
{
- AssemblyFormat = FormatterAssemblyStyle.Simple,
+// AssemblyFormat = FormatterAssemblyStyle.Simple,
Binder = versionBinder
};
}
diff --git a/osu.Game/IO/Legacy/SerializationWriter.cs b/osu.Game/IO/Legacy/SerializationWriter.cs
index 7325129128..c8af66fd8a 100644
--- a/osu.Game/IO/Legacy/SerializationWriter.cs
+++ b/osu.Game/IO/Legacy/SerializationWriter.cs
@@ -219,7 +219,7 @@ namespace osu.Game.IO.Legacy
Write((byte)ObjType.otherType);
BinaryFormatter b = new BinaryFormatter
{
- AssemblyFormat = FormatterAssemblyStyle.Simple,
+// AssemblyFormat = FormatterAssemblyStyle.Simple,
TypeFormat = FormatterTypeStyle.TypesWhenNeeded
};
b.Serialize(BaseStream, obj);
@@ -259,4 +259,4 @@ namespace osu.Game.IO.Legacy
WriteRawBytes(Encoding.UTF8.GetBytes(str));
}
}
-}
\ No newline at end of file
+}
diff --git a/osu.Game/Migrations/20171019041408_InitialCreate.cs b/osu.Game/Migrations/20171019041408_InitialCreate.cs
index 23e5b6f8bb..922aa85f18 100644
--- a/osu.Game/Migrations/20171019041408_InitialCreate.cs
+++ b/osu.Game/Migrations/20171019041408_InitialCreate.cs
@@ -1,6 +1,4 @@
using Microsoft.EntityFrameworkCore.Migrations;
-using System;
-using System.Collections.Generic;
namespace osu.Game.Migrations
{
diff --git a/osu.Game/Migrations/20171025071459_AddMissingIndexRules.cs b/osu.Game/Migrations/20171025071459_AddMissingIndexRules.cs
index a20652eedc..ad8884a4bf 100644
--- a/osu.Game/Migrations/20171025071459_AddMissingIndexRules.cs
+++ b/osu.Game/Migrations/20171025071459_AddMissingIndexRules.cs
@@ -1,6 +1,4 @@
using Microsoft.EntityFrameworkCore.Migrations;
-using System;
-using System.Collections.Generic;
namespace osu.Game.Migrations
{
diff --git a/osu.Game/Migrations/OsuDbContextModelSnapshot.cs b/osu.Game/Migrations/OsuDbContextModelSnapshot.cs
index 7029dcdcd5..025607bbd9 100644
--- a/osu.Game/Migrations/OsuDbContextModelSnapshot.cs
+++ b/osu.Game/Migrations/OsuDbContextModelSnapshot.cs
@@ -1,11 +1,7 @@
//
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Metadata;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage;
using osu.Game.Database;
-using System;
namespace osu.Game.Migrations
{
diff --git a/osu.Game/OpenTK.dll.config b/osu.Game/OpenTK.dll.config
deleted file mode 100644
index 5620e3d9e2..0000000000
--- a/osu.Game/OpenTK.dll.config
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/osu.Game/Overlays/Settings/Sections/General/LoginSettings.cs b/osu.Game/Overlays/Settings/Sections/General/LoginSettings.cs
index 4e7712936a..9e962a64a6 100644
--- a/osu.Game/Overlays/Settings/Sections/General/LoginSettings.cs
+++ b/osu.Game/Overlays/Settings/Sections/General/LoginSettings.cs
@@ -5,7 +5,6 @@ using System;
using osu.Framework.Allocation;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
-using osu.Framework.Graphics.Primitives;
using osu.Framework.Graphics.UserInterface;
using osu.Game.Configuration;
using osu.Game.Graphics.Sprites;
diff --git a/osu.Game/Overlays/Toolbar/ToolbarUserArea.cs b/osu.Game/Overlays/Toolbar/ToolbarUserArea.cs
index 7683406b49..3a0abf0232 100644
--- a/osu.Game/Overlays/Toolbar/ToolbarUserArea.cs
+++ b/osu.Game/Overlays/Toolbar/ToolbarUserArea.cs
@@ -4,7 +4,6 @@
using osu.Framework.Allocation;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
-using osu.Framework.Graphics.Primitives;
using OpenTK;
using RectangleF = osu.Framework.Graphics.Primitives.RectangleF;
diff --git a/osu.Game/Properties/AssemblyInfo.cs b/osu.Game/Properties/AssemblyInfo.cs
deleted file mode 100644
index e28f8a3873..0000000000
--- a/osu.Game/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (c) 2007-2017 ppy Pty Ltd .
-// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
-
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("osu.Game")]
-[assembly: AssemblyDescription("click the circles. to the beat.")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("ppy Pty Ltd")]
-[assembly: AssemblyProduct("osu.Game")]
-[assembly: AssemblyCopyright("ppy Pty Ltd 2007-2017")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("55e28cb2-7b6c-4595-8dcc-9871d8aad7e9")]
-
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/osu.Game/Utils/ZipUtils.cs b/osu.Game/Utils/ZipUtils.cs
new file mode 100644
index 0000000000..c1e0d75a7b
--- /dev/null
+++ b/osu.Game/Utils/ZipUtils.cs
@@ -0,0 +1,33 @@
+// Copyright (c) 2007-2017 ppy Pty Ltd .
+// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu-framework/master/LICENCE
+
+using System;
+using SharpCompress.Archives.Zip;
+
+namespace osu.Game.Utils
+{
+ public static class ZipUtils
+ {
+ public static bool IsZipArchive(string path)
+ {
+ try
+ {
+ using (var arc = ZipArchive.Open(path))
+ {
+ foreach (var entry in arc.Entries)
+ {
+ using (entry.OpenEntryStream())
+ {
+ }
+ }
+ }
+
+ return true;
+ }
+ catch (Exception)
+ {
+ return false;
+ }
+ }
+ }
+}
diff --git a/osu.Game/app.config b/osu.Game/app.config
deleted file mode 100644
index 7f2ad68041..0000000000
--- a/osu.Game/app.config
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/osu.Game/osu.Game.csproj b/osu.Game/osu.Game.csproj
index 6ef8f6570d..f995fc76e1 100644
--- a/osu.Game/osu.Game.csproj
+++ b/osu.Game/osu.Game.csproj
@@ -1,823 +1,27 @@
-
-
-
- {2A66DD92-ADB1-4994-89E2-C94E04ACDA0D}
- Debug
- AnyCPU
+
+
+
+
+ netstandard2.0;net461
Library
- Properties
- osu.Game
- osu.Game
- 3CF060CD28877D0E3112948951A64B2A7CEEC909
- codesigning.pfx
- false
- false
- false
-
-
- 3.5
-
-
- OnOutputUpdated
- false
- LocalIntranet
- v4.6.1
- true
- publish\
- true
- Disk
- false
- Foreground
- 7
- Days
- false
- false
- true
- 2
- 1.0.0.%2a
- false
- true
- 12.0.0
- 2.0
-
-
-
-
-
-
- true
- full
- false
- bin\Debug\
- TRACE;DEBUG
- prompt
- 0
- true
- false
AnyCPU
true
- false
- false
- false
-
-
- 6
+ ppy Pty Ltd
+ 1.0.0.0
+ ppy Pty Ltd 2007-2017
+ osu.Game
+ click the circles. to the beat.
+ osu.Game
-
- none
- true
- bin\Release\
-
-
- prompt
- 4
- true
- false
- AnyCPU
- true
- false
- false
-
-
-
-
-
-
-
-
- $(SolutionDir)\packages\DotNetZip.1.10.1\lib\net20\DotNetZip.dll
- True
-
-
- $(SolutionDir)\packages\Humanizer.Core.2.2.0\lib\netstandard1.0\Humanizer.dll
-
-
- $(SolutionDir)\packages\Microsoft.Data.Sqlite.Core.2.0.0\lib\netstandard2.0\Microsoft.Data.Sqlite.dll
-
-
- $(SolutionDir)\packages\Microsoft.EntityFrameworkCore.2.0.0\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll
-
-
- $(SolutionDir)\packages\Microsoft.EntityFrameworkCore.Design.2.0.0\lib\net461\Microsoft.EntityFrameworkCore.Design.dll
-
-
- $(SolutionDir)\packages\Microsoft.EntityFrameworkCore.Relational.2.0.0\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Relational.dll
-
-
- $(SolutionDir)\packages\Microsoft.EntityFrameworkCore.Sqlite.Core.2.0.0\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Sqlite.dll
-
-
- $(SolutionDir)\packages\Microsoft.Extensions.Caching.Abstractions.2.0.0\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll
-
-
- $(SolutionDir)\packages\Microsoft.Extensions.Caching.Memory.2.0.0\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll
-
-
- $(SolutionDir)\packages\Microsoft.Extensions.Configuration.Abstractions.2.0.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll
-
-
- $(SolutionDir)\packages\Microsoft.Extensions.DependencyInjection.2.0.0\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.dll
-
-
- $(SolutionDir)\packages\Microsoft.Extensions.DependencyInjection.Abstractions.2.0.0\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll
-
-
- $(SolutionDir)\packages\Microsoft.Extensions.Logging.2.0.0\lib\netstandard2.0\Microsoft.Extensions.Logging.dll
-
-
- $(SolutionDir)\packages\Microsoft.Extensions.Logging.Abstractions.2.0.0\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll
-
-
- $(SolutionDir)\packages\Microsoft.Extensions.Options.2.0.0\lib\netstandard2.0\Microsoft.Extensions.Options.dll
-
-
- $(SolutionDir)\packages\Microsoft.Extensions.Primitives.2.0.0\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll
-
-
-
-
- $(SolutionDir)\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll
- True
-
-
- $(SolutionDir)\packages\NUnit.3.8.1\lib\net45\nunit.framework.dll
- True
-
-
- True
-
-
- $(SolutionDir)\packages\Remotion.Linq.2.1.2\lib\net45\Remotion.Linq.dll
-
-
- $(SolutionDir)\packages\SharpCompress.0.18.1\lib\net45\SharpCompress.dll
- True
-
-
- $(SolutionDir)\packages\SQLitePCLRaw.bundle_green.1.1.8\lib\net45\SQLitePCLRaw.batteries_green.dll
- True
-
-
- $(SolutionDir)\packages\SQLitePCLRaw.bundle_green.1.1.8\lib\net45\SQLitePCLRaw.batteries_v2.dll
- True
-
-
- $(SolutionDir)\packages\SQLitePCLRaw.core.1.1.8\lib\net45\SQLitePCLRaw.core.dll
- True
-
-
- $(SolutionDir)\packages\SQLitePCLRaw.provider.e_sqlite3.net45.1.1.8\lib\net45\SQLitePCLRaw.provider.e_sqlite3.dll
- True
-
-
-
- $(SolutionDir)\packages\System.Collections.Immutable.1.4.0\lib\netstandard2.0\System.Collections.Immutable.dll
-
-
- $(SolutionDir)\packages\System.ComponentModel.Annotations.4.4.0\lib\net461\System.ComponentModel.Annotations.dll
-
-
-
-
-
- $(SolutionDir)\packages\System.Diagnostics.DiagnosticSource.4.4.1\lib\net46\System.Diagnostics.DiagnosticSource.dll
-
-
- $(SolutionDir)\packages\System.Interactive.Async.3.1.1\lib\net46\System.Interactive.Async.dll
-
-
- $(SolutionDir)\packages\System.Runtime.CompilerServices.Unsafe.4.4.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll
-
-
- $(SolutionDir)\packages\System.ValueTuple.4.4.0\lib\net461\System.ValueTuple.dll
- True
-
+
+
+
-
-
- osu.licenseheader
-
-
-
-
-
+
+
+
+
+
+
-
-
- False
- .NET Framework 3.5 SP1 Client Profile
- false
-
-
- False
- .NET Framework 2.0 %28x86%29
- true
-
-
- False
- .NET Framework 3.0 %28x86%29
- false
-
-
- False
- .NET Framework 3.5
- false
-
-
- False
- .NET Framework 3.5 SP1
- false
-
-
-
-
- {c76bf5b3-985e-4d39-95fe-97c9c879b83a}
- osu.Framework
-
-
- {d9a367c9-4c1a-489f-9b05-a0cea2b53b58}
- osu.Game.Resources
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 20171019041408_InitialCreate.cs
-
-
-
- 20171025071459_AddMissingIndexRules.cs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/osu.sln b/osu.sln
index 356ec4cc7b..86a0e4818b 100644
--- a/osu.sln
+++ b/osu.sln
@@ -3,19 +3,19 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27004.2006
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "osu.Game", "osu.Game\osu.Game.csproj", "{2A66DD92-ADB1-4994-89E2-C94E04ACDA0D}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "osu.Game", "osu.Game\osu.Game.csproj", "{2A66DD92-ADB1-4994-89E2-C94E04ACDA0D}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "osu.Framework", "osu-framework\osu.Framework\osu.Framework.csproj", "{C76BF5B3-985E-4D39-95FE-97C9C879B83A}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "osu.Framework", "osu-framework\osu.Framework\osu.Framework.csproj", "{C76BF5B3-985E-4D39-95FE-97C9C879B83A}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "osu.Game.Resources", "osu-resources\osu.Game.Resources\osu.Game.Resources.csproj", "{D9A367C9-4C1A-489F-9B05-A0CEA2B53B58}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "osu.Game.Resources", "osu-resources\osu.Game.Resources\osu.Game.Resources.csproj", "{D9A367C9-4C1A-489F-9B05-A0CEA2B53B58}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "osu.Game.Rulesets.Osu", "osu.Game.Rulesets.Osu\osu.Game.Rulesets.Osu.csproj", "{C92A607B-1FDD-4954-9F92-03FF547D9080}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "osu.Game.Rulesets.Osu", "osu.Game.Rulesets.Osu\osu.Game.Rulesets.Osu.csproj", "{C92A607B-1FDD-4954-9F92-03FF547D9080}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "osu.Game.Rulesets.Catch", "osu.Game.Rulesets.Catch\osu.Game.Rulesets.Catch.csproj", "{58F6C80C-1253-4A0E-A465-B8C85EBEADF3}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "osu.Game.Rulesets.Catch", "osu.Game.Rulesets.Catch\osu.Game.Rulesets.Catch.csproj", "{58F6C80C-1253-4A0E-A465-B8C85EBEADF3}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "osu.Game.Rulesets.Taiko", "osu.Game.Rulesets.Taiko\osu.Game.Rulesets.Taiko.csproj", "{F167E17A-7DE6-4AF5-B920-A5112296C695}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "osu.Game.Rulesets.Taiko", "osu.Game.Rulesets.Taiko\osu.Game.Rulesets.Taiko.csproj", "{F167E17A-7DE6-4AF5-B920-A5112296C695}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "osu.Game.Rulesets.Mania", "osu.Game.Rulesets.Mania\osu.Game.Rulesets.Mania.csproj", "{48F4582B-7687-4621-9CBE-5C24197CB536}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "osu.Game.Rulesets.Mania", "osu.Game.Rulesets.Mania\osu.Game.Rulesets.Mania.csproj", "{48F4582B-7687-4621-9CBE-5C24197CB536}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "osu.Desktop.Deploy", "osu.Desktop.Deploy\osu.Desktop.Deploy.csproj", "{BAEA2F74-0315-4667-84E0-ACAC0B4BF785}"
EndProject