public void ExposeTable(string name, LookupTable lut)
{
TableMetaData baseTable = GetBaseTable(name);
if (baseTable != null)
{
TableMetaData childTable = baseTable.CreateChild(lut, this);
//TODO: HANDLE STATIC AXES!!
if (lut.dataAddress < 0x400000)
{
//TODO: HANDLE UPDATES TO EXISTING TABLES!!??
if (ExposedRomTables.ContainsKey(childTable.name))
ExposedRomTables.Remove(childTable.name);
ExposedRomTables.Add(childTable.name, childTable);
}
else
{
if (ExposedRamTables.ContainsKey(childTable.name))
ExposedRamTables.Remove(childTable.name);
ExposedRamTables.Add(childTable.name, childTable);
}
}
//if (bt == null) return;
//bt.SetAttributeValue("address", lut.dataAddress.ToString("X"));//(System.Int32.Parse(temptable.Value.Attribute("offset").Value.ToString(), System.Globalization.NumberStyles.AllowHexSpecifier) + offset).ToString("X"));
//IEnumerable<XAttribute> tempattr = bt.Attributes();
//List<String> remattr = new List<String>();
//foreach (XAttribute attr in tempattr)
//{
// if (attr.Name != "address" && attr.Name != "name")
// {
// remattr.Add(attr.Name.ToString());
// }
//}
//foreach (String rem in remattr)
//{
// bt.Attribute(rem).Remove();
//}
//List<String> eleremlist = new List<String>();
//foreach (XElement ele in bt.Elements())
//{
// IEnumerable<XAttribute> childtempattr = ele.Attributes();
// List<String> childremattr = new List<String>();
// if (ele.Name.ToString() != "table")
// {
// eleremlist.Add(ele.Name.ToString());
// continue;
// }
// if (ele.Attribute("type").Value.ContainsCI("static"))
// {
// eleremlist.Add(ele.Name.ToString());
// }
// else if (ele.Attribute("type").Value.ContainsCI("x axis"))
// {
// ele.Attribute("name").Value = "X";
// }
// else if (ele.Attribute("type").Value.ContainsCI("y axis"))
// {
// ele.Attribute("name").Value = "Y";
// }
// foreach (XAttribute attr in childtempattr)
// {
// if (attr.Name != "address" && attr.Name != "name")
// {
// childremattr.Add(attr.Name.ToString());
// }
// }
// foreach (String rem in childremattr)
// {
// ele.Attribute(rem).Remove();
// }
//}
//foreach (String rem in eleremlist)
//{
// bt.Element(rem).Remove();
//}
}