Пример #1
0
        void ParameterSet(bool value, MegaloScriptObjectFilterValidParameters param)
        {
            EnumFlags.Modify(value, ref mValidParameters, param);

            int index = Bits.TrailingZerosCount((uint)param);

            NotifyPropertyChanged(kParameterChanged[index]);
            NotifyPropertyChanged(kHasParametersChanged);
        }
Пример #2
0
        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]);
        }
Пример #3
0
        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);
        }