diff --git a/PKHeX.Core/Saves/Substructures/Gen6/MysteryBlock6.cs b/PKHeX.Core/Saves/Substructures/Gen6/MysteryBlock6.cs index 0b87a9296..315f4fd90 100644 --- a/PKHeX.Core/Saves/Substructures/Gen6/MysteryBlock6.cs +++ b/PKHeX.Core/Saves/Substructures/Gen6/MysteryBlock6.cs @@ -14,12 +14,12 @@ public class MysteryBlock6 : SaveBlock public bool[] MysteryGiftReceivedFlags { - get => Util.GitBitFlagArray(Data, Offset + FlagStart, MaxReceivedFlag); + get => ArrayUtil.GitBitFlagArray(Data, Offset + FlagStart, MaxReceivedFlag); set { if (value?.Length != MaxReceivedFlag) return; - Util.SetBitFlagArray(Data, Offset + FlagStart, value); + ArrayUtil.SetBitFlagArray(Data, Offset + FlagStart, value); SAV.Edited = true; } } diff --git a/PKHeX.Core/Saves/Substructures/Gen7/MysteryBlock7.cs b/PKHeX.Core/Saves/Substructures/Gen7/MysteryBlock7.cs index ee3cb2916..95b149d02 100644 --- a/PKHeX.Core/Saves/Substructures/Gen7/MysteryBlock7.cs +++ b/PKHeX.Core/Saves/Substructures/Gen7/MysteryBlock7.cs @@ -15,12 +15,12 @@ public sealed class MysteryBlock7 : SaveBlock // Mystery Gift public bool[] MysteryGiftReceivedFlags { - get => Util.GitBitFlagArray(Data, Offset + FlagStart, MaxReceivedFlag); + get => ArrayUtil.GitBitFlagArray(Data, Offset + FlagStart, MaxReceivedFlag); set { if (value?.Length != MaxReceivedFlag) return; - Util.SetBitFlagArray(Data, Offset + FlagStart, value); + ArrayUtil.SetBitFlagArray(Data, Offset + FlagStart, value); SAV.Edited = true; } } diff --git a/PKHeX.Core/Util/ArrayUtil.cs b/PKHeX.Core/Util/ArrayUtil.cs index 06b7d2a95..14b64bfc4 100644 --- a/PKHeX.Core/Util/ArrayUtil.cs +++ b/PKHeX.Core/Util/ArrayUtil.cs @@ -51,5 +51,29 @@ public static IEnumerable EnumerateSplit(byte[] bin, int size, int start for (int i = start; i < end; i += size) yield return bin.Slice(i, size); } + + public static bool[] GitBitFlagArray(byte[] data, int offset, int count) + { + bool[] result = new bool[count]; + for (int i = 0; i < result.Length; i++) + result[i] = (data[offset + (i >> 3)] >> (i & 7) & 0x1) == 1; + return result; + } + + public static void SetBitFlagArray(byte[] data, int offset, bool[] value) + { + for (int i = 0; i < value.Length; i++) + { + if (value[i]) + data[offset + (i >> 3)] |= (byte)(1 << (i & 7)); + } + } + + public static byte[] SetBitFlagArray(bool[] value) + { + byte[] data = new byte[value.Length / 8]; + SetBitFlagArray(data, 0, value); + return data; + } } } \ No newline at end of file diff --git a/PKHeX.Core/Util/Util.cs b/PKHeX.Core/Util/Util.cs index 318d6d713..2d32632e2 100644 --- a/PKHeX.Core/Util/Util.cs +++ b/PKHeX.Core/Util/Util.cs @@ -143,30 +143,5 @@ private static string TrimFromFirst(string input, char c) int index = input.IndexOf(c); return index < 0 ? input : input.Substring(0, index); } - - - public static bool[] GitBitFlagArray(byte[] data, int offset, int count) - { - bool[] result = new bool[count]; - for (int i = 0; i < result.Length; i++) - result[i] = (data[offset + (i >> 3)] >> (i & 7) & 0x1) == 1; - return result; - } - - public static void SetBitFlagArray(byte[] data, int offset, bool[] value) - { - for (int i = 0; i < value.Length; i++) - { - if (value[i]) - data[offset + (i >> 3)] |= (byte)(1 << (i & 7)); - } - } - - public static byte[] SetBitFlagArray(bool[] value) - { - byte[] data = new byte[value.Length / 8]; - SetBitFlagArray(data, 0, value); - return data; - } } }