Make pk1/2 => pk7 PID transfer mimic official mechanism

Hardcode 0 xors to indicate SID and end result ShinyXor=0.

#3002
This commit is contained in:
Kurt 2020-09-25 18:00:10 -07:00
parent f10f1fef65
commit cb0bbe889e
2 changed files with 18 additions and 4 deletions

View File

@ -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))

View File

@ -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))