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); }
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); }