From cb0bbe889efe3b92a5ba7679b795f22b9025abdf Mon Sep 17 00:00:00 2001 From: Kurt Date: Fri, 25 Sep 2020 18:00:10 -0700 Subject: [PATCH] Make pk1/2 => pk7 PID transfer mimic official mechanism Hardcode 0 xors to indicate SID and end result ShinyXor=0. #3002 --- PKHeX.Core/PKM/PK1.cs | 11 +++++++++-- PKHeX.Core/PKM/PK2.cs | 11 +++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/PKHeX.Core/PKM/PK1.cs b/PKHeX.Core/PKM/PK1.cs index 75aa32ad7..46ff0fa30 100644 --- a/PKHeX.Core/PKM/PK1.cs +++ b/PKHeX.Core/PKM/PK1.cs @@ -181,8 +181,15 @@ public PK7 ConvertToPK7() Util.Shuffle(new_ivs); pk7.IVs = new_ivs; - if (IsShiny) - pk7.SetShiny(); + switch (IsShiny ? Shiny.Always : Shiny.Never) + { + case Shiny.Always when !pk7.IsShiny: // Force Square + pk7.PID = (uint)(((pk7.TID ^ 0 ^ (PID & 0xFFFF) ^ 0) << 16) | (PID & 0xFFFF)); + break; + case Shiny.Never when pk7.IsShiny: // Force Not Shiny + pk7.PID ^= 0x1000_0000; + break; + } int abil = 2; // Hidden if (Legal.TransferSpeciesDefaultAbility_1.Contains(Species)) diff --git a/PKHeX.Core/PKM/PK2.cs b/PKHeX.Core/PKM/PK2.cs index 093a91b54..1f3fffbcf 100644 --- a/PKHeX.Core/PKM/PK2.cs +++ b/PKHeX.Core/PKM/PK2.cs @@ -174,8 +174,15 @@ public PK7 ConvertToPK7() Util.Shuffle(new_ivs); pk7.IVs = new_ivs; - if (IsShiny) - pk7.SetShiny(); + switch (IsShiny ? Shiny.Always : Shiny.Never) + { + case Shiny.Always when !pk7.IsShiny: // Force Square + pk7.PID = (uint)(((pk7.TID ^ 0 ^ (PID & 0xFFFF) ^ 0) << 16) | (PID & 0xFFFF)); + break; + case Shiny.Never when pk7.IsShiny: // Force Not Shiny + pk7.PID ^= 0x1000_0000; + break; + } int abil = 2; // Hidden if (Legal.TransferSpeciesDefaultAbility_2.Contains(Species))