32 lines
644 B
C#
32 lines
644 B
C#
|
namespace Projectiles
|
|||
|
{
|
|||
|
public static class NumberExtensions
|
|||
|
{
|
|||
|
public static bool IsBitSet(this byte flags, int bit)
|
|||
|
{
|
|||
|
return (flags & (1 << bit)) == (1 << bit);
|
|||
|
}
|
|||
|
|
|||
|
public static byte SetBit(ref this byte flags, int bit, bool value)
|
|||
|
{
|
|||
|
if (value == true)
|
|||
|
return flags |= (byte)(1 << bit);
|
|||
|
|
|||
|
return flags &= unchecked((byte)~(1 << bit));
|
|||
|
}
|
|||
|
|
|||
|
public static bool IsBitSet(this int flags, int bit)
|
|||
|
{
|
|||
|
return (flags & (1 << bit)) == (1 << bit);
|
|||
|
}
|
|||
|
|
|||
|
public static int SetBit(ref this int flags, int bit, bool value)
|
|||
|
{
|
|||
|
if (value == true)
|
|||
|
return flags |= 1 << bit;
|
|||
|
|
|||
|
return flags &= ~(1 << bit);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|