public static void ProcessReferences(BdatStringCollection tables, BdatInfo info) { foreach (BdatStringTable table in tables.Tables.Values) { int id = table.BaseId; foreach (var item in table.Items) { foreach (BdatMember member in table.Members.Where(x => x.Type == BdatMemberType.Scalar)) { var val = ReadValue(table.Name, id, member.Name, tables, info); if (val.childTable != null) { BdatStringItem childItem = tables[val.childTable][int.Parse(val.childId)]; childItem.ReferencedBy.Add(item); } } id++; } } }