From 1906a1040f4f8827eb19785fa47182169c3e95b7 Mon Sep 17 00:00:00 2001 From: Kurt Date: Sun, 5 Jan 2020 21:41:32 -0800 Subject: [PATCH] Relocate console-location data setting to PKMConverter When adding data, check if the current Trainer has valid console data; if not, use a default value. --- PKHeX.Core/PKM/PK1.cs | 7 ++----- PKHeX.Core/PKM/PK2.cs | 7 ++----- PKHeX.Core/PKM/PK5.cs | 7 ++----- PKHeX.Core/PKM/PK6.cs | 3 +-- PKHeX.Core/PKM/Shared/QRPK7.cs | 4 +--- PKHeX.Core/PKM/Util/PKMConverter.cs | 19 ++++++++++++++++--- 6 files changed, 24 insertions(+), 23 deletions(-) diff --git a/PKHeX.Core/PKM/PK1.cs b/PKHeX.Core/PKM/PK1.cs index 6d0ba399b..d45e2c215 100644 --- a/PKHeX.Core/PKM/PK1.cs +++ b/PKHeX.Core/PKM/PK1.cs @@ -151,15 +151,12 @@ namespace PKHeX.Core OT_Name = StringConverter12.GetG1ConvertedString(otname, Japanese), IsNicknamed = false, - Country = PKMConverter.Country, - Region = PKMConverter.Region, - ConsoleRegion = PKMConverter.ConsoleRegion, CurrentHandler = 1, HT_Name = PKMConverter.OT_Name, HT_Gender = PKMConverter.OT_Gender, - Geo1_Country = PKMConverter.Country, - Geo1_Region = PKMConverter.Region }; + PKMConverter.SetConsoleRegionData3DS(pk7); + PKMConverter.SetFirstCountryRegion(pk7); pk7.HealPP(); pk7.Language = TransferLanguage(PKMConverter.Language); pk7.Nickname = SpeciesName.GetSpeciesNameGeneration(pk7.Species, pk7.Language, pk7.Format); diff --git a/PKHeX.Core/PKM/PK2.cs b/PKHeX.Core/PKM/PK2.cs index bcedf8c64..8635f9e59 100644 --- a/PKHeX.Core/PKM/PK2.cs +++ b/PKHeX.Core/PKM/PK2.cs @@ -150,15 +150,12 @@ namespace PKHeX.Core IsNicknamed = false, AltForm = AltForm, - Country = PKMConverter.Country, - Region = PKMConverter.Region, - ConsoleRegion = PKMConverter.ConsoleRegion, CurrentHandler = 1, HT_Name = PKMConverter.OT_Name, HT_Gender = PKMConverter.OT_Gender, - Geo1_Country = PKMConverter.Country, - Geo1_Region = PKMConverter.Region }; + PKMConverter.SetConsoleRegionData3DS(pk7); + PKMConverter.SetFirstCountryRegion(pk7); pk7.HealPP(); pk7.Language = TransferLanguage(PKMConverter.Language); pk7.Nickname = SpeciesName.GetSpeciesNameGeneration(pk7.Species, pk7.Language, pk7.Format); diff --git a/PKHeX.Core/PKM/PK5.cs b/PKHeX.Core/PKM/PK5.cs index 78771de63..189c53b97 100644 --- a/PKHeX.Core/PKM/PK5.cs +++ b/PKHeX.Core/PKM/PK5.cs @@ -480,16 +480,13 @@ namespace PKHeX.Core pk6.RibbonChampionWorld = RibbonChampionWorld; // Write Transfer Location - location is dependent on 3DS system that transfers. - pk6.Country = PKMConverter.Country; - pk6.Region = PKMConverter.Region; - pk6.ConsoleRegion = PKMConverter.ConsoleRegion; + PKMConverter.SetConsoleRegionData3DS(pk6); + PKMConverter.SetFirstCountryRegion(pk6); // Write the Memories, Friendship, and Origin! pk6.CurrentHandler = 1; pk6.HT_Name = PKMConverter.OT_Name; pk6.HT_Gender = PKMConverter.OT_Gender; - pk6.Geo1_Region = PKMConverter.Region; - pk6.Geo1_Country = PKMConverter.Country; pk6.HT_Intensity = 1; pk6.HT_Memory = 4; pk6.HT_Feeling = Memories.GetRandomFeeling(pk6.HT_Memory); diff --git a/PKHeX.Core/PKM/PK6.cs b/PKHeX.Core/PKM/PK6.cs index 3f3e61420..f6d8ddcfc 100644 --- a/PKHeX.Core/PKM/PK6.cs +++ b/PKHeX.Core/PKM/PK6.cs @@ -463,8 +463,7 @@ namespace PKHeX.Core } pk7.TradeMemory(Bank: true); // oh no, memories on gen7 pkm - pk7.Geo1_Country = PKMConverter.Country; - pk7.Geo1_Region = PKMConverter.Region; + PKMConverter.SetFirstCountryRegion(pk7); // Bank-accurate data zeroing for (var i = 0x94; i < 0x9E; i++) pk7.Data[i] = 0; /* Geolocations. */ diff --git a/PKHeX.Core/PKM/Shared/QRPK7.cs b/PKHeX.Core/PKM/Shared/QRPK7.cs index 4b9aaaa80..472d84487 100644 --- a/PKHeX.Core/PKM/Shared/QRPK7.cs +++ b/PKHeX.Core/PKM/Shared/QRPK7.cs @@ -105,10 +105,8 @@ namespace PKHeX.Core CurrentLevel = Level, Met_Level = Level, MetDate = DateTime.Now, - Country = PKMConverter.Country, - Region = PKMConverter.Region, - ConsoleRegion = PKMConverter.ConsoleRegion, }; + PKMConverter.SetConsoleRegionData3DS(pk); pk.RefreshAbility(AbilityIndex >> 1); pk.ForcePartyData(); diff --git a/PKHeX.Core/PKM/Util/PKMConverter.cs b/PKHeX.Core/PKM/Util/PKMConverter.cs index 5a9247b85..a9394c42d 100644 --- a/PKHeX.Core/PKM/Util/PKMConverter.cs +++ b/PKHeX.Core/PKM/Util/PKMConverter.cs @@ -13,15 +13,28 @@ namespace PKHeX.Core public static class PKMConverter { public static ITrainerInfo Trainer { internal get; set; } = new SimpleTrainerInfo(); - public static int Country => Trainer.Country; - public static int Region => Trainer.SubRegion; - public static int ConsoleRegion => Trainer.ConsoleRegion; + private static readonly ITrainerInfo Trainer67 = new SimpleTrainerInfo(GameVersion.SN); public static string OT_Name => Trainer.OT; public static int OT_Gender => Trainer.Gender; public static int Language => Trainer.Language; public static int Format => Trainer.Generation; public static bool AllowIncompatibleConversion { private get; set; } + public static void SetConsoleRegionData3DS(PKM pkm) + { + var trainer = Trainer.ConsoleRegion != 0 ? Trainer : Trainer67; + pkm.ConsoleRegion = trainer.ConsoleRegion; + pkm.Country = trainer.Country; + pkm.Region = trainer.SubRegion; + } + + public static void SetFirstCountryRegion(IGeoTrack pkm) + { + var trainer = Trainer.ConsoleRegion != 0 ? Trainer : Trainer67; + pkm.Geo1_Country = trainer.Country; + pkm.Geo1_Region = trainer.SubRegion; + } + /// /// Gets the generation of the Pokemon data. ///