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.");