public static bool IsSet(this byte flags, FlagIndex flagIndex) { var i = (int)flagIndex; var flagVal = 1 << i; return((flags & flagVal) != 0); }
/// <summary> /// Adds a flag name to the story model's flag index. /// The flag index contains flag names, but no values. /// </summary> public void AddFlagToIndex(string flag) { var name = ExtractFlagNameFromExpression(flag); if (!FlagIndex.Contains(name)) { FlagIndex.Add(name); } }
public static byte Set(this byte flags, FlagIndex flagIndex, bool on) { var i = (int)flagIndex; var flagVal = 1 << i; if (@on) { return((byte)(flags | flagVal)); } return((byte)(flags & (0xff - flagVal))); }
public static byte Toggle(this byte flags, FlagIndex flagIndex) { return(flags.Set(FlagIndex.Carry, !flags.IsSet(flagIndex))); }