public void SaveData()
{
if(name.Length == 0) return;
ArrayList data = new ArrayList();
ArrayList subs = new ArrayList();
Hashtable sv = new Hashtable();
sv.Add(XMLHandler.NODE_NAME, ClassData.CLASSES);
for(int i=0; i<name[0].Count(); i++)
{
Hashtable ht = new Hashtable();
ArrayList s = new ArrayList();
ht.Add(XMLHandler.NODE_NAME, ClassData.CLASS);
ht.Add("id", i.ToString());
ht.Add("equipparts", classes[i].equipPart.Length.ToString());
ht.Add("weapons", classes[i].weapon.Length.ToString());
ht.Add("armors", classes[i].armor.Length.ToString());
s = this.SaveLanguages(s, i);
for(int j=0; j<classes[i].equipPart.Length; j++)
{
if(classes[i].equipPart[j])
{
Hashtable ep = new Hashtable();
ep.Add(XMLHandler.NODE_NAME, ClassData.EQUIPPART);
ep.Add("id", j.ToString());
s.Add(ep);
}
}
for(int j=0; j<classes[i].weapon.Length; j++)
{
if(classes[i].weapon[j])
{
Hashtable ep = new Hashtable();
ep.Add(XMLHandler.NODE_NAME, ClassData.WEAPON);
ep.Add("id", j.ToString());
s.Add(ep);
}
}
for(int j=0; j<classes[i].armor.Length; j++)
{
if(classes[i].armor[j])
{
Hashtable ep = new Hashtable();
ep.Add(XMLHandler.NODE_NAME, ClassData.ARMOR);
ep.Add("id", j.ToString());
s.Add(ep);
}
}
ht.Add("elements", classes[i].elementValue.Length.ToString());
for(int j=0; j<classes[i].elementValue.Length; j++)
{
if(classes[i].elementValue[j] != 100)
{
Hashtable ep = new Hashtable();
ep.Add(XMLHandler.NODE_NAME, ClassData.ELEMENT);
ep.Add("id", j.ToString());
ep.Add("value", classes[i].elementValue[j].ToString());
s.Add(ep);
}
}
ht.Add("races", classes[i].raceValue.Length.ToString());
for(int j=0; j<classes[i].raceValue.Length; j++)
{
if(classes[i].raceValue[j] != 100)
{
Hashtable ep = HashtableHelper.GetTitleHashtable(ClassData.RACE, j);
ep.Add("value", classes[i].raceValue[j].ToString());
s.Add(ep);
}
}
ht.Add("sizes", classes[i].sizeValue.Length.ToString());
for(int j=0; j<classes[i].sizeValue.Length; j++)
{
if(classes[i].sizeValue[j] != 100)
{
Hashtable ep = HashtableHelper.GetTitleHashtable(ClassData.SIZE, j);
ep.Add("value", classes[i].sizeValue[j].ToString());
s.Add(ep);
}
}
if(classes[i].useClassLevel) ht.Add("useclasslevel", "true");
s.Add(classes[i].development.GetData(
HashtableHelper.GetTitleHashtable(ClassData.DEVELOPMENT), classes[i].useClassLevel));
s.Add(classes[i].bonus.GetData(HashtableHelper.GetTitleHashtable(ClassData.BONUS)));
ht.Add(XMLHandler.NODES, s);
subs.Add(ht);
}
sv.Add(XMLHandler.NODES, subs);
data.Add(sv);
XMLHandler.SaveXML(dir, filename, data);
}