From 2ab175db6ead0a879762dd92d97e4a7edd10fe9f Mon Sep 17 00:00:00 2001 From: Kurt Date: Fri, 20 Jan 2017 20:59:50 -0800 Subject: [PATCH] improve pcd<->pgt matching Hotfix wasn't appropriate: check bytes 0 & 1 in addition to 3+, add bounds checking --- PKHeX/MysteryGifts/PGT.cs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/PKHeX/MysteryGifts/PGT.cs b/PKHeX/MysteryGifts/PGT.cs index b60f5dccb..300774b7c 100644 --- a/PKHeX/MysteryGifts/PGT.cs +++ b/PKHeX/MysteryGifts/PGT.cs @@ -69,8 +69,19 @@ public override string CardTitle public bool GiftEquals(PGT pgt) { - // Skip over the PGT's "Corresponding PCD Slot" - return Gift.Data.Skip(3).SequenceEqual(pgt.Data.Skip(3)); + // Skip over the PGT's "Corresponding PCD Slot" @ 0x02 + byte[] g = pgt.Data; + byte[] c = Gift.Data; + if (g.Length != c.Length || g.Length < 3) + return false; + for (int i = 0; i < 2; i++) + if (g[i] != c[i]) + return false; + for (int i = 3; i < g.Length; i++) + if (g[i] != c[i]) + return false; + + return true; } public override PKM convertToPKM(SaveFile SAV)