From bf47317dd1616153e7be5bb85ab641f1cb3ede1a Mon Sep 17 00:00:00 2001 From: Kurt Date: Mon, 13 Apr 2020 09:52:25 -0700 Subject: [PATCH] Add setting to force large sprites for past gen Causes the Other tab (daycare/gts/fused) to look wonky (not scaled), but I'm ok with that being a known flaw for now. --- PKHeX.Drawing/Sprites/SpriteUtil.cs | 20 +++++++++++++++---- PKHeX.WinForms/MainWindow/Main.cs | 1 + .../Properties/Settings.Designer.cs | 12 +++++++++++ PKHeX.WinForms/Properties/Settings.settings | 3 +++ 4 files changed, 32 insertions(+), 4 deletions(-) diff --git a/PKHeX.Drawing/Sprites/SpriteUtil.cs b/PKHeX.Drawing/Sprites/SpriteUtil.cs index 1b402eb21..511071f7e 100644 --- a/PKHeX.Drawing/Sprites/SpriteUtil.cs +++ b/PKHeX.Drawing/Sprites/SpriteUtil.cs @@ -9,7 +9,7 @@ public static class SpriteUtil { public static readonly SpriteBuilder3040 SB17 = new SpriteBuilder3040(); public static readonly SpriteBuilder5668 SB8 = new SpriteBuilder5668(); - public static SpriteBuilder Spriter { get; set; } = SB17; + public static SpriteBuilder Spriter { get; set; } = SB8; public static Image GetBallSprite(int ball) { @@ -216,13 +216,25 @@ public static void GetSpriteGlow(Image baseSprite, byte blue, byte green, byte r public static Image Sprite(this PKM pk, SaveFile sav, int box, int slot, bool flagIllegal = false) => GetSprite(pk, sav, box, slot, flagIllegal); + public static bool UseLargeAlways { get; set; } = true; + public static void Initialize(SaveFile sav) { - var big = GameVersion.GG.Contains(sav.Version) || sav.Generation >= 8; - Spriter = big ? (SpriteBuilder)SB8 : SB17; + var s = GetSpriter(sav); // gen3 specific sprites - Spriter.Initialize(sav); + s.Initialize(sav); + + Spriter = s; + } + + private static SpriteBuilder GetSpriter(SaveFile sav) + { + if (UseLargeAlways) + return SB8; + + var big = GameVersion.GG.Contains(sav.Version) || sav.Generation >= 8; + return big ? (SpriteBuilder) SB8 : SB17; } } } diff --git a/PKHeX.WinForms/MainWindow/Main.cs b/PKHeX.WinForms/MainWindow/Main.cs index 5331c06f4..958d6c73c 100644 --- a/PKHeX.WinForms/MainWindow/Main.cs +++ b/PKHeX.WinForms/MainWindow/Main.cs @@ -436,6 +436,7 @@ private void ReloadProgramSettings(Settings settings) ParseSettings.AllowGen1Tradeback = settings.AllowGen1Tradeback; ParseSettings.Gen8TransferTrackerNotPresent = settings.FlagMissingTracker ? Severity.Invalid : Severity.Fishy; PKME_Tabs.HideSecretValues = C_SAV.HideSecretDetails = settings.HideSecretDetails; + SpriteUtil.UseLargeAlways = settings.UseLargeSprites; } private void MainMenuBoxLoad(object sender, EventArgs e) diff --git a/PKHeX.WinForms/Properties/Settings.Designer.cs b/PKHeX.WinForms/Properties/Settings.Designer.cs index 0ee34c9df..a002f095f 100644 --- a/PKHeX.WinForms/Properties/Settings.Designer.cs +++ b/PKHeX.WinForms/Properties/Settings.Designer.cs @@ -346,5 +346,17 @@ internal sealed partial class Settings : global::System.Configuration.Applicatio this["ApplyNature"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("True")] + public bool UseLargeSprites { + get { + return ((bool)(this["UseLargeSprites"])); + } + set { + this["UseLargeSprites"] = value; + } + } } } diff --git a/PKHeX.WinForms/Properties/Settings.settings b/PKHeX.WinForms/Properties/Settings.settings index 23650e309..764933a31 100644 --- a/PKHeX.WinForms/Properties/Settings.settings +++ b/PKHeX.WinForms/Properties/Settings.settings @@ -83,5 +83,8 @@ False + + True + \ No newline at end of file