diff --git a/PKHeX/MainWindow/Main.cs b/PKHeX/MainWindow/Main.cs index 07c4e5d89..d44571465 100644 --- a/PKHeX/MainWindow/Main.cs +++ b/PKHeX/MainWindow/Main.cs @@ -3394,7 +3394,7 @@ private void dumpBoxesToDB(string path, bool individualBoxFolders) Directory.CreateDirectory(Path.Combine(path, boxfolder)); } if (!File.Exists(Path.Combine(Path.Combine(path, boxfolder), fileName))) - File.WriteAllBytes(Path.Combine(Path.Combine(path, boxfolder), fileName), pk.Data.Take(SAV.SIZE_STORED).ToArray()); + File.WriteAllBytes(Path.Combine(Path.Combine(path, boxfolder), fileName), pk.DecryptedBoxData); } } private void loadBoxesFromDB(string path) diff --git a/PKHeX/Saves/SaveFile.cs b/PKHeX/Saves/SaveFile.cs index 250d68dd1..15c3229f4 100644 --- a/PKHeX/Saves/SaveFile.cs +++ b/PKHeX/Saves/SaveFile.cs @@ -466,7 +466,14 @@ public bool setPCBin(byte[] data) PKM[] pkms = BoxData; for (int i = 0; i < pkms.Length; i++) - pkms[i].Data = decryptPKM(pkdata[i]); + { + if (Generation == 1) + pkms[i] = new PokemonList1(decryptPKM(pkdata[i]))[0]; + else if (Generation == 2) + pkms[i] = new PokemonList2(decryptPKM(pkdata[i]))[0]; + else + pkms[i].Data = decryptPKM(pkdata[i]); + } BoxData = pkms; return true; } @@ -484,7 +491,14 @@ public bool setBoxBin(byte[] data, int box) PKM[] pkms = BoxData; for (int i = 0; i < BoxSlotCount; i++) - pkms[box*BoxSlotCount + i].Data = decryptPKM(pkdata[i]); + { + if (Generation == 1) + pkms[box * BoxSlotCount + i] = new PokemonList1(decryptPKM(pkdata[i]))[0]; + else if (Generation == 2) + pkms[box * BoxSlotCount + i] = new PokemonList2(decryptPKM(pkdata[i]))[0]; + else + pkms[box * BoxSlotCount + i].Data = decryptPKM(pkdata[i]); + } BoxData = pkms; return true; }