void ParameterSet(bool value, MegaloScriptObjectFilterValidParameters param) { EnumFlags.Modify(value, ref mValidParameters, param); int index = Bits.TrailingZerosCount((uint)param); NotifyPropertyChanged(kParameterChanged[index]); NotifyPropertyChanged(kHasParametersChanged); }
void SetImpl <T>(T?newValue, ref T value, WeaponTuningModifiers modifer) where T : struct { var old_flags = Modifiers; int index = Bits.TrailingZerosCount((uint)modifer); EnumFlags.Modify(newValue.HasValue, ref Modifiers, modifer); value = newValue.GetValueOrDefault(); if (old_flags != Modifiers) { NotifyPropertyChanged(kIsUnchangedChanged); } NotifyPropertyChanged(kValueChanged[index]); }
public void Enum_FlagsModifyTest() { ////////////////////////////////////////////////////////////////////////// // Test by-ref const FlagsEnum kExpectedResult1 = FlagsEnum.Flag0 | FlagsEnum.Flag2; FlagsEnum e1 = FlagsEnum.Flag0; EnumFlags.Modify(true, ref e1, FlagsEnum.Flag2); Assert.AreEqual(kExpectedResult1, e1); ////////////////////////////////////////////////////////////////////////// // Test by-value const FlagsEnum kExpectedResult2 = FlagsEnum.Flag2; FlagsEnum e2 = EnumFlags.Modify(false, e1, FlagsEnum.Flag0); Assert.AreEqual(kExpectedResult2, e2); }