From a1f2f8708ac2a1b7ac139f7e77e7decd5b6d75be Mon Sep 17 00:00:00 2001 From: Kurt Date: Wed, 27 Dec 2017 16:36:24 -0800 Subject: [PATCH] Refactoring pass identifier on cloning pkm remove unnecessary ref for passing Data (not modifying array reference) const some magic numbers --- PKHeX.Core/Legality/Tables3.cs | 3 +++ PKHeX.Core/Legality/Tables4.cs | 1 + PKHeX.Core/PKM/BK4.cs | 4 ++-- PKHeX.Core/PKM/CK3.cs | 4 ++-- PKHeX.Core/PKM/PK1.cs | 10 ++++------ PKHeX.Core/PKM/PK2.cs | 12 +++++------- PKHeX.Core/PKM/PK3.cs | 4 ++-- PKHeX.Core/PKM/PK4.cs | 4 ++-- PKHeX.Core/PKM/PK5.cs | 2 +- PKHeX.Core/PKM/PK6.cs | 2 +- PKHeX.Core/PKM/PK7.cs | 2 +- PKHeX.Core/PKM/XK3.cs | 4 ++-- PKHeX.Core/Saves/SAV1.cs | 6 +++--- PKHeX.Core/Saves/SAV2.cs | 6 +++--- PKHeX.Core/Saves/SAV3.cs | 6 +++--- PKHeX.Core/Saves/SAV3Colosseum.cs | 10 +++++----- PKHeX.Core/Saves/SAV3RSBox.cs | 12 ++++++------ PKHeX.Core/Saves/SAV3XD.cs | 12 ++++++------ PKHeX.Core/Saves/SAV4.cs | 6 +++--- PKHeX.Core/Saves/SAV4BR.cs | 8 ++++---- PKHeX.Core/Saves/SAV5.cs | 4 ++-- PKHeX.Core/Saves/SAV6.cs | 4 ++-- PKHeX.Core/Saves/SAV7.cs | 4 ++-- PKHeX.Core/Saves/Substructures/Inventory.cs | 17 +++++++---------- 24 files changed, 72 insertions(+), 75 deletions(-) diff --git a/PKHeX.Core/Legality/Tables3.cs b/PKHeX.Core/Legality/Tables3.cs index 436e18095..2f831811e 100644 --- a/PKHeX.Core/Legality/Tables3.cs +++ b/PKHeX.Core/Legality/Tables3.cs @@ -9,8 +9,11 @@ public static partial class Legal internal const int MaxSpeciesID_3 = 386; internal const int MaxMoveID_3 = 354; internal const int MaxItemID_3 = 374; + internal const int MaxItemID_3_COLO = 547; + internal const int MaxItemID_3_XD = 593; internal const int MaxAbilityID_3 = 77; internal const int MaxBallID_3 = 0xC; + internal const int MaxGameID_3 = 5; // LG /// /// Generation 3 -> Generation 4 Transfer Location (Pal Park) /// diff --git a/PKHeX.Core/Legality/Tables4.cs b/PKHeX.Core/Legality/Tables4.cs index 7405554f1..195c5c53d 100644 --- a/PKHeX.Core/Legality/Tables4.cs +++ b/PKHeX.Core/Legality/Tables4.cs @@ -12,6 +12,7 @@ public static partial class Legal internal const int MaxItemID_4_HGSS = 536; internal const int MaxAbilityID_4 = 123; internal const int MaxBallID_4 = 0x18; + internal const int MaxGameID_4 = 15; // CXD /// Generation 4 -> Generation 5 Transfer Location (Poké Transporter) public const int Transfer4 = 30001; /// Generation 4 -> Generation 5 Transfer Location (Crown Celebi - Event not activated in Gen 5) diff --git a/PKHeX.Core/PKM/BK4.cs b/PKHeX.Core/PKM/BK4.cs index 6cb6d73ef..241fdc391 100644 --- a/PKHeX.Core/PKM/BK4.cs +++ b/PKHeX.Core/PKM/BK4.cs @@ -33,7 +33,7 @@ public BK4(byte[] decryptedData = null, string ident = null) if (Data.Length != SIZE_PARTY) Array.Resize(ref Data, SIZE_PARTY); } - public override PKM Clone() => new BK4((byte[])Encrypt().Clone()); + public override PKM Clone() => new BK4((byte[])Encrypt().Clone(), Identifier); public string GetString(int Offset, int Count) => StringConverter.GetBEString4(Data, Offset, Count); public byte[] SetString(string value, int maxLength) => StringConverter.SetBEString4(value, maxLength); @@ -370,7 +370,7 @@ public override int Characteristic public override int MaxAbilityID => Legal.MaxAbilityID_4; public override int MaxItemID => Legal.MaxItemID_4_HGSS; public override int MaxBallID => Legal.MaxBallID_4; - public override int MaxGameID => 15; // Colo/XD + public override int MaxGameID => Legal.MaxGameID_4; public override int MaxIV => 31; public override int MaxEV => 252; public override int OTLength => 7; diff --git a/PKHeX.Core/PKM/CK3.cs b/PKHeX.Core/PKM/CK3.cs index ee7668831..5f84e18eb 100644 --- a/PKHeX.Core/PKM/CK3.cs +++ b/PKHeX.Core/PKM/CK3.cs @@ -26,7 +26,7 @@ public CK3(byte[] decryptedData = null, string ident = null) if (Data.Length != SIZE_PARTY) Array.Resize(ref Data, SIZE_PARTY); } - public override PKM Clone() => new CK3((byte[])Data.Clone()); + public override PKM Clone() => new CK3((byte[])Data.Clone(), Identifier); private string GetString(int Offset, int Count) => StringConverter.GetBEString3(Data, Offset, Count); private byte[] SetString(string value, int maxLength) => StringConverter.SetBEString3(value, maxLength); @@ -203,7 +203,7 @@ protected override byte[] Encrypt() public override int MaxAbilityID => Legal.MaxAbilityID_3; public override int MaxItemID => Legal.MaxItemID_3; public override int MaxBallID => Legal.MaxBallID_3; - public override int MaxGameID => 5; + public override int MaxGameID => Legal.MaxGameID_3; public override int MaxIV => 31; public override int MaxEV => 252; public override int OTLength => 7; diff --git a/PKHeX.Core/PKM/PK1.cs b/PKHeX.Core/PKM/PK1.cs index daed96eb8..e69c98cfe 100644 --- a/PKHeX.Core/PKM/PK1.cs +++ b/PKHeX.Core/PKM/PK1.cs @@ -47,13 +47,11 @@ public PK1(byte[] decryptedData = null, string ident = null, bool jp = false) nick = Enumerable.Repeat((byte) 0x50, strLen).ToArray(); } - public override PKM Clone() + public override PKM Clone() => new PK1((byte[])Data.Clone(), Identifier, Japanese) { - PK1 new_pk1 = new PK1((byte[])Data.Clone(), Identifier, Japanese); - Array.Copy(otname, 0, new_pk1.otname, 0, otname.Length); - Array.Copy(nick, 0, new_pk1.nick, 0, nick.Length); - return new_pk1; - } + otname = (byte[])otname.Clone(), + nick = (byte[])nick.Clone(), + }; public override string Nickname { get => StringConverter.GetString1(nick, 0, nick.Length, Japanese); diff --git a/PKHeX.Core/PKM/PK2.cs b/PKHeX.Core/PKM/PK2.cs index d35f8123e..d2dbdd177 100644 --- a/PKHeX.Core/PKM/PK2.cs +++ b/PKHeX.Core/PKM/PK2.cs @@ -65,14 +65,12 @@ public PK2(byte[] decryptedData = null, string ident = null, bool jp = false) nick = Enumerable.Repeat((byte) 0x50, strLen).ToArray(); } - public override PKM Clone() + public override PKM Clone() => new PK2((byte[])Data.Clone(), Identifier, Japanese) { - PK2 new_pk2 = new PK2((byte[])Data.Clone(), Identifier, Japanese); - Array.Copy(otname, 0, new_pk2.otname, 0, otname.Length); - Array.Copy(nick, 0, new_pk2.nick, 0, nick.Length); - new_pk2.IsEgg = IsEgg; - return new_pk2; - } + otname = (byte[])otname.Clone(), + nick = (byte[])nick.Clone(), + IsEgg = IsEgg, + }; public override string Nickname { get diff --git a/PKHeX.Core/PKM/PK3.cs b/PKHeX.Core/PKM/PK3.cs index 66736a91e..75bf6383e 100644 --- a/PKHeX.Core/PKM/PK3.cs +++ b/PKHeX.Core/PKM/PK3.cs @@ -22,7 +22,7 @@ public PK3(byte[] decryptedData = null, string ident = null) if (Data.Length != SIZE_PARTY) Array.Resize(ref Data, SIZE_PARTY); } - public override PKM Clone() => new PK3((byte[])Data.Clone()); + public override PKM Clone() => new PK3((byte[])Data.Clone(), Identifier); private string GetString(int Offset, int Count) => StringConverter.GetString3(Data, Offset, Count, Japanese); private byte[] SetString(string value, int maxLength) => StringConverter.SetString3(value, maxLength, Japanese); @@ -169,7 +169,7 @@ public PK3(byte[] decryptedData = null, string ident = null) public override int MaxAbilityID => Legal.MaxAbilityID_3; public override int MaxItemID => Legal.MaxItemID_3; public override int MaxBallID => Legal.MaxBallID_3; - public override int MaxGameID => 5; + public override int MaxGameID => Legal.MaxGameID_3; public override int MaxIV => 31; public override int MaxEV => 255; public override int OTLength => 7; diff --git a/PKHeX.Core/PKM/PK4.cs b/PKHeX.Core/PKM/PK4.cs index 21b29f5e6..8e432d96f 100644 --- a/PKHeX.Core/PKM/PK4.cs +++ b/PKHeX.Core/PKM/PK4.cs @@ -23,7 +23,7 @@ public PK4(byte[] decryptedData = null, string ident = null) if (Data.Length != SIZE_PARTY) Array.Resize(ref Data, SIZE_PARTY); } - public override PKM Clone() => new PK4((byte[])Data.Clone()); + public override PKM Clone() => new PK4((byte[])Data.Clone(), Identifier); private string GetString(int Offset, int Count) => StringConverter.GetString4(Data, Offset, Count); private byte[] SetString(string value, int maxLength) => StringConverter.SetString4(value, maxLength); @@ -357,7 +357,7 @@ public override int Characteristic public override int MaxAbilityID => Legal.MaxAbilityID_4; public override int MaxItemID => Legal.MaxItemID_4_HGSS; public override int MaxBallID => Legal.MaxBallID_4; - public override int MaxGameID => 15; // Colo/XD + public override int MaxGameID => Legal.MaxGameID_4; public override int MaxIV => 31; public override int MaxEV => 255; public override int OTLength => 7; diff --git a/PKHeX.Core/PKM/PK5.cs b/PKHeX.Core/PKM/PK5.cs index b6229a84a..d21f87b0e 100644 --- a/PKHeX.Core/PKM/PK5.cs +++ b/PKHeX.Core/PKM/PK5.cs @@ -23,7 +23,7 @@ public PK5(byte[] decryptedData = null, string ident = null) if (Data.Length != SIZE_PARTY) Array.Resize(ref Data, SIZE_PARTY); } - public override PKM Clone() => new PK5((byte[])Data.Clone()); + public override PKM Clone() => new PK5((byte[])Data.Clone(), Identifier); private string GetString(int Offset, int Count) => StringConverter.GetString5(Data, Offset, Count); private byte[] SetString(string value, int maxLength) => StringConverter.SetString5(value, maxLength); diff --git a/PKHeX.Core/PKM/PK6.cs b/PKHeX.Core/PKM/PK6.cs index a5b9abe79..87d05a716 100644 --- a/PKHeX.Core/PKM/PK6.cs +++ b/PKHeX.Core/PKM/PK6.cs @@ -24,7 +24,7 @@ public PK6(byte[] decryptedData = null, string ident = null) if (Data.Length != SIZE_PARTY) Array.Resize(ref Data, SIZE_PARTY); } - public override PKM Clone() => new PK6((byte[])Data.Clone()); + public override PKM Clone() => new PK6((byte[])Data.Clone(), Identifier); private string GetString(int Offset, int Count) => StringConverter.GetString6(Data, Offset, Count); private byte[] SetString(string value, int maxLength) => StringConverter.SetString6(value, maxLength); diff --git a/PKHeX.Core/PKM/PK7.cs b/PKHeX.Core/PKM/PK7.cs index 9eed329a3..f696fd3fc 100644 --- a/PKHeX.Core/PKM/PK7.cs +++ b/PKHeX.Core/PKM/PK7.cs @@ -25,7 +25,7 @@ public PK7(byte[] decryptedData = null, string ident = null) if (Data.Length != SIZE_PARTY) Array.Resize(ref Data, SIZE_PARTY); } - public override PKM Clone() => new PK7((byte[])Data.Clone()); + public override PKM Clone() => new PK7((byte[])Data.Clone(), Identifier); private string GetString(int Offset, int Count) => StringConverter.GetString7(Data, Offset, Count); private byte[] SetString(string value, int maxLength, bool chinese = false) => StringConverter.SetString7(value, maxLength, Language, chinese: chinese); diff --git a/PKHeX.Core/PKM/XK3.cs b/PKHeX.Core/PKM/XK3.cs index abfd00c05..7658c1a48 100644 --- a/PKHeX.Core/PKM/XK3.cs +++ b/PKHeX.Core/PKM/XK3.cs @@ -24,7 +24,7 @@ public XK3(byte[] decryptedData = null, string ident = null) if (Data.Length != SIZE_PARTY) Array.Resize(ref Data, SIZE_PARTY); } - public override PKM Clone() => new XK3((byte[])Data.Clone()) {Purification = Purification}; + public override PKM Clone() => new XK3((byte[])Data.Clone(), Identifier) {Purification = Purification}; private string GetString(int Offset, int Count) => StringConverter.GetBEString3(Data, Offset, Count); private byte[] SetString(string value, int maxLength) => StringConverter.SetBEString3(value, maxLength); @@ -208,7 +208,7 @@ protected override byte[] Encrypt() public override int MaxAbilityID => Legal.MaxAbilityID_3; public override int MaxItemID => Legal.MaxItemID_3; public override int MaxBallID => Legal.MaxBallID_3; - public override int MaxGameID => 5; + public override int MaxGameID => Legal.MaxGameID_3; public override int MaxIV => 31; public override int MaxEV => 252; public override int OTLength => 7; diff --git a/PKHeX.Core/Saves/SAV1.cs b/PKHeX.Core/Saves/SAV1.cs index 4440ba980..c7fd36db1 100644 --- a/PKHeX.Core/Saves/SAV1.cs +++ b/PKHeX.Core/Saves/SAV1.cs @@ -358,7 +358,7 @@ public override InventoryPouch[] Inventory }; foreach (var p in pouch) { - p.GetPouchG1(ref Data); + p.GetPouchG1(Data); } return pouch; } @@ -374,8 +374,8 @@ public override InventoryPouch[] Inventory p.Items[i] = p.Items[ofs++]; } while (ofs < p.Items.Length) - p.Items[ofs++] = new InventoryItem { Count = 0, Index = 0 }; - p.SetPouchG1(ref Data); + p.Items[ofs++] = new InventoryItem(); + p.SetPouchG1(Data); } } } diff --git a/PKHeX.Core/Saves/SAV2.cs b/PKHeX.Core/Saves/SAV2.cs index 3029c00b4..1c7db35c3 100644 --- a/PKHeX.Core/Saves/SAV2.cs +++ b/PKHeX.Core/Saves/SAV2.cs @@ -206,7 +206,7 @@ protected override byte[] Write(bool DSV) public override int SIZE_STORED => Japanese ? PKX.SIZE_2JLIST : PKX.SIZE_2ULIST; protected override int SIZE_PARTY => Japanese ? PKX.SIZE_2JLIST : PKX.SIZE_2ULIST; - public override PKM BlankPKM => new PK2(null, null, Japanese); + public override PKM BlankPKM => new PK2(jp: Japanese); public override Type PKMType => typeof(PK2); private int SIZE_BOX => BoxSlotCount*SIZE_STORED; @@ -384,7 +384,7 @@ public override InventoryPouch[] Inventory }; foreach (var p in pouch) { - p.GetPouchG1(ref Data); + p.GetPouchG1(Data); } return pouch; } @@ -401,7 +401,7 @@ public override InventoryPouch[] Inventory } while (ofs < p.Items.Length) p.Items[ofs++] = new InventoryItem(); - p.SetPouchG1(ref Data); + p.SetPouchG1(Data); } } } diff --git a/PKHeX.Core/Saves/SAV3.cs b/PKHeX.Core/Saves/SAV3.cs index e655dbbcb..aad2155f0 100644 --- a/PKHeX.Core/Saves/SAV3.cs +++ b/PKHeX.Core/Saves/SAV3.cs @@ -200,7 +200,7 @@ protected override byte[] Write(bool DSV) public override int MaxAbilityID => Legal.MaxAbilityID_3; public override int MaxItemID => Legal.MaxItemID_3; public override int MaxBallID => Legal.MaxBallID_3; - public override int MaxGameID => 5; + public override int MaxGameID => Legal.MaxGameID_3; public override int BoxCount => 14; public override int MaxEV => 255; @@ -417,14 +417,14 @@ public override InventoryPouch[] Inventory { if (p.Type != InventoryType.PCItems) p.SecurityKey = SecurityKey; - p.GetPouch(ref Data); + p.GetPouch(Data); } return pouch; } set { foreach (var p in value) - p.SetPouch(ref Data); + p.SetPouch(Data); } } diff --git a/PKHeX.Core/Saves/SAV3Colosseum.cs b/PKHeX.Core/Saves/SAV3Colosseum.cs index 720b4e1a6..3ae9efdaa 100644 --- a/PKHeX.Core/Saves/SAV3Colosseum.cs +++ b/PKHeX.Core/Saves/SAV3Colosseum.cs @@ -144,12 +144,12 @@ public override SaveFile Clone() public override PKM BlankPKM => new CK3(); public override Type PKMType => typeof(CK3); - public override int MaxMoveID => 354; + public override int MaxMoveID => Legal.MaxMoveID_3; public override int MaxSpeciesID => Legal.MaxSpeciesID_3; - public override int MaxAbilityID => 77; - public override int MaxItemID => 547; - public override int MaxBallID => 0xC; - public override int MaxGameID => 5; + public override int MaxAbilityID => Legal.MaxAbilityID_3; + public override int MaxBallID => Legal.MaxBallID_3; + public override int MaxItemID => Legal.MaxItemID_3_COLO; + public override int MaxGameID => Legal.MaxGameID_3; public override int MaxEV => 255; public override int Generation => 3; diff --git a/PKHeX.Core/Saves/SAV3RSBox.cs b/PKHeX.Core/Saves/SAV3RSBox.cs index c734c9f38..89554335a 100644 --- a/PKHeX.Core/Saves/SAV3RSBox.cs +++ b/PKHeX.Core/Saves/SAV3RSBox.cs @@ -98,13 +98,13 @@ public override SaveFile Clone() public override PKM BlankPKM => new PK3(); public override Type PKMType => typeof(PK3); - public override int MaxMoveID => 354; + public override int MaxMoveID => Legal.MaxMoveID_3; public override int MaxSpeciesID => Legal.MaxSpeciesID_3; - public override int MaxAbilityID => 77; - public override int MaxItemID => 374; - public override int MaxBallID => 0xC; - public override int MaxGameID => 5; - + public override int MaxAbilityID => Legal.MaxAbilityID_3; + public override int MaxItemID => Legal.MaxItemID_3; + public override int MaxBallID => Legal.MaxBallID_3; + public override int MaxGameID => Legal.MaxGameID_3; + public override int MaxEV => 255; public override int Generation => 3; protected override int GiftCountMax => 1; diff --git a/PKHeX.Core/Saves/SAV3XD.cs b/PKHeX.Core/Saves/SAV3XD.cs index 3f0dc63e7..3c9aa50b7 100644 --- a/PKHeX.Core/Saves/SAV3XD.cs +++ b/PKHeX.Core/Saves/SAV3XD.cs @@ -157,13 +157,13 @@ public override SaveFile Clone() public override PKM BlankPKM => new XK3(); public override Type PKMType => typeof(XK3); - public override int MaxMoveID => 354; + public override int MaxMoveID => Legal.MaxMoveID_3; public override int MaxSpeciesID => Legal.MaxSpeciesID_3; - public override int MaxAbilityID => 77; - public override int MaxItemID => 593; - public override int MaxBallID => 0xC; - public override int MaxGameID => 5; - + public override int MaxAbilityID => Legal.MaxAbilityID_3; + public override int MaxBallID => Legal.MaxBallID_3; + public override int MaxItemID => Legal.MaxItemID_3_XD; + public override int MaxGameID => Legal.MaxGameID_3; + public override int MaxEV => 255; public override int Generation => 3; protected override int GiftCountMax => 1; diff --git a/PKHeX.Core/Saves/SAV4.cs b/PKHeX.Core/Saves/SAV4.cs index c79c57d3f..ca3afaf2e 100644 --- a/PKHeX.Core/Saves/SAV4.cs +++ b/PKHeX.Core/Saves/SAV4.cs @@ -65,7 +65,7 @@ public SAV4(byte[] data = null, GameVersion versionOverride = GameVersion.Any) public override int MaxItemID => Version == GameVersion.HGSS ? Legal.MaxItemID_4_HGSS : Version == GameVersion.Pt ? Legal.MaxItemID_4_Pt : Legal.MaxItemID_4_DP; public override int MaxAbilityID => Legal.MaxAbilityID_4; public override int MaxBallID => Legal.MaxBallID_4; - public override int MaxGameID => 15; // Colo/XD + public override int MaxGameID => Legal.MaxGameID_4; // Colo/XD // Checksums private static int[][] GetChecksumOffsets(GameVersion g) @@ -308,13 +308,13 @@ public override InventoryPouch[] Inventory new InventoryPouch(InventoryType.MailItems, LegalMailItems, 999, OFS_MailItems), }; foreach (var p in pouch) - p.GetPouch(ref Data); + p.GetPouch(Data); return pouch; } set { foreach (var p in value) - p.SetPouch(ref Data); + p.SetPouch(Data); } } diff --git a/PKHeX.Core/Saves/SAV4BR.cs b/PKHeX.Core/Saves/SAV4BR.cs index 780dcdf65..650df86ad 100644 --- a/PKHeX.Core/Saves/SAV4BR.cs +++ b/PKHeX.Core/Saves/SAV4BR.cs @@ -82,10 +82,10 @@ protected override byte[] Write(bool DSV) public override int MaxMoveID => 467; public override int MaxSpeciesID => Legal.MaxSpeciesID_4; - public override int MaxAbilityID => 123; - public override int MaxItemID => 536; - public override int MaxBallID => 0x18; - public override int MaxGameID => 15; + public override int MaxAbilityID => Legal.MaxAbilityID_4; + public override int MaxItemID => Legal.MaxItemID_4_HGSS; + public override int MaxBallID => Legal.MaxBallID_4; + public override int MaxGameID => Legal.MaxGameID_4; public override int MaxEV => 255; public override int Generation => 4; diff --git a/PKHeX.Core/Saves/SAV5.cs b/PKHeX.Core/Saves/SAV5.cs index 1e883d3e5..4196157b0 100644 --- a/PKHeX.Core/Saves/SAV5.cs +++ b/PKHeX.Core/Saves/SAV5.cs @@ -419,13 +419,13 @@ public override InventoryPouch[] Inventory new InventoryPouch(InventoryType.Berries, LegalBerries, 999, OFS_PouchBerry), }; foreach (var p in pouch) - p.GetPouch(ref Data); + p.GetPouch(Data); return pouch; } set { foreach (var p in value) - p.SetPouch(ref Data); + p.SetPouch(Data); } } diff --git a/PKHeX.Core/Saves/SAV6.cs b/PKHeX.Core/Saves/SAV6.cs index 32d0e8abb..4f6d353fa 100644 --- a/PKHeX.Core/Saves/SAV6.cs +++ b/PKHeX.Core/Saves/SAV6.cs @@ -726,13 +726,13 @@ public override InventoryPouch[] Inventory new InventoryPouch(InventoryType.Berries, Legal.Pouch_Berry_XY, 999, OFS_PouchBerry), }; foreach (var p in pouch) - p.GetPouch(ref Data); + p.GetPouch(Data); return pouch; } set { foreach (var p in value) - p.SetPouch(ref Data); + p.SetPouch(Data); } } diff --git a/PKHeX.Core/Saves/SAV7.cs b/PKHeX.Core/Saves/SAV7.cs index a5679cd94..6cd7141c7 100644 --- a/PKHeX.Core/Saves/SAV7.cs +++ b/PKHeX.Core/Saves/SAV7.cs @@ -932,13 +932,13 @@ public override InventoryPouch[] Inventory new InventoryPouch(InventoryType.BattleItems, Legal.Pouch_Roto_USUM, 999, OFS_BattleItems), }; foreach (var p in pouch) - p.GetPouch7(ref Data); + p.GetPouch7(Data); return pouch; } set { foreach (var p in value) - p.SetPouch7(ref Data); + p.SetPouch7(Data); } } diff --git a/PKHeX.Core/Saves/Substructures/Inventory.cs b/PKHeX.Core/Saves/Substructures/Inventory.cs index 6576d1671..bbb79c4f9 100644 --- a/PKHeX.Core/Saves/Substructures/Inventory.cs +++ b/PKHeX.Core/Saves/Substructures/Inventory.cs @@ -22,10 +22,7 @@ public class InventoryItem public bool New; public bool FreeSpace; public int Index, Count; - public InventoryItem Clone() - { - return new InventoryItem {Count = Count, Index = Index, New = New}; - } + public InventoryItem Clone() => (InventoryItem) MemberwiseClone(); // Check Pouch Compatibility public bool Valid(ushort[] LegalItems, bool HaX, int MaxItemID) @@ -60,7 +57,7 @@ public InventoryPouch(InventoryType type, ushort[] legal, int maxcount, int offs PouchDataSize = size > -1 ? size : legal.Length; } - public void GetPouch(ref byte[] Data) + public void GetPouch(byte[] Data) { InventoryItem[] items = new InventoryItem[PouchDataSize]; for (int i = 0; i < items.Length; i++) @@ -73,7 +70,7 @@ public void GetPouch(ref byte[] Data) } Items = items; } - public void SetPouch(ref byte[] Data) + public void SetPouch(byte[] Data) { if (Items.Length != PouchDataSize) throw new ArgumentException("Item array length does not match original pouch size."); @@ -84,7 +81,7 @@ public void SetPouch(ref byte[] Data) BitConverter.GetBytes((ushort)((ushort)Items[i].Count ^ (ushort)SecurityKey)).CopyTo(Data, Offset + i*4 + 2); } } - public void GetPouch7(ref byte[] Data) + public void GetPouch7(byte[] Data) { InventoryItem[] items = new InventoryItem[PouchDataSize]; for (int i = 0; i < items.Length; i++) @@ -104,7 +101,7 @@ public void GetPouch7(ref byte[] Data) Items = items; OriginalItems = Items.Select(i => i.Clone()).ToArray(); } - public void SetPouch7(ref byte[] Data, bool setNEW = false) + public void SetPouch7(byte[] Data, bool setNEW = false) { if (Items.Length != PouchDataSize) throw new ArgumentException("Item array length does not match original pouch size."); @@ -150,7 +147,7 @@ public void SetPouchBigEndian(ref byte[] Data) } } - public void GetPouchG1(ref byte[] Data) + public void GetPouchG1(byte[] Data) { InventoryItem[] items = new InventoryItem[PouchDataSize]; if (Type == InventoryType.TMHMs) @@ -209,7 +206,7 @@ public void GetPouchG1(ref byte[] Data) Items = items; } - public void SetPouchG1(ref byte[] Data) + public void SetPouchG1(byte[] Data) { if (Items.Length != PouchDataSize) throw new ArgumentException("Item array length does not match original pouch size.");