Beispiel #1
0
 private bool IsEnumEqualD2DEnum(Property enumProperty, D2DEnum d2dEnum, bool shouldMatchName)
 {
     // Check if names are the same
     if (FormatEnumValueString(d2dEnum.Name).Contains(FormatEnumValueString(enumProperty.EffectName)) || !shouldMatchName)
     {
         // Check if number of enums values are the same
         if (d2dEnum.Enums.Count == enumProperty.EnumFields.FieldsList.Count)
         {
             for (int i = 0; i < enumProperty.EnumFields.FieldsList.Count; ++i)
             {
                 if (!FormatEnumValueString(d2dEnum.Enums[i]).Contains(FormatEnumValueString(enumProperty.EnumFields.FieldsList[i].Displayname)))
                 {
                     return(false);
                 }
             }
             return(true);
         }
     }
     return(false);
 }
Beispiel #2
0
        private List <D2DEnum> ParseD2DEffectsEnums(List <string> pathsToHeaders)
        {
            List <D2DEnum> d2dEnums = new List <D2DEnum>();

            foreach (var path in pathsToHeaders)
            {
                StreamReader reader = File.OpenText(path);
                string       line;
                while ((line = reader.ReadLine()) != null)
                {
                    if (line.Contains("typedef enum") && line.Substring(line.Length - 4) != "PROP")
                    {
                        D2DEnum  effectEnum = new D2DEnum();
                        string[] words      = line.Split(' ');
                        effectEnum.Name = words[words.Length - 1];

                        //Skip brace
                        reader.ReadLine();

                        while ((line = reader.ReadLine()) != "")
                        {
                            words = line.Split(' ');
                            // Indent size in headers is 8
                            if (words[8] != "" && words[8] != "//")
                            {
                                effectEnum.Enums.Add(words[8]);
                            }
                        }

                        // Remove last force_dword enum
                        effectEnum.Enums.RemoveAt(effectEnum.Enums.Count - 1);
                        d2dEnums.Add(effectEnum);
                    }
                }
            }

            return(d2dEnums);
        }