From cd722e4abb08e81509e8b6609cbb933e71b578e7 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Fri, 13 Oct 2017 20:25:27 +0900 Subject: [PATCH 1/8] Fix beatmap author being stored in two different places --- .../Tests/TestCaseTaikoPlayfield.cs | 2 +- osu.Game/Beatmaps/Beatmap.cs | 2 +- osu.Game/Beatmaps/BeatmapMetadata.cs | 17 ++++++++++++++-- osu.Game/Beatmaps/BeatmapSetOnlineInfo.cs | 6 ------ osu.Game/Beatmaps/DummyWorkingBeatmap.cs | 2 +- osu.Game/Beatmaps/Formats/OsuLegacyDecoder.cs | 2 +- .../API/Requests/GetBeatmapSetsResponse.cs | 13 +++--------- osu.Game/Overlays/BeatmapSet/AuthorInfo.cs | 4 ++-- osu.Game/Overlays/Direct/DirectGridPanel.cs | 2 +- osu.Game/Overlays/Direct/DirectListPanel.cs | 2 +- osu.Game/Screens/Play/PlayerLoader.cs | 2 +- osu.Game/Screens/Select/BeatmapInfoWedge.cs | 2 +- osu.Game/Screens/Select/FilterCriteria.cs | 4 ++-- .../Tests/Visual/TestCaseBeatmapSetOverlay.cs | 20 +++++++++---------- osu.Game/Tests/Visual/TestCaseDirect.cs | 8 ++++---- .../Tests/Visual/TestCasePlaySongSelect.cs | 2 +- .../Tests/Visual/TestCaseRoomInspector.cs | 4 ++-- osu.sln.DotSettings | 1 + 18 files changed, 48 insertions(+), 47 deletions(-) diff --git a/osu.Game.Rulesets.Taiko/Tests/TestCaseTaikoPlayfield.cs b/osu.Game.Rulesets.Taiko/Tests/TestCaseTaikoPlayfield.cs index 79ee2945ad..2136d0d86a 100644 --- a/osu.Game.Rulesets.Taiko/Tests/TestCaseTaikoPlayfield.cs +++ b/osu.Game.Rulesets.Taiko/Tests/TestCaseTaikoPlayfield.cs @@ -72,7 +72,7 @@ namespace osu.Game.Rulesets.Taiko.Tests { Artist = @"Unknown", Title = @"Sample Beatmap", - Author = @"peppy", + AuthorString = @"peppy", }, }, ControlPointInfo = controlPointInfo diff --git a/osu.Game/Beatmaps/Beatmap.cs b/osu.Game/Beatmaps/Beatmap.cs index 383a331eb4..56bb48965f 100644 --- a/osu.Game/Beatmaps/Beatmap.cs +++ b/osu.Game/Beatmaps/Beatmap.cs @@ -69,7 +69,7 @@ namespace osu.Game.Beatmaps { Artist = @"Unknown", Title = @"Unknown", - Author = @"Unknown Creator", + AuthorString = @"Unknown Creator", }, Version = @"Normal", Difficulty = new BeatmapDifficulty() diff --git a/osu.Game/Beatmaps/BeatmapMetadata.cs b/osu.Game/Beatmaps/BeatmapMetadata.cs index cc9a51b4e2..9ed70caf35 100644 --- a/osu.Game/Beatmaps/BeatmapMetadata.cs +++ b/osu.Game/Beatmaps/BeatmapMetadata.cs @@ -3,6 +3,7 @@ using System.Linq; using Newtonsoft.Json; +using osu.Game.Users; using SQLite.Net.Attributes; namespace osu.Game.Beatmaps @@ -19,8 +20,20 @@ namespace osu.Game.Beatmaps public string Artist { get; set; } public string ArtistUnicode { get; set; } + /// + /// Helper property to deserialize a username to . + /// [JsonProperty(@"creator")] - public string Author { get; set; } + [Column("Author")] + public string AuthorString + { + set { Author = new User { Username = value }; } + } + + /// + /// The author of the beatmaps in this set. + /// + public User Author; public string Source { get; set; } @@ -32,7 +45,7 @@ namespace osu.Game.Beatmaps public string[] SearchableTerms => new[] { - Author, + Author?.Username, Artist, ArtistUnicode, Title, diff --git a/osu.Game/Beatmaps/BeatmapSetOnlineInfo.cs b/osu.Game/Beatmaps/BeatmapSetOnlineInfo.cs index 6b59f0f298..27d1f057ca 100644 --- a/osu.Game/Beatmaps/BeatmapSetOnlineInfo.cs +++ b/osu.Game/Beatmaps/BeatmapSetOnlineInfo.cs @@ -3,7 +3,6 @@ using System; using Newtonsoft.Json; -using osu.Game.Users; namespace osu.Game.Beatmaps { @@ -12,11 +11,6 @@ namespace osu.Game.Beatmaps /// public class BeatmapSetOnlineInfo { - /// - /// The author of the beatmaps in this set. - /// - public User Author; - /// /// The date this beatmap set was submitted to the online listing. /// diff --git a/osu.Game/Beatmaps/DummyWorkingBeatmap.cs b/osu.Game/Beatmaps/DummyWorkingBeatmap.cs index d8cd58d939..9a61762fa6 100644 --- a/osu.Game/Beatmaps/DummyWorkingBeatmap.cs +++ b/osu.Game/Beatmaps/DummyWorkingBeatmap.cs @@ -22,7 +22,7 @@ namespace osu.Game.Beatmaps { Artist = "please load a beatmap!", Title = "no beatmaps available!", - Author = "no one", + AuthorString = "no one", }, BeatmapSet = new BeatmapSetInfo(), Difficulty = new BeatmapDifficulty diff --git a/osu.Game/Beatmaps/Formats/OsuLegacyDecoder.cs b/osu.Game/Beatmaps/Formats/OsuLegacyDecoder.cs index 2493dab08c..3c06180532 100644 --- a/osu.Game/Beatmaps/Formats/OsuLegacyDecoder.cs +++ b/osu.Game/Beatmaps/Formats/OsuLegacyDecoder.cs @@ -171,7 +171,7 @@ namespace osu.Game.Beatmaps.Formats metadata.ArtistUnicode = pair.Value; break; case @"Creator": - metadata.Author = pair.Value; + metadata.AuthorString = pair.Value; break; case @"Version": beatmap.BeatmapInfo.Version = pair.Value; diff --git a/osu.Game/Online/API/Requests/GetBeatmapSetsResponse.cs b/osu.Game/Online/API/Requests/GetBeatmapSetsResponse.cs index 085563845d..b3bdab2616 100644 --- a/osu.Game/Online/API/Requests/GetBeatmapSetsResponse.cs +++ b/osu.Game/Online/API/Requests/GetBeatmapSetsResponse.cs @@ -6,7 +6,6 @@ using System.Linq; using Newtonsoft.Json; using osu.Game.Beatmaps; using osu.Game.Rulesets; -using osu.Game.Users; namespace osu.Game.Online.API.Requests { @@ -27,11 +26,10 @@ namespace osu.Game.Online.API.Requests [JsonProperty(@"id")] private int onlineId { get; set; } - [JsonProperty(@"creator")] - private string creatorUsername { get; set; } - [JsonProperty(@"user_id")] - private long creatorId = 1; + private long creatorId { + set { Author.Id = value; } + } [JsonProperty(@"beatmaps")] private IEnumerable beatmaps { get; set; } @@ -44,11 +42,6 @@ namespace osu.Game.Online.API.Requests Metadata = this, OnlineInfo = new BeatmapSetOnlineInfo { - Author = new User - { - Id = creatorId, - Username = creatorUsername, - }, Covers = covers, Preview = preview, PlayCount = playCount, diff --git a/osu.Game/Overlays/BeatmapSet/AuthorInfo.cs b/osu.Game/Overlays/BeatmapSet/AuthorInfo.cs index fc9fd1e614..46ee5a9cdb 100644 --- a/osu.Game/Overlays/BeatmapSet/AuthorInfo.cs +++ b/osu.Game/Overlays/BeatmapSet/AuthorInfo.cs @@ -36,12 +36,12 @@ namespace osu.Game.Overlays.BeatmapSet var i = BeatmapSet.OnlineInfo; - avatar.User = i.Author; + avatar.User = BeatmapSet.Metadata.Author; clickableArea.Action = () => profile?.ShowUser(avatar.User); fields.Children = new Drawable[] { - new Field("made by", i.Author.Username, @"Exo2.0-RegularItalic"), + new Field("made by", BeatmapSet.Metadata.Author.Username, @"Exo2.0-RegularItalic"), new Field("submitted on", i.Submitted.ToString(@"MMM d, yyyy"), @"Exo2.0-Bold") { Margin = new MarginPadding { Top = 5 }, diff --git a/osu.Game/Overlays/Direct/DirectGridPanel.cs b/osu.Game/Overlays/Direct/DirectGridPanel.cs index 7464ee7fb8..e863f78e3f 100644 --- a/osu.Game/Overlays/Direct/DirectGridPanel.cs +++ b/osu.Game/Overlays/Direct/DirectGridPanel.cs @@ -130,7 +130,7 @@ namespace osu.Game.Overlays.Direct }, new OsuSpriteText { - Text = SetInfo.Metadata.Author, + Text = SetInfo.Metadata.Author.Username, TextSize = 14, Font = @"Exo2.0-SemiBoldItalic", Shadow = false, diff --git a/osu.Game/Overlays/Direct/DirectListPanel.cs b/osu.Game/Overlays/Direct/DirectListPanel.cs index 5889a1bc12..3a1004fd44 100644 --- a/osu.Game/Overlays/Direct/DirectListPanel.cs +++ b/osu.Game/Overlays/Direct/DirectListPanel.cs @@ -128,7 +128,7 @@ namespace osu.Game.Overlays.Direct }, new OsuSpriteText { - Text = SetInfo.Metadata.Author, + Text = SetInfo.Metadata.Author.Username, TextSize = 14, Font = @"Exo2.0-SemiBoldItalic", }, diff --git a/osu.Game/Screens/Play/PlayerLoader.cs b/osu.Game/Screens/Play/PlayerLoader.cs index 9366797f47..a5248acbe4 100644 --- a/osu.Game/Screens/Play/PlayerLoader.cs +++ b/osu.Game/Screens/Play/PlayerLoader.cs @@ -248,7 +248,7 @@ namespace osu.Game.Screens.Play Origin = Anchor.TopCentre, Anchor = Anchor.TopCentre, }, - new MetadataLine("Mapper", metadata.Author) + new MetadataLine("Mapper", metadata.Author.Username) { Origin = Anchor.TopCentre, Anchor = Anchor.TopCentre, diff --git a/osu.Game/Screens/Select/BeatmapInfoWedge.cs b/osu.Game/Screens/Select/BeatmapInfoWedge.cs index 76c384b84c..3b26f7bffc 100644 --- a/osu.Game/Screens/Select/BeatmapInfoWedge.cs +++ b/osu.Game/Screens/Select/BeatmapInfoWedge.cs @@ -210,7 +210,7 @@ namespace osu.Game.Screens.Select new OsuSpriteText { Font = @"Exo2.0-Bold", - Text = metadata.Author, + Text = metadata.Author.Username, TextSize = 15, }, } diff --git a/osu.Game/Screens/Select/FilterCriteria.cs b/osu.Game/Screens/Select/FilterCriteria.cs index a1fea4a41d..6c1fb1703d 100644 --- a/osu.Game/Screens/Select/FilterCriteria.cs +++ b/osu.Game/Screens/Select/FilterCriteria.cs @@ -51,7 +51,7 @@ namespace osu.Game.Screens.Select groups.Sort((x, y) => string.Compare(x.BeatmapSet.Metadata.Title, y.BeatmapSet.Metadata.Title, StringComparison.InvariantCultureIgnoreCase)); break; case SortMode.Author: - groups.Sort((x, y) => string.Compare(x.BeatmapSet.Metadata.Author, y.BeatmapSet.Metadata.Author, StringComparison.InvariantCultureIgnoreCase)); + groups.Sort((x, y) => string.Compare(x.BeatmapSet.Metadata.Author.Username, y.BeatmapSet.Metadata.Author.Username, StringComparison.InvariantCultureIgnoreCase)); break; case SortMode.Difficulty: groups.Sort((x, y) => x.BeatmapSet.MaxStarDifficulty.CompareTo(y.BeatmapSet.MaxStarDifficulty)); @@ -59,4 +59,4 @@ namespace osu.Game.Screens.Select } } } -} \ No newline at end of file +} diff --git a/osu.Game/Tests/Visual/TestCaseBeatmapSetOverlay.cs b/osu.Game/Tests/Visual/TestCaseBeatmapSetOverlay.cs index 76ed9979ca..72d97f905c 100644 --- a/osu.Game/Tests/Visual/TestCaseBeatmapSetOverlay.cs +++ b/osu.Game/Tests/Visual/TestCaseBeatmapSetOverlay.cs @@ -39,6 +39,11 @@ namespace osu.Game.Tests.Visual Artist = @"Kaneko Chiharu", Source = @"SOUND VOLTEX III GRAVITY WARS", Tags = @"sdvx grace the 5th kac original song contest konami bemani", + Author = new User + { + Username = @"Fresh Chicken", + Id = 3984370, + }, }, OnlineInfo = new BeatmapSetOnlineInfo { @@ -48,11 +53,6 @@ namespace osu.Game.Tests.Visual Submitted = new DateTime(2016, 2, 10), Ranked = new DateTime(2016, 6, 19), BPM = 236, - Author = new User - { - Username = @"Fresh Chicken", - Id = 3984370, - }, Covers = new BeatmapSetOnlineCovers { Cover = @"https://assets.ppy.sh/beatmaps/415886/covers/cover.jpg?1465651778", @@ -213,6 +213,11 @@ namespace osu.Game.Tests.Visual Title = @"Soumatou Labyrinth", Artist = @"Yunomi with Momobako&miko", Tags = @"mmbk.com yuzu__rinrin charlotte", + Author = new User + { + Username = @"komasy", + Id = 1980256, + }, }, OnlineInfo = new BeatmapSetOnlineInfo { @@ -222,11 +227,6 @@ namespace osu.Game.Tests.Visual Submitted = new DateTime(2016, 6, 11), Ranked = new DateTime(2016, 7, 12), BPM = 160, - Author = new User - { - Username = @"komasy", - Id = 1980256, - }, Covers = new BeatmapSetOnlineCovers { Cover = @"https://assets.ppy.sh/beatmaps/625493/covers/cover.jpg?1499167472", diff --git a/osu.Game/Tests/Visual/TestCaseDirect.cs b/osu.Game/Tests/Visual/TestCaseDirect.cs index 1fb9dbea8f..2d8677c391 100644 --- a/osu.Game/Tests/Visual/TestCaseDirect.cs +++ b/osu.Game/Tests/Visual/TestCaseDirect.cs @@ -46,7 +46,7 @@ namespace osu.Game.Tests.Visual { Title = @"OrVid", Artist = @"An", - Author = @"RLC", + AuthorString = @"RLC", Source = @"", Tags = @"acuticnotes an-fillnote revid tear tearvid encrpted encryption axi axivid quad her hervid recoll", }, @@ -78,7 +78,7 @@ namespace osu.Game.Tests.Visual { Title = @"tiny lamp", Artist = @"fhana", - Author = @"Sotarks", + AuthorString = @"Sotarks", Source = @"ぎんぎつね", Tags = @"lantis junichi sato yuxuki waga kevin mitsunaga towana gingitsune opening op full ver version kalibe collab collaboration", }, @@ -110,7 +110,7 @@ namespace osu.Game.Tests.Visual { Title = @"At Gwanghwamun", Artist = @"KYUHYUN", - Author = @"Cerulean Veyron", + AuthorString = @"Cerulean Veyron", Source = @"", Tags = @"soul ballad kh super junior sj suju 슈퍼주니어 kt뮤직 sm엔터테인먼트 s.m.entertainment kt music 1st mini album ep", }, @@ -157,7 +157,7 @@ namespace osu.Game.Tests.Visual { Title = @"RHAPSODY OF BLUE SKY", Artist = @"fhana", - Author = @"[Kamiya]", + AuthorString = @"[Kamiya]", Source = @"小林さんちのメイドラゴン", Tags = @"kobayashi san chi no maidragon aozora no opening anime maid dragon oblivion karen dynamix imoutosan pata-mon gxytcgxytc", }, diff --git a/osu.Game/Tests/Visual/TestCasePlaySongSelect.cs b/osu.Game/Tests/Visual/TestCasePlaySongSelect.cs index feff7497d8..3ea976b96f 100644 --- a/osu.Game/Tests/Visual/TestCasePlaySongSelect.cs +++ b/osu.Game/Tests/Visual/TestCasePlaySongSelect.cs @@ -68,7 +68,7 @@ namespace osu.Game.Tests.Visual // Create random metadata, then we can check if sorting works based on these Artist = "MONACA " + RNG.Next(0, 9), Title = "Black Song " + RNG.Next(0, 9), - Author = "Some Guy " + RNG.Next(0, 9), + AuthorString = "Some Guy " + RNG.Next(0, 9), }, Beatmaps = new List(new[] { diff --git a/osu.Game/Tests/Visual/TestCaseRoomInspector.cs b/osu.Game/Tests/Visual/TestCaseRoomInspector.cs index dd773b361a..e6b57c970b 100644 --- a/osu.Game/Tests/Visual/TestCaseRoomInspector.cs +++ b/osu.Game/Tests/Visual/TestCaseRoomInspector.cs @@ -37,7 +37,7 @@ namespace osu.Game.Tests.Visual { Title = @"Platina", Artist = @"Maaya Sakamoto", - Author = @"uwutm8", + AuthorString = @"uwutm8", }, BeatmapSet = new BeatmapSetInfo { @@ -104,7 +104,7 @@ namespace osu.Game.Tests.Visual { Title = @"FREEDOM DIVE", Artist = @"xi", - Author = @"Nakagawa-Kanon", + AuthorString = @"Nakagawa-Kanon", }, BeatmapSet = new BeatmapSetInfo { diff --git a/osu.sln.DotSettings b/osu.sln.DotSettings index 4011e3991f..c236ce82b0 100644 --- a/osu.sln.DotSettings +++ b/osu.sln.DotSettings @@ -645,6 +645,7 @@ Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu-frame <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> + True True True True From 1efb33210fc8ac7722325ca2b230f13e7f9cc070 Mon Sep 17 00:00:00 2001 From: smoogipoo Date: Sat, 14 Oct 2017 11:40:49 +0900 Subject: [PATCH 2/8] Only update positions when the medalContainer is loaded. --- osu.Game/Overlays/MedalSplash/DrawableMedal.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/osu.Game/Overlays/MedalSplash/DrawableMedal.cs b/osu.Game/Overlays/MedalSplash/DrawableMedal.cs index ea51471199..419c8c2444 100644 --- a/osu.Game/Overlays/MedalSplash/DrawableMedal.cs +++ b/osu.Game/Overlays/MedalSplash/DrawableMedal.cs @@ -108,6 +108,12 @@ namespace osu.Game.Overlays.MedalSplash s.Origin = Anchor.TopCentre; s.TextSize = 16; }); + + medalContainer.OnLoadComplete = d => + { + unlocked.Position = new Vector2(0f, medalContainer.DrawSize.Y / 2 + 10); + infoFlow.Position = new Vector2(0f, unlocked.Position.Y + 90); + }; } [BackgroundDependencyLoader] @@ -123,9 +129,6 @@ namespace osu.Game.Overlays.MedalSplash base.LoadComplete(); updateState(); - - unlocked.Position = new Vector2(0f, medalContainer.DrawSize.Y / 2 + 10); - infoFlow.Position = new Vector2(0f, unlocked.Position.Y + 90); } public DisplayState State From c3b9644d777961b47f1dbefbb239b4a32d3f2c23 Mon Sep 17 00:00:00 2001 From: smoogipoo Date: Sat, 14 Oct 2017 11:59:18 +0900 Subject: [PATCH 3/8] Move infoFlow to local variable --- osu.Game/Overlays/MedalSplash/DrawableMedal.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game/Overlays/MedalSplash/DrawableMedal.cs b/osu.Game/Overlays/MedalSplash/DrawableMedal.cs index 419c8c2444..53d77dab6c 100644 --- a/osu.Game/Overlays/MedalSplash/DrawableMedal.cs +++ b/osu.Game/Overlays/MedalSplash/DrawableMedal.cs @@ -27,13 +27,13 @@ namespace osu.Game.Overlays.MedalSplash private readonly Sprite medalSprite, medalGlow; private readonly OsuSpriteText unlocked, name; private readonly TextFlowContainer description; - private readonly FillFlowContainer infoFlow; private DisplayState state; public DrawableMedal(Medal medal) { this.medal = medal; Position = new Vector2(0f, MedalOverlay.DISC_SIZE / 2); + FillFlowContainer infoFlow; Children = new Drawable[] { medalContainer = new Container From ed152c08ac1879ac64e8bd8e2de0ee90d07225cf Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Sat, 14 Oct 2017 12:27:32 +0900 Subject: [PATCH 4/8] Fix regressions --- osu.Game.Tests/Beatmaps/Formats/OsuLegacyDecoderTest.cs | 4 ++-- osu.Game.Tests/Beatmaps/IO/OszArchiveReaderTest.cs | 2 +- osu.Game/Beatmaps/BeatmapMetadata.cs | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/osu.Game.Tests/Beatmaps/Formats/OsuLegacyDecoderTest.cs b/osu.Game.Tests/Beatmaps/Formats/OsuLegacyDecoderTest.cs index da3b448f74..6bccd47b5c 100644 --- a/osu.Game.Tests/Beatmaps/Formats/OsuLegacyDecoderTest.cs +++ b/osu.Game.Tests/Beatmaps/Formats/OsuLegacyDecoderTest.cs @@ -28,7 +28,7 @@ namespace osu.Game.Tests.Beatmaps.Formats Assert.AreEqual("Soleily", meta.Artist); Assert.AreEqual("Soleily", meta.ArtistUnicode); Assert.AreEqual("03. Renatus - Soleily 192kbps.mp3", meta.AudioFile); - Assert.AreEqual("Gamu", meta.Author); + Assert.AreEqual("Gamu", meta.AuthorString); Assert.AreEqual("machinetop_background.jpg", meta.BackgroundFile); Assert.AreEqual(164471, meta.PreviewTime); Assert.AreEqual(string.Empty, meta.Source); @@ -143,4 +143,4 @@ namespace osu.Game.Tests.Beatmaps.Formats } } } -} \ No newline at end of file +} diff --git a/osu.Game.Tests/Beatmaps/IO/OszArchiveReaderTest.cs b/osu.Game.Tests/Beatmaps/IO/OszArchiveReaderTest.cs index 7a7a8a58bc..12bbde5b57 100644 --- a/osu.Game.Tests/Beatmaps/IO/OszArchiveReaderTest.cs +++ b/osu.Game.Tests/Beatmaps/IO/OszArchiveReaderTest.cs @@ -56,7 +56,7 @@ namespace osu.Game.Tests.Beatmaps.IO Assert.AreEqual("Soleily", meta.Artist); Assert.AreEqual("Soleily", meta.ArtistUnicode); Assert.AreEqual("03. Renatus - Soleily 192kbps.mp3", meta.AudioFile); - Assert.AreEqual("Deif", meta.Author); + Assert.AreEqual("Deif", meta.AuthorString); Assert.AreEqual("machinetop_background.jpg", meta.BackgroundFile); Assert.AreEqual(164471, meta.PreviewTime); Assert.AreEqual(string.Empty, meta.Source); diff --git a/osu.Game/Beatmaps/BeatmapMetadata.cs b/osu.Game/Beatmaps/BeatmapMetadata.cs index 9ed70caf35..a062c0a37f 100644 --- a/osu.Game/Beatmaps/BeatmapMetadata.cs +++ b/osu.Game/Beatmaps/BeatmapMetadata.cs @@ -27,6 +27,7 @@ namespace osu.Game.Beatmaps [Column("Author")] public string AuthorString { + get { return Author?.Username; } set { Author = new User { Username = value }; } } From c5046f6b3c69d38292b0ca00d5802d2122228549 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Sat, 14 Oct 2017 02:10:21 +0900 Subject: [PATCH 5/8] Add back osu.Desktop project While it was nice having less projects to deal with, it meant hacks to get around circular dependencies between rulesets and osu.Game. For now, let's just restore the osu.Desktop project and call it a day. This allows for the project to build again with default visual studio settings. --- osu.Desktop/OpenTK.dll.config | 25 ++ {osu.Game => osu.Desktop}/OsuGameDesktop.cs | 5 +- {osu.Game => osu.Desktop}/OsuTestBrowser.cs | 3 +- .../Overlays/VersionManager.cs | 4 +- {osu.Game => osu.Desktop}/Program.cs | 2 +- osu.Desktop/Properties/AssemblyInfo.cs | 28 ++ osu.Desktop/Properties/app.manifest | 57 ++++ osu.Desktop/app.config | 16 ++ {osu.Game => osu.Desktop}/lazer.ico | Bin osu.Desktop/osu!.res | Bin 0 -> 156596 bytes osu.Desktop/osu.Desktop.csproj | 260 ++++++++++++++++++ osu.Desktop/osu.nuspec | 26 ++ osu.Desktop/packages.config | 14 + .../osu.Game.Rulesets.Catch.csproj | 4 +- .../osu.Game.Rulesets.Mania.csproj | 4 +- .../osu.Game.Rulesets.Osu.csproj | 4 +- .../osu.Game.Rulesets.Taiko.csproj | 4 +- osu.Game/osu.Game.csproj | 58 +--- osu.Game/packages.config | 4 - osu.sln | 8 + osu.sln.DotSettings | 1 + 21 files changed, 454 insertions(+), 73 deletions(-) create mode 100644 osu.Desktop/OpenTK.dll.config rename {osu.Game => osu.Desktop}/OsuGameDesktop.cs (95%) rename {osu.Game => osu.Desktop}/OsuTestBrowser.cs (92%) rename {osu.Game => osu.Desktop}/Overlays/VersionManager.cs (96%) rename {osu.Game => osu.Desktop}/Program.cs (95%) create mode 100644 osu.Desktop/Properties/AssemblyInfo.cs create mode 100644 osu.Desktop/Properties/app.manifest create mode 100644 osu.Desktop/app.config rename {osu.Game => osu.Desktop}/lazer.ico (100%) create mode 100644 osu.Desktop/osu!.res create mode 100644 osu.Desktop/osu.Desktop.csproj create mode 100644 osu.Desktop/osu.nuspec create mode 100644 osu.Desktop/packages.config diff --git a/osu.Desktop/OpenTK.dll.config b/osu.Desktop/OpenTK.dll.config new file mode 100644 index 0000000000..5620e3d9e2 --- /dev/null +++ b/osu.Desktop/OpenTK.dll.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/osu.Game/OsuGameDesktop.cs b/osu.Desktop/OsuGameDesktop.cs similarity index 95% rename from osu.Game/OsuGameDesktop.cs rename to osu.Desktop/OsuGameDesktop.cs index 47e64a0d5b..f4fb10a496 100644 --- a/osu.Game/OsuGameDesktop.cs +++ b/osu.Desktop/OsuGameDesktop.cs @@ -9,12 +9,13 @@ using System.Reflection; using System.Threading.Tasks; using System.Windows.Forms; using Microsoft.Win32; +using osu.Desktop.Overlays; using osu.Framework.Graphics.Containers; using osu.Framework.Platform; -using osu.Game.Overlays; +using osu.Game; using osu.Game.Screens.Menu; -namespace osu.Game +namespace osu.Desktop { internal class OsuGameDesktop : OsuGame { diff --git a/osu.Game/OsuTestBrowser.cs b/osu.Desktop/OsuTestBrowser.cs similarity index 92% rename from osu.Game/OsuTestBrowser.cs rename to osu.Desktop/OsuTestBrowser.cs index b0864e441f..23617de1c0 100644 --- a/osu.Game/OsuTestBrowser.cs +++ b/osu.Desktop/OsuTestBrowser.cs @@ -3,9 +3,10 @@ using osu.Framework.Platform; using osu.Framework.Testing; +using osu.Game; using osu.Game.Screens.Backgrounds; -namespace osu.Game +namespace osu.Desktop { internal class OsuTestBrowser : OsuGameBase { diff --git a/osu.Game/Overlays/VersionManager.cs b/osu.Desktop/Overlays/VersionManager.cs similarity index 96% rename from osu.Game/Overlays/VersionManager.cs rename to osu.Desktop/Overlays/VersionManager.cs index 7b0b3520cb..e7c3370354 100644 --- a/osu.Game/Overlays/VersionManager.cs +++ b/osu.Desktop/Overlays/VersionManager.cs @@ -13,15 +13,17 @@ using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Textures; using osu.Framework.Logging; +using osu.Game; using osu.Game.Configuration; using osu.Game.Graphics; using osu.Game.Graphics.Sprites; +using osu.Game.Overlays; using osu.Game.Overlays.Notifications; using OpenTK; using OpenTK.Graphics; using Squirrel; -namespace osu.Game.Overlays +namespace osu.Desktop.Overlays { public class VersionManager : OverlayContainer { diff --git a/osu.Game/Program.cs b/osu.Desktop/Program.cs similarity index 95% rename from osu.Game/Program.cs rename to osu.Desktop/Program.cs index 8044e9fa87..720b38144c 100644 --- a/osu.Game/Program.cs +++ b/osu.Desktop/Program.cs @@ -8,7 +8,7 @@ using osu.Framework; using osu.Framework.Platform; using osu.Game.IPC; -namespace osu.Game +namespace osu.Desktop { public static class Program { diff --git a/osu.Desktop/Properties/AssemblyInfo.cs b/osu.Desktop/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..fe7ad20124 --- /dev/null +++ b/osu.Desktop/Properties/AssemblyInfo.cs @@ -0,0 +1,28 @@ +// 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!lazer")] +[assembly: AssemblyDescription("click the circles. to the beat.")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("ppy Pty Ltd")] +[assembly: AssemblyProduct("osu!lazer")] +[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("0.0.0")] +[assembly: AssemblyFileVersion("0.0.0")] diff --git a/osu.Desktop/Properties/app.manifest b/osu.Desktop/Properties/app.manifest new file mode 100644 index 0000000000..555db8513d --- /dev/null +++ b/osu.Desktop/Properties/app.manifest @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + + + + + + + + diff --git a/osu.Desktop/app.config b/osu.Desktop/app.config new file mode 100644 index 0000000000..824430b24a --- /dev/null +++ b/osu.Desktop/app.config @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/osu.Game/lazer.ico b/osu.Desktop/lazer.ico similarity index 100% rename from osu.Game/lazer.ico rename to osu.Desktop/lazer.ico diff --git a/osu.Desktop/osu!.res b/osu.Desktop/osu!.res new file mode 100644 index 0000000000000000000000000000000000000000..7c70e30401fc50ef59dc7b34bb4c834175a957a9 GIT binary patch literal 156596 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 z
M;zWr$UbMIZbG-27T%o(X~~T;tjug4DeSSQJa! zCOl-23AhFaah+Fn}T;BA_UelSCB(MI}d(oO6x>iX@4WbIy54wN=AA z%JK8O@7Zs6|NVEatLUbur@QVaKTlOxpMNcJf|qRix~M}*WrWm)3WCC+xR^TYL?R_q zQ>@6^$|5kgw9Hi_a6h{0&j1c}q&{exJAAj)LQ?;ADos!Gz9_A1wjC8eGU=&yUFCsZ zOZvXU_tSD$y7a3%NMFQNG8^x`qkWAdk2q|U*4D*K_)>s#%kps^4xS)thf0CkLI)X5 z1$U`IX6ax@fvx8*^6jzuHe)2l!6QlIA~PReB{i6;UsLdI(fXtB&bKdP`o#K{Uy7r=!BnhlzvC`}~ z*G`4c&$b_oXi?<0<~$>{Zlf^$o~l45z{z^ju*>*`mLq&x%GW^e)=6-n$iO7qv99bFFZVVD2d!u@T7cWzUd*`)OwSjz&NUb*+K=dWNkl_$#O>_}vNiYBXa@O~jf!=3Wnb3FYL%QqQs zuz0xl*RvlW?vGll=PF-iI7Y^;QlCV8lcB&cmVo<$vU_Oh^F=pfYs_l9)^;x!7mbig zxs>fh&RN`2%MU}xxukv5KJL$>F`Zn+^q3K8v=q6wGzIfxdgr=Xd5i2znH{B4{rqI; zRy7PIM#Smec{)u8{Y_C!#g#IIsb|nL=Hut#;n5nb^0z*xpkU?xP*p%Gckzf|oEX)O z5W-#0X0Nbqqbj<|(-m2{&r||g-$rNPzDw=BY(-8nRWQT6We+apJhO1A9zF)iAjc_{)k z9qM8}_{2YA?%iX~2VV}lKQrRH5 zuWeGNWPZ%XC4HWgclj}k&ccl}?A455`Z)KoL3PXPc{V#qqmP3{%bG=I^w%C%iyanU*-IQ4Hb%IEg2ki9f?AhEo< z(!KYy>&I;>1ra=#K7S1z5#uY+=?1esm5;JYSNO8f-Xh5KkV{Qd>R>yo8+m@ahsT}s zW~XGYetUGMi=UOC?S!(C*?wov2dAD4)excS3>dK@>(`@+r{brot=Ekf#n*-vZ!@N9 zV_JPB2Nj4sg#ALp>Wi5b?4uP5uBCFs7VLV%%yuo~%8(yJ&H22>2No}0iw`fcI%hxd z^xYW|9r66YWDH5|Q??)VyP{l!>YN9b6emWP*cF%#6%q$Agt?vxYG>UOq)JFLs%f*Z zmU>Uk=Iw21X3XyP({GJ}>T({v{>bvJD|+oQKa<<7u#yT3#S1A8-*~houDpJbFZ_hO zF@!e6n23D`YV*-5THEGKd< z(Lp&{bbcaxvg35UH7mhDdO*Oq?ksYZMoUxO*DhVY%yEy6x?>J!3{rAl7Dg;(cx zy}8*I_Jb?@Ky)yTg!lG{e7hqyI>D|4Cw9=&Kh2$y-t}WPu9X>6!_97#Zc=Wd`{|se z_+Im1Q>V~My5oF76!yi*oDZh2IJH+|!ihs^i&PBTXN^Kg=?GkOS;V!1TSx;dD6bn8 zo68Jy)b5vJ(tY*DW@Gs7t%d7;^br#>MlepqarK$&1i2oN9)*}M4Yz^S4tQIg43 z@*dLNd^9~R=VUW)GII3~GZz@~D(aswBjFXtl59Pd_?*DY+01*U>^i5jLEKQWuw9g5 zn(h4RF}ZiU7}5@@Vur1ANMycLw%7%KB-IsPBFWJ8b$_&U-d?NRS$i% zG3;j=BgF3x~;G9+J^Mt8v6@qdW zPtu$0egpDc#;nrksYd8dc}^xB^H?&l&$Ji{dMh7B&%t_!EB^A6GEO?Tk?nL2Q4J%a z)#6~)GSFh?%>Je6^`qo{XLK&rz?IMf#~{>meGZAQ Y67-Oxvlp}X1soSQ}Ql{ox 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⩔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 T`Fx#}9bfvNhl?OJ7=!*lN4_$= literal 0 HcmV?d00001 diff --git a/osu.Desktop/osu.Desktop.csproj b/osu.Desktop/osu.Desktop.csproj new file mode 100644 index 0000000000..fad297fa0a --- /dev/null +++ b/osu.Desktop/osu.Desktop.csproj @@ -0,0 +1,260 @@ + + + + {419659FD-72EA-4678-9EB8-B22A746CED70} + Debug + AnyCPU + WinExe + Properties + osu.Desktop + osu! + 3CF060CD28877D0E3112948951A64B2A7CEEC909 + codesigning.pfx + false + false + false + + + 3.5 + + + osu.Desktop.Program + 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\ + DEBUG + prompt + 0 + true + false + AnyCPU + true + AllRules.ruleset + false + false + false + + + 6 + + + none + true + bin\Release\ + CuttingEdge NoUpdate + prompt + 4 + true + false + AnyCPU + true + AllRules.ruleset + false + false + + + + + + + lazer.ico + + + Properties\app.manifest + + + true + bin\Debug\ + DEBUG + true + 0 + true + full + AnyCPU + false + 6 + prompt + AllRules.ruleset + --tests + + + + $(SolutionDir)\packages\DeltaCompressionDotNet.1.1.0\lib\net20\DeltaCompressionDotNet.dll + True + + + $(SolutionDir)\packages\DeltaCompressionDotNet.1.1.0\lib\net20\DeltaCompressionDotNet.MsDelta.dll + True + + + $(SolutionDir)\packages\DeltaCompressionDotNet.1.1.0\lib\net20\DeltaCompressionDotNet.PatchApi.dll + True + + + $(SolutionDir)\packages\Mono.Cecil.0.9.6.4\lib\net45\Mono.Cecil.dll + True + + + $(SolutionDir)\packages\Mono.Cecil.0.9.6.4\lib\net45\Mono.Cecil.Mdb.dll + True + + + $(SolutionDir)\packages\Mono.Cecil.0.9.6.4\lib\net45\Mono.Cecil.Pdb.dll + True + + + $(SolutionDir)\packages\Mono.Cecil.0.9.6.4\lib\net45\Mono.Cecil.Rocks.dll + True + + + + ..\packages\squirrel.windows.1.7.8\lib\Net45\NuGet.Squirrel.dll + True + + + ..\packages\OpenTK.3.0.0-git00009\lib\net20\OpenTK.dll + True + + + ..\packages\SharpCompress.0.18.1\lib\net45\SharpCompress.dll + True + + + $(SolutionDir)\packages\Splat.2.0.0\lib\Net45\Splat.dll + True + + + ..\packages\squirrel.windows.1.7.8\lib\Net45\Squirrel.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 + + + {58f6c80c-1253-4a0e-a465-b8c85ebeadf3} + osu.Game.Rulesets.Catch + + + {48f4582b-7687-4621-9cbe-5c24197cb536} + osu.Game.Rulesets.Mania + + + {c92a607b-1fdd-4954-9f92-03ff547d9080} + osu.Game.Rulesets.Osu + + + {f167e17a-7de6-4af5-b920-a5112296c695} + osu.Game.Rulesets.Taiko + + + {2a66dd92-adb1-4994-89e2-c94e04acda0d} + osu.Game + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/osu.Desktop/osu.nuspec b/osu.Desktop/osu.nuspec new file mode 100644 index 0000000000..4c529f57e5 --- /dev/null +++ b/osu.Desktop/osu.nuspec @@ -0,0 +1,26 @@ + + + + osulazer + 0.0.0 + osulazer + ppy Pty Ltd + Dean Herbert + https://osu.ppy.sh/ + https://puu.sh/tYyXZ/9a01a5d1b0.ico + false + click the circles. to the beat. +

click the circles. + testing + Copyright ppy Pty Ltd 2007-2017 + en-AU + + + + + + + + + + diff --git a/osu.Desktop/packages.config b/osu.Desktop/packages.config new file mode 100644 index 0000000000..0ec2cc196d --- /dev/null +++ b/osu.Desktop/packages.config @@ -0,0 +1,14 @@ + + + + + + + + + + + \ 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 ba2c7a5f2e..83b16997a7 100644 --- a/osu.Game.Rulesets.Catch/osu.Game.Rulesets.Catch.csproj +++ b/osu.Game.Rulesets.Catch/osu.Game.Rulesets.Catch.csproj @@ -16,7 +16,7 @@ true full false - ..\osu.Game\bin\Debug\ + bin\Debug\ DEBUG;TRACE prompt 4 @@ -26,7 +26,7 @@ pdbonly true - ..\osu.Game\bin\Release\ + bin\Release\ TRACE prompt 4 diff --git a/osu.Game.Rulesets.Mania/osu.Game.Rulesets.Mania.csproj b/osu.Game.Rulesets.Mania/osu.Game.Rulesets.Mania.csproj index 967f23bfd3..bacb4185b2 100644 --- a/osu.Game.Rulesets.Mania/osu.Game.Rulesets.Mania.csproj +++ b/osu.Game.Rulesets.Mania/osu.Game.Rulesets.Mania.csproj @@ -16,7 +16,7 @@ true full false - ..\osu.Game\bin\Debug\ + bin\Debug\ DEBUG;TRACE prompt 4 @@ -26,7 +26,7 @@ pdbonly true - ..\osu.Game\bin\Release\ + bin\Release\ TRACE prompt 4 diff --git a/osu.Game.Rulesets.Osu/osu.Game.Rulesets.Osu.csproj b/osu.Game.Rulesets.Osu/osu.Game.Rulesets.Osu.csproj index 6bad45b8ca..f812132dc0 100644 --- a/osu.Game.Rulesets.Osu/osu.Game.Rulesets.Osu.csproj +++ b/osu.Game.Rulesets.Osu/osu.Game.Rulesets.Osu.csproj @@ -17,7 +17,7 @@ true full false - ..\osu.Game\bin\Debug\ + bin\Debug\ DEBUG;TRACE prompt 4 @@ -27,7 +27,7 @@ pdbonly true - ..\osu.Game\bin\Release\ + bin\Release\ TRACE prompt 4 diff --git a/osu.Game.Rulesets.Taiko/osu.Game.Rulesets.Taiko.csproj b/osu.Game.Rulesets.Taiko/osu.Game.Rulesets.Taiko.csproj index 2c49be287b..d38b24f933 100644 --- a/osu.Game.Rulesets.Taiko/osu.Game.Rulesets.Taiko.csproj +++ b/osu.Game.Rulesets.Taiko/osu.Game.Rulesets.Taiko.csproj @@ -16,7 +16,7 @@ true full false - ..\osu.Game\bin\Debug\ + bin\Debug\ DEBUG;TRACE prompt 4 @@ -26,7 +26,7 @@ pdbonly true - ..\osu.Game\bin\Release\ + bin\Release\ TRACE prompt 4 diff --git a/osu.Game/osu.Game.csproj b/osu.Game/osu.Game.csproj index ebedf32da0..a84970b4ee 100644 --- a/osu.Game/osu.Game.csproj +++ b/osu.Game/osu.Game.csproj @@ -4,10 +4,10 @@ {2A66DD92-ADB1-4994-89E2-C94E04ACDA0D} Debug AnyCPU - WinExe + Library Properties osu.Game - osu! + osu.Game 3CF060CD28877D0E3112948951A64B2A7CEEC909 codesigning.pfx false @@ -18,7 +18,6 @@ 3.5 - osu.Game.Program OnOutputUpdated false LocalIntranet @@ -83,9 +82,6 @@ - - lazer.ico - Properties\app.manifest @@ -105,47 +101,15 @@ false - - $(SolutionDir)\packages\DeltaCompressionDotNet.1.1.0\lib\net20\DeltaCompressionDotNet.dll - True - - - $(SolutionDir)\packages\DeltaCompressionDotNet.1.1.0\lib\net20\DeltaCompressionDotNet.MsDelta.dll - True - - - $(SolutionDir)\packages\DeltaCompressionDotNet.1.1.0\lib\net20\DeltaCompressionDotNet.PatchApi.dll - True - $(SolutionDir)\packages\DotNetZip.1.10.1\lib\net20\DotNetZip.dll True - - $(SolutionDir)\packages\Mono.Cecil.0.9.6.4\lib\net45\Mono.Cecil.dll - True - - - $(SolutionDir)\packages\Mono.Cecil.0.9.6.4\lib\net45\Mono.Cecil.Mdb.dll - True - - - $(SolutionDir)\packages\Mono.Cecil.0.9.6.4\lib\net45\Mono.Cecil.Pdb.dll - True - - - $(SolutionDir)\packages\Mono.Cecil.0.9.6.4\lib\net45\Mono.Cecil.Rocks.dll - True - $(SolutionDir)\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll True - - $(SolutionDir)\packages\squirrel.windows.1.7.8\lib\Net45\NuGet.Squirrel.dll - True - $(SolutionDir)\packages\NUnit.3.8.1\lib\net45\nunit.framework.dll True @@ -158,10 +122,6 @@ $(SolutionDir)\packages\SharpCompress.0.18.1\lib\net45\SharpCompress.dll True - - $(SolutionDir)\packages\Splat.2.0.0\lib\Net45\Splat.dll - True - $(SolutionDir)\packages\SQLite.Net.Core-PCL.3.1.1\lib\portable-win8+net45+wp8+wpa81+MonoAndroid1+MonoTouch1\SQLite.Net.dll True @@ -178,14 +138,7 @@ $(SolutionDir)\packages\SQLiteNetExtensions.1.3.0\lib\portable-net45+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1\SQLiteNetExtensions.dll True - - $(SolutionDir)\packages\squirrel.windows.1.7.8\lib\Net45\Squirrel.dll - True - - - - @@ -389,8 +342,6 @@ - - @@ -518,9 +469,7 @@ - - @@ -821,9 +770,6 @@ - - - - - - - \ No newline at end of file diff --git a/osu.sln b/osu.sln index 2b1a0aa0e5..b1341051f9 100644 --- a/osu.sln +++ b/osu.sln @@ -21,6 +21,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "osu.Desktop.Deploy", "osu.D EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "osu.Game.Tests", "osu.Game.Tests\osu.Game.Tests.csproj", "{54377672-20B1-40AF-8087-5CF73BF3953A}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "osu.Desktop", "osu.Desktop\osu.Desktop.csproj", "{419659FD-72EA-4678-9EB8-B22A746CED70}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -79,6 +81,12 @@ Global {54377672-20B1-40AF-8087-5CF73BF3953A}.Release|Any CPU.Build.0 = Release|Any CPU {54377672-20B1-40AF-8087-5CF73BF3953A}.VisualTests|Any CPU.ActiveCfg = Release|Any CPU {54377672-20B1-40AF-8087-5CF73BF3953A}.VisualTests|Any CPU.Build.0 = Release|Any CPU + {419659FD-72EA-4678-9EB8-B22A746CED70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {419659FD-72EA-4678-9EB8-B22A746CED70}.Debug|Any CPU.Build.0 = Debug|Any CPU + {419659FD-72EA-4678-9EB8-B22A746CED70}.Release|Any CPU.ActiveCfg = Release|Any CPU + {419659FD-72EA-4678-9EB8-B22A746CED70}.Release|Any CPU.Build.0 = Release|Any CPU + {419659FD-72EA-4678-9EB8-B22A746CED70}.VisualTests|Any CPU.ActiveCfg = Debug|Any CPU + {419659FD-72EA-4678-9EB8-B22A746CED70}.VisualTests|Any CPU.Build.0 = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/osu.sln.DotSettings b/osu.sln.DotSettings index 4011e3991f..c236ce82b0 100644 --- a/osu.sln.DotSettings +++ b/osu.sln.DotSettings @@ -645,6 +645,7 @@ Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu-frame <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> + True True True True From 179542daf10453e0199c375e817e2cc81984f711 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Sat, 14 Oct 2017 15:02:20 +0900 Subject: [PATCH 6/8] Standardise AssemblyInfos --- osu.Desktop/Properties/AssemblyInfo.cs | 2 +- .../Properties/AssemblyInfo.cs | 16 +----- .../Properties/AssemblyInfo.cs | 16 +----- .../Properties/AssemblyInfo.cs | 16 +----- .../Properties/AssemblyInfo.cs | 16 +----- osu.Game/Properties/AssemblyInfo.cs | 8 +-- osu.Game/Properties/app.manifest | 57 ------------------- osu.Game/osu.Game.csproj | 5 +- 8 files changed, 18 insertions(+), 118 deletions(-) delete mode 100644 osu.Game/Properties/app.manifest diff --git a/osu.Desktop/Properties/AssemblyInfo.cs b/osu.Desktop/Properties/AssemblyInfo.cs index fe7ad20124..2ed304ebd7 100644 --- a/osu.Desktop/Properties/AssemblyInfo.cs +++ b/osu.Desktop/Properties/AssemblyInfo.cs @@ -22,7 +22,7 @@ using System.Runtime.InteropServices; [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: Guid("b0cb1d48-e4c2-4612-a347-beea7b1a71e7")] [assembly: AssemblyVersion("0.0.0")] [assembly: AssemblyFileVersion("0.0.0")] diff --git a/osu.Game.Rulesets.Catch/Properties/AssemblyInfo.cs b/osu.Game.Rulesets.Catch/Properties/AssemblyInfo.cs index 42fbc7e082..dd2006c60c 100644 --- a/osu.Game.Rulesets.Catch/Properties/AssemblyInfo.cs +++ b/osu.Game.Rulesets.Catch/Properties/AssemblyInfo.cs @@ -8,11 +8,11 @@ using System.Runtime.InteropServices; // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("osu.Game.Rulesets.Catch")] -[assembly: AssemblyDescription("")] +[assembly: AssemblyDescription("catch the fruit. to the beat.")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] +[assembly: AssemblyCompany("ppy Pty Ltd")] [assembly: AssemblyProduct("osu.Game.Rulesets.Catch")] -[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyCopyright("ppy Pty Ltd 2007-2017")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -24,15 +24,5 @@ using System.Runtime.InteropServices; // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("58f6c80c-1253-4a0e-a465-b8c85ebeadf3")] -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/osu.Game.Rulesets.Mania/Properties/AssemblyInfo.cs b/osu.Game.Rulesets.Mania/Properties/AssemblyInfo.cs index 790002acd7..85a8f95b14 100644 --- a/osu.Game.Rulesets.Mania/Properties/AssemblyInfo.cs +++ b/osu.Game.Rulesets.Mania/Properties/AssemblyInfo.cs @@ -8,11 +8,11 @@ using System.Runtime.InteropServices; // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("osu.Game.Rulesets.Mania")] -[assembly: AssemblyDescription("")] +[assembly: AssemblyDescription("smash the keys. to the beat.")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] +[assembly: AssemblyCompany("ppy Pty Ltd")] [assembly: AssemblyProduct("osu.Game.Rulesets.Mania")] -[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyCopyright("ppy Pty Ltd 2007-2017")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -24,15 +24,5 @@ using System.Runtime.InteropServices; // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("48f4582b-7687-4621-9cbe-5c24197cb536")] -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/osu.Game.Rulesets.Osu/Properties/AssemblyInfo.cs b/osu.Game.Rulesets.Osu/Properties/AssemblyInfo.cs index 791c9b594d..b6cf47071a 100644 --- a/osu.Game.Rulesets.Osu/Properties/AssemblyInfo.cs +++ b/osu.Game.Rulesets.Osu/Properties/AssemblyInfo.cs @@ -8,11 +8,11 @@ using System.Runtime.InteropServices; // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("osu.Game.Mode.Osu")] -[assembly: AssemblyDescription("")] +[assembly: AssemblyDescription("click the circles. to the beat.")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] +[assembly: AssemblyCompany("ppy Pty Ltd")] [assembly: AssemblyProduct("osu.Game.Mode.Osu")] -[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyCopyright("ppy Pty Ltd 2007-2017")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -24,15 +24,5 @@ using System.Runtime.InteropServices; // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("c92a607b-1fdd-4954-9f92-03ff547d9080")] -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/osu.Game.Rulesets.Taiko/Properties/AssemblyInfo.cs b/osu.Game.Rulesets.Taiko/Properties/AssemblyInfo.cs index 89c07517ca..f6a9c8f101 100644 --- a/osu.Game.Rulesets.Taiko/Properties/AssemblyInfo.cs +++ b/osu.Game.Rulesets.Taiko/Properties/AssemblyInfo.cs @@ -8,11 +8,11 @@ using System.Runtime.InteropServices; // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("osu.Game.Rulesets.Taiko")] -[assembly: AssemblyDescription("")] +[assembly: AssemblyDescription("bash the drum. to the beat.")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] +[assembly: AssemblyCompany("ppy Pty Ltd")] [assembly: AssemblyProduct("osu.Game.Rulesets.Taiko")] -[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyCopyright("ppy Pty Ltd 2007-2017")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -24,15 +24,5 @@ using System.Runtime.InteropServices; // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("f167e17a-7de6-4af5-b920-a5112296c695")] -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/osu.Game/Properties/AssemblyInfo.cs b/osu.Game/Properties/AssemblyInfo.cs index fe7ad20124..e28f8a3873 100644 --- a/osu.Game/Properties/AssemblyInfo.cs +++ b/osu.Game/Properties/AssemblyInfo.cs @@ -7,11 +7,11 @@ 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!lazer")] +[assembly: AssemblyTitle("osu.Game")] [assembly: AssemblyDescription("click the circles. to the beat.")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("ppy Pty Ltd")] -[assembly: AssemblyProduct("osu!lazer")] +[assembly: AssemblyProduct("osu.Game")] [assembly: AssemblyCopyright("ppy Pty Ltd 2007-2017")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -24,5 +24,5 @@ using System.Runtime.InteropServices; // 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("0.0.0")] -[assembly: AssemblyFileVersion("0.0.0")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/osu.Game/Properties/app.manifest b/osu.Game/Properties/app.manifest deleted file mode 100644 index 555db8513d..0000000000 --- a/osu.Game/Properties/app.manifest +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - - - - - - diff --git a/osu.Game/osu.Game.csproj b/osu.Game/osu.Game.csproj index a84970b4ee..4b9297b963 100644 --- a/osu.Game/osu.Game.csproj +++ b/osu.Game/osu.Game.csproj @@ -82,9 +82,7 @@ - - Properties\app.manifest - + true bin\Debug\ @@ -148,7 +146,6 @@ - From 7ecf4b2154ff7977523f44a1ea70c5feb8f01e7d Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Sat, 14 Oct 2017 15:05:03 +0900 Subject: [PATCH 7/8] Update framework --- osu-framework | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu-framework b/osu-framework index 3760443ea9..0bc71f95b4 160000 --- a/osu-framework +++ b/osu-framework @@ -1 +1 @@ -Subproject commit 3760443ea9bf682a1bbf6cfa6aa00ea9541c12aa +Subproject commit 0bc71f95b455d3829b2abf662b5fe25989e6c43c From 97b14f7d81549d90c9ad94992e0fb8fa9b33c12d Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Sat, 14 Oct 2017 15:06:43 +0900 Subject: [PATCH 8/8] Update vscode launch configuration --- .vscode/launch.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index d17dc33669..506915f462 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -7,7 +7,7 @@ }, "type": "mono", "request": "launch", - "program": "${workspaceRoot}/osu.Game/bin/Debug/osu!.exe", + "program": "${workspaceRoot}/osu.Desktop/bin/Debug/osu!.exe", "args": [ "--tests" ], @@ -24,7 +24,7 @@ }, "type": "mono", "request": "launch", - "program": "${workspaceRoot}/osu.Game/bin/Release/osu!.exe", + "program": "${workspaceRoot}/osu.Desktop/bin/Release/osu!.exe", "args": [ "--tests" ], @@ -41,7 +41,7 @@ }, "type": "mono", "request": "launch", - "program": "${workspaceRoot}/osu.Game/bin/Debug/osu!.exe", + "program": "${workspaceRoot}/osu.Desktop/bin/Debug/osu!.exe", "cwd": "${workspaceRoot}", "preLaunchTask": "Build (Debug)", "runtimeExecutable": null, @@ -55,7 +55,7 @@ }, "type": "mono", "request": "launch", - "program": "${workspaceRoot}/osu.Game/bin/Release/osu!.exe", + "program": "${workspaceRoot}/osu.Desktop/bin/Release/osu!.exe", "cwd": "${workspaceRoot}", "preLaunchTask": "Build (Release)", "runtimeExecutable": null,

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