public override bool ResolveLinks() { var result = base.ResolveLinks(); SuperField = PCC.GetExportObject(_SuperIndex) as ME3Field; NextField = PCC.GetExportObject(_NextIndex) as ME3Field; return(result); }
public override bool ResolveLinks() { var result = base.ResolveLinks(); SuperField = PCC.GetExportObject(_SuperIndex) as ME3Field; NextField = PCC.GetExportObject(_NextIndex) as ME3Field; return result; }
public override bool ResolveLinks() { var result = base.ResolveLinks(); Members = new List <ME3Object>(); Structs = new List <ME3Struct>(); Enums = new List <ME3Enum>(); Variables = new List <ME3Property>(); Constants = new List <ME3Const>(); ME3Field obj = PCC.GetExportObject(FirstChildIndex) as ME3Field; while (obj != null) { Members.Add(obj); if (obj.GetType().IsSubclassOf(typeof(ME3Property))) { Variables.Add(obj as ME3Property); } else if (String.Compare(obj.ExportEntry.ClassName, "enum", StringComparison.OrdinalIgnoreCase) == 0) { Enums.Add(obj as ME3Enum); } else if (String.Compare(obj.ExportEntry.ClassName, "const", StringComparison.OrdinalIgnoreCase) == 0) { Constants.Add(obj as ME3Const); // TODO: does this happen? If so, handle in decompiler, locals etc. } else if (String.Compare(obj.ExportEntry.ClassName, "Struct", StringComparison.OrdinalIgnoreCase) == 0 || String.Compare(obj.ExportEntry.ClassName, "ScriptStruct", StringComparison.OrdinalIgnoreCase) == 0) { // TODO: is this correct, struct/scriptstruct? Structs.Add(obj as ME3Struct); } obj = obj.NextField; } return(result); }