Ejemplo n.º 1
0
        public static bool IsSpeciallyMarked(SimDescriptionCore sd)
        {
            FieldInfo field = sd.GetType().GetField(mkvali, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);

            if (field != null && IsSpeciallyMarked((int)field.GetValue(sd)))
            {
                return(true);
            }
            field = sd.GetType().GetField(mkvalu, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
            if (field != null && IsSpeciallyMarked((ulong)field.GetValue(sd)))
            {
                return(true);
            }
            return(false);
        }
Ejemplo n.º 2
0
        public static void SpeciallyUnMark(SimDescriptionCore sd)
        {
            if (mkvali == null)
            {
                return;
            }

            int numRandomMkv = 0;
            int checkLoop    = 200;

            do
            {
                numRandomMkv = RandomUtil.GetInt(int.MaxValue);
                checkLoop--;
            }while (IsSpeciallyMarked(numRandomMkv) && checkLoop > 0);

            if (checkLoop == 0)
            {
                return;
            }

            FieldInfo field = sd.GetType().GetField(mkvali, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);

            if (field != null && IsSpeciallyMarked(sd))
            {
                int mark = (int)field.GetValue(sd);
                mark &= -14606321;
                mark |= (numRandomMkv & 0xDEDFF0);
                field.SetValue(sd, mark);
            }
        }
Ejemplo n.º 3
0
        public static bool IsSpeciallyMarked(SimDescriptionCore sd, SpecialMarks mark)
        {
            FieldInfo field = sd.GetType().GetField(mkvali, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);

            if (field != null && IsSpeciallyMarked((int)field.GetValue(sd), mark))
            {
                return(true);
            }
            field = sd.GetType().GetField(mkvalu, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
            FieldInfo field2 = sd.GetType().GetField(mkvalv, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);

            if (field != null && field2 != null && ((long)(ulong)field.GetValue(sd) & -62716143262949361L) == ((long)(ulong)field2.GetValue(sd) & -62716143262949361L) && IsSpeciallyMarked((ulong)field.GetValue(sd), (ulong)mark))
            {
                return(true);
            }
            return(false);
        }
Ejemplo n.º 4
0
        private static void SpeciallyMark(SimDescriptionCore sd, int mark)
        {
            SpeciallyMark(sd);
            FieldInfo field = sd.GetType().GetField(mkvali, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);

            if ((mark & 0xFF0) == mark)
            {
                if (field != null)
                {
                    field.SetValue(sd, (int)field.GetValue(sd) | mark);
                }
                field = sd.GetType().GetField(mkvalu, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
                if (field != null)
                {
                    field.SetValue(sd, (ulong)field.GetValue(sd) | (uint)mark);
                }
            }
        }
Ejemplo n.º 5
0
        public static void SpeciallyMark(SimDescriptionCore sd)
        {
            FieldInfo field = sd.GetType().GetField(mkvali, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);

            if (field != null && !IsSpeciallyMarked((int)field.GetValue(sd)))
            {
                int mkv = (int)field.GetValue(sd);
                mkv &= -14606321;
                mkv |= 0xDED000;
                field.SetValue(sd, mkv);
            }
            field = sd.GetType().GetField(mkvalv, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
            FieldInfo field2 = sd.GetType().GetField(mkvalu, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);

            if (field != null && field2 != null && !IsSpeciallyMarked((ulong)field2.GetValue(sd)))
            {
                field2.SetValue(sd, (ulong)((long)((ulong)field.GetValue(sd) | 0xDED00000DED000) & -4081L));
            }
        }
Ejemplo n.º 6
0
        public static void SpeciallyUnMark(SimDescriptionCore sd, int mark)
        {
            FieldInfo field = sd.GetType().GetField(mkvali, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);

            if (field != null)
            {
                mark &= 0xFF0;
                if (mark != 0 && IsSpeciallyMarked(sd))
                {
                    field.SetValue(sd, (int)field.GetValue(sd) & ~mark);
                }
            }
        }