Misc ec/pid tweaks

use the encryption constant (pk3-5 return PID on get), fix gen4 using
gen5 correlation
This commit is contained in:
Kurt 2017-05-03 23:14:34 -07:00
parent 99b243b4fa
commit d05d6c44f4
3 changed files with 4 additions and 8 deletions

View file

@ -2438,9 +2438,8 @@ namespace PKHeX.WinForms
uint evoVal;
switch (pkm.GenNumber)
{
case 3: evoVal = pkm.PID & 0xFFFF; break;
case 4:
case 5: evoVal = pkm.PID >> 16; break;
case 3: evoVal = pkm.EncryptionConstant & 0xFFFF; break;
default: evoVal = pkm.EncryptionConstant >> 16; break;
}
evoVal = evoVal%10/5;

View file

@ -92,7 +92,7 @@ namespace PKHeX.Core
if (!PIDNature)
return;
if (pkm.PID % 25 == pkm.Nature)
if (pkm.EncryptionConstant % 25 == pkm.Nature)
AddLine(Severity.Valid, V252, CheckIdentifier.Nature);
else
AddLine(Severity.Invalid, V253, CheckIdentifier.Nature);
@ -152,9 +152,8 @@ namespace PKHeX.Core
uint evoVal;
switch (pkm.GenNumber)
{
case 3: evoVal = pkm.PID & 0xFFFF; break;
case 4:
case 5: evoVal = pkm.PID >> 16; break;
case 3: evoVal = pkm.EncryptionConstant & 0xFFFF; break;
default: evoVal = pkm.EncryptionConstant >> 16; break;
}
evoVal = evoVal%10/5;

View file

@ -17,9 +17,7 @@ namespace PKHeX.Core
{
if (pk.Format < 3)
return AnalyzeGB(pk);
var pid = pk.Format >= 6 && pk.GenNumber >= 3 && pk.GenNumber < 6
? pk.EncryptionConstant // use unmodified PID, quicker than checking if bit was flipped
: pk.PID; // use actual PID
var pid = pk.EncryptionConstant;
var top = pid >> 16;
var bot = pid & 0xFFFF;