예제 #1
0
    static DamageTypeNames()
    {
        for (DamageTypeIndex index = DamageTypeIndex.damage_generic; index < DamageTypeIndex.damage_last; index += 1)
        {
            string str2;
            Strings[(int)index] = str2 = index.ToString().Substring("damage_".Length);
            Values.Add(str2, index);
        }
        uint num = 0x3f;

        Mask     = (DamageTypeFlags)num;
        Flags    = new string[num];
        Flags[0] = "none";
        for (uint i = 1; i < num; i++)
        {
            uint num3 = i;
            for (int j = 0; j < 6; j++)
            {
                if ((i & (((int)1) << j)) == (((int)1) << j))
                {
                    string str = Strings[j];
                    num3 &= (uint)~(((int)1) << j);
                    if (num3 != 0)
                    {
                        while (++j < 6L)
                        {
                            if ((i & (((int)1) << j)) == (((int)1) << j))
                            {
                                str   = str + "|" + Strings[j];
                                num3 &= (uint)~(((int)1) << j);
                                if (num3 == 0)
                                {
                                    break;
                                }
                            }
                        }
                    }
                    break;
                }
            }
        }
    }
예제 #2
0
    static DamageTypeNames()
    {
        DamageTypeNames.SplitCharacters = new char[] { '|' };
        DamageTypeNames.Strings         = new string[6];
        DamageTypeNames.Values          = new Dictionary <string, DamageTypeIndex>(6);
        for (DamageTypeIndex i = DamageTypeIndex.damage_generic; i < DamageTypeIndex.damage_last; i = (DamageTypeIndex)((int)i + (int)DamageTypeIndex.damage_bullet))
        {
            Dictionary <string, DamageTypeIndex> values = DamageTypeNames.Values;
            string[] strings = DamageTypeNames.Strings;
            string   str     = i.ToString().Substring("damage_".Length);
            string   str1    = str;
            strings[(int)i] = str;
            values.Add(str1, i);
        }
        uint num = 63;

        DamageTypeNames.Mask     = (DamageTypeFlags)num;
        DamageTypeNames.Flags    = new string[num];
        DamageTypeNames.Flags[0] = "none";
        for (uint j = 1; j < num; j++)
        {
            uint num1 = j;
            int  num2 = 0;
            while (num2 < 6)
            {
                if ((j & 1 << (num2 & 31)) != 1 << (num2 & 31))
                {
                    num2++;
                }
                else
                {
                    string strings1 = DamageTypeNames.Strings[num2];
                    UInt32 num3     = num1 & ~(1 << (num2 & 31 & 31));
                    num1 = num3;
                    if (num3 != 0)
                    {
                        while (true)
                        {
                            int num4 = num2 + 1;
                            num2 = num4;
                            if ((long)num4 >= (long)6)
                            {
                                break;
                            }
                            if ((j & 1 << (num2 & 31)) == 1 << (num2 & 31))
                            {
                                strings1 = string.Concat(strings1, "|", DamageTypeNames.Strings[num2]);
                                num1     = num1 & ~(1 << (num2 & 31 & 31));
                                if (num1 == 0)
                                {
                                    break;
                                }
                            }
                        }
                        break;
                    }
                    else
                    {
                        break;
                    }
                }
            }
        }
    }