From 552e7a1a3916a8d171e5726be73b09a179729225 Mon Sep 17 00:00:00 2001 From: Kurt Date: Tue, 1 Jan 2019 20:04:29 -0800 Subject: [PATCH] Fix pokewalker pid check for female-only MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit pidGender check failed as 0xFE (female only) returned male if pid ended in 0xFE or 0xFF jump out early if the pkm is fixed gender rather than genderless only https://projectpokemon.org/home/forums/topic/48956-pokewalker-happiny-pid-mismatch/ Thanks Taargüs Taargüs! --- PKHeX.Core/Legality/RNG/PIDGenerator.cs | 10 +++++----- ...63\343\203\227\343\202\257 - 17961FFFFFFE.pk4" | Bin 0 -> 136 bytes 2 files changed, 5 insertions(+), 5 deletions(-) create mode 100644 "Tests/PKHeX.Core.Tests/Legality/Legal/Generation 4/440 - \343\203\224\343\203\263\343\203\227\343\202\257 - 17961FFFFFFE.pk4" diff --git a/PKHeX.Core/Legality/RNG/PIDGenerator.cs b/PKHeX.Core/Legality/RNG/PIDGenerator.cs index 5d12761db3e..d4096ab814c 100644 --- a/PKHeX.Core/Legality/RNG/PIDGenerator.cs +++ b/PKHeX.Core/Legality/RNG/PIDGenerator.cs @@ -230,18 +230,18 @@ public static uint GetPokeWalkerPID(int TID, int SID, uint nature, int gender, i // Ensure nature is set to required nature without affecting shininess pid += nature - (pid % 25); + if (gr >= 0xFE || gr == 0) // non-dual gender + return pid; + // Ensure Gender is set to required gender without affecting other properties // If Gender is modified, modify the ability if appropriate - int currentGender = gender; - if (currentGender == 2) - return pid; // either m/f var pidGender = (pid & 0xFF) < gr ? 1 : 0; - if (currentGender == pidGender) + if (gender == pidGender) return pid; - if (currentGender == 0) // Male + if (gender == 0) // Male { pid += (uint)((((gr - (pid & 0xFF)) / 25) + 1) * 25); if ((nature & 1) != (pid & 1)) diff --git "a/Tests/PKHeX.Core.Tests/Legality/Legal/Generation 4/440 - \343\203\224\343\203\263\343\203\227\343\202\257 - 17961FFFFFFE.pk4" "b/Tests/PKHeX.Core.Tests/Legality/Legal/Generation 4/440 - \343\203\224\343\203\263\343\203\227\343\202\257 - 17961FFFFFFE.pk4" new file mode 100644 index 0000000000000000000000000000000000000000..b3167ef762fed294b4062d480d0812624be18bdb GIT binary patch literal 136 zcmezO|Gzu~!!+?7j4K(W@6TXJVPIhBkz-&4QYe6t;S57P<8=mQ5fN69#Dwl7D-g{D xA{bsWv@$GY=wL`-`2Qa)03$eHjGYWu7;Z3J0+MhQ!i+#$c5ySXv@)