From 249c08b062ccd75dd05c09ab3a3cfc31f47e41b3 Mon Sep 17 00:00:00 2001 From: Kurt Date: Sun, 16 Jul 2017 14:05:29 -0700 Subject: [PATCH] Add gen-sensitive deoxys sprite fetching Closes #1327 --- PKHeX.WinForms/MainWindow/Main.cs | 1 + PKHeX.WinForms/Util/PKMUtil.cs | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/PKHeX.WinForms/MainWindow/Main.cs b/PKHeX.WinForms/MainWindow/Main.cs index 9f2ec282e..1c17e5f55 100644 --- a/PKHeX.WinForms/MainWindow/Main.cs +++ b/PKHeX.WinForms/MainWindow/Main.cs @@ -746,6 +746,7 @@ private void OpenSAV(SaveFile sav, string path) if (!SanityCheckSAV(ref sav, path)) return; StoreLegalSaveGameData(sav); + PKMUtil.Initialize(sav); // refresh sprite generator // clean fields C_SAV.M.Reset(); diff --git a/PKHeX.WinForms/Util/PKMUtil.cs b/PKHeX.WinForms/Util/PKMUtil.cs index 1776692ad..63f843e3b 100644 --- a/PKHeX.WinForms/Util/PKMUtil.cs +++ b/PKHeX.WinForms/Util/PKMUtil.cs @@ -6,6 +6,32 @@ namespace PKHeX.WinForms { public static class PKMUtil { + public static void Initialize(SaveFile sav) + { + if (sav.Generation != 3) + return; + + Game = sav.Version; + if (Game == GameVersion.FRLG) + Game = sav.Personal == PersonalTable.FR ? GameVersion.FR : GameVersion.LG; + } + private static GameVersion Game; + + private static int GetDeoxysForm() + { + switch (Game) + { + default: + return 0; + case GameVersion.FR: // Attack + return 1; + case GameVersion.LG: // Defense + return 2; + case GameVersion.E: // Speed + return 3; + } + } + public static Image GetBallSprite(int ball) { string str = PKX.GetResourceStringBall(ball); @@ -16,6 +42,9 @@ public static Image GetSprite(int species, int form, int gender, int item, bool if (species == 0) return Resources._0; + if (generation == 3 && species == 386) // Deoxys, special consideration for Gen3 save files + form = GetDeoxysForm(); + string file = PKX.GetResourceStringSprite(species, form, gender, generation); // Redrawing logic