private void xmlaircraft(string filename = "aircraft.xml")
{
try
{
using (XmlTextReader xmlreader = new XmlTextReader(filename))
{
while (xmlreader.Read())
{
xmlreader.MoveToElement();
try
{
switch (xmlreader.Name)
{
case "Vehicle":
{
aircraftinfo aircraft = new aircraftinfo();
while (xmlreader.Read())
{
bool dobreak = false;
xmlreader.MoveToElement();
switch (xmlreader.Name)
{
case "name":
aircraft.name = xmlreader.ReadString();
break;
case "turn_rad_m":
aircraft.turnrad = float.Parse(xmlreader.ReadString(), new System.Globalization.CultureInfo("en-US"));
break;
case "min_alt_m":
aircraft.minalt = float.Parse(xmlreader.ReadString(), new System.Globalization.CultureInfo("en-US"));
break;
case "max_alt_m":
aircraft.maxalt = float.Parse(xmlreader.ReadString(), new System.Globalization.CultureInfo("en-US"));
break;
case "min_vel_ms":
aircraft.minvel = float.Parse(xmlreader.ReadString(), new System.Globalization.CultureInfo("en-US"));
break;
case "max_vel_ms":
aircraft.maxvel = float.Parse(xmlreader.ReadString(), new System.Globalization.CultureInfo("en-US"));
break;
case "Vehicle":
aircrafts[aircraft.name] = aircraft;
dobreak = true;
break;
}
if (dobreak)
break;
}
string temp = xmlreader.ReadString();
}
break;
case "xml":
break;
default:
break;
}
}
catch (Exception ee) { Console.WriteLine(ee.Message); } // silent fail on bad entry
}
}
}
catch (Exception ex) { Console.WriteLine("Bad Aircraft File: " + ex.ToString()); } // bad config file
// populate list
foreach (var aircraft in aircrafts.Values)
{
if (!CMB_aircraft.Items.Contains(aircraft.name))
CMB_aircraft.Items.Add(aircraft.name);
}
}