private void ReadLevel()
{
this.updating = true;
var d = new OpenFileDialog();
if (d.ShowDialog() == DialogResult.OK)
{
this.ClearLevel();
var level = new Level();
level.SetFileName(d.FileName);
this.lstLevel.Items.Add(level);
XmlDocument xml = new XmlDocument();
xml.Load(d.FileName);
level.Read(xml["level"]);
foreach (XmlElement el in xml["level"]["actors"])
{
Actor actor = new Actor();
actor.Read(el);
}
foreach (XmlElement el in xml["level"]["physics"])
{
Physic p;
if (el.Name == "circle")
p = new Circle();
else if (el.Name == "polygon")
p = new Polygon();
else
{
MessageBox.Show(string.Format("unsupported physic '{0}'. Element skipped.", el.Name));
continue;
}
p.Read(el);
}
}
this.updating = false;
this.UpdateControls();
this.GetCurrent().SelectedItem = this.GetCurrent().Items[0];
}