PKHeX/PKHeX.Core/Util/FlagUtil.cs
Kurt 62d08d7c30 Misc clean
split some methods with optional parameters=null
add more xmldoc
replace some magic numbers -> enum/const references
consolidate common array operations (span soon maybe?)
2019-09-10 00:21:51 -07:00

21 lines
No EOL
653 B
C#

namespace PKHeX.Core
{
/// <summary>
/// Utility logic for dealing with bitflags in a byte array.
/// </summary>
public static class FlagUtil
{
public static bool GetFlag(byte[] arr, int offset, int bitIndex)
{
bitIndex &= 7; // ensure bit access is 0-7
return (arr[offset] >> bitIndex & 1) != 0;
}
public static void SetFlag(byte[] arr, int offset, int bitIndex, bool value)
{
bitIndex &= 7; // ensure bit access is 0-7
arr[offset] &= (byte)~(1 << bitIndex);
arr[offset] |= (byte)((value ? 1 : 0) << bitIndex);
}
}
}