From c591d2a69dd6cdfffd700edd81f3076afa9b962e Mon Sep 17 00:00:00 2001 From: Kurt Date: Fri, 11 Jan 2019 17:44:51 -0800 Subject: [PATCH] Misc updates condense some logic --- PKHeX.Core/Legality/Verifiers/LevelVerifier.cs | 2 +- PKHeX.Core/Saves/SAV1.cs | 13 ------------- PKHeX.Core/Saves/SAV2.cs | 14 -------------- .../Substructures/Inventory/InventoryPouchGB.cs | 16 ++++++++++++++++ 4 files changed, 17 insertions(+), 28 deletions(-) diff --git a/PKHeX.Core/Legality/Verifiers/LevelVerifier.cs b/PKHeX.Core/Legality/Verifiers/LevelVerifier.cs index 11c0416e8..4ab80cef5 100644 --- a/PKHeX.Core/Legality/Verifiers/LevelVerifier.cs +++ b/PKHeX.Core/Legality/Verifiers/LevelVerifier.cs @@ -94,8 +94,8 @@ private void VerifyG1TradeEvo(LegalityAnalysis data) if (!mustevolve) return; // Pokemon have been traded but it is not evolved, trade evos are sequential dex numbers - var unevolved = LegalityAnalysis.SpeciesStrings[pkm.Species]; var evolved = LegalityAnalysis.SpeciesStrings[pkm.Species + 1]; + var unevolved = LegalityAnalysis.SpeciesStrings[pkm.Species]; data.AddLine(GetInvalid(string.Format(LEvoTradeReqOutsider, unevolved, evolved))); } } diff --git a/PKHeX.Core/Saves/SAV1.cs b/PKHeX.Core/Saves/SAV1.cs index e210a029c..8a1e2731c 100644 --- a/PKHeX.Core/Saves/SAV1.cs +++ b/PKHeX.Core/Saves/SAV1.cs @@ -380,26 +380,13 @@ public override InventoryPouch[] Inventory new InventoryPouchGB(InventoryType.PCItems, legalItems, 99, Offsets.PCItems, 50) }; foreach (var p in pouch) - { p.GetPouch(Data); - } return pouch; } set { foreach (var p in value) - { - int ofs = 0; - for (int i = 0; i < p.Count; i++) - { - while (p.Items[ofs].Count == 0) - ofs++; - p.Items[i] = p.Items[ofs++]; - } - while (ofs < p.Items.Length) - p.Items[ofs++] = new InventoryItem(); p.SetPouch(Data); - } } } diff --git a/PKHeX.Core/Saves/SAV2.cs b/PKHeX.Core/Saves/SAV2.cs index cd60bf5b7..fcd6b543e 100644 --- a/PKHeX.Core/Saves/SAV2.cs +++ b/PKHeX.Core/Saves/SAV2.cs @@ -98,7 +98,6 @@ public SAV2(byte[] data = null, GameVersion versionOverride = GameVersion.Any) pkDat.CopyTo(Data, dest); } - // Daycare currently undocumented for all Gen II games. if (Offsets.Daycare >= 0) { int offset = Offsets.Daycare; @@ -437,26 +436,13 @@ public override InventoryPouch[] Inventory new InventoryPouchGB(InventoryType.PCItems, LegalItems.Concat(LegalKeyItems).Concat(LegalBalls).Concat(LegalTMHMs).ToArray(), 99, Offsets.PouchPC, 50) }; foreach (var p in pouch) - { p.GetPouch(Data); - } return pouch; } set { foreach (var p in value) - { - int ofs = 0; - for (int i = 0; i < p.Count; i++) - { - while (p.Items[ofs].Count == 0) - ofs++; - p.Items[i] = p.Items[ofs++]; - } - while (ofs < p.Items.Length) - p.Items[ofs++] = new InventoryItem(); p.SetPouch(Data); - } } } diff --git a/PKHeX.Core/Saves/Substructures/Inventory/InventoryPouchGB.cs b/PKHeX.Core/Saves/Substructures/Inventory/InventoryPouchGB.cs index 65307f0d8..33d5865e5 100644 --- a/PKHeX.Core/Saves/Substructures/Inventory/InventoryPouchGB.cs +++ b/PKHeX.Core/Saves/Substructures/Inventory/InventoryPouchGB.cs @@ -77,6 +77,9 @@ public override void SetPouch(byte[] Data) { if (Items.Length != PouchDataSize) throw new ArgumentException("Item array length does not match original pouch size."); + + SlideItemsDown(); + switch (Type) { case InventoryType.TMHMs: @@ -107,5 +110,18 @@ public override void SetPouch(byte[] Data) break; } } + + private void SlideItemsDown() + { + int ofs = 0; + for (int i = 0; i < Count; i++) + { + while (Items[ofs].Count == 0) + ofs++; + Items[i] = Items[ofs++]; + } + while (ofs < Items.Length) + Items[ofs++] = new InventoryItem(); + } } } \ No newline at end of file