public void SaveData()
{
ArrayList data = new ArrayList();
ArrayList subs = new ArrayList();
Hashtable sv = new Hashtable();
sv.Add(XMLHandler.NODE_NAME, HUDData.HUDS);
if(name != null)
{
for(int i=0; i<name.Length; i++)
{
Hashtable ht = new Hashtable();
ArrayList s = new ArrayList();
ht.Add(XMLHandler.NODE_NAME, HUDData.HUD);
ht.Add("id", i.ToString());
ht.Add("controls", hud[i].controlType.Length.ToString());
ht.Add("elements", hud[i].element.Length.ToString());
ht.Add("box", hud[i].showBox.ToString());
ht.Add("x", hud[i].bounds.x.ToString());
ht.Add("y", hud[i].bounds.y.ToString());
ht.Add("width", hud[i].bounds.width.ToString());
ht.Add("height", hud[i].bounds.height.ToString());
ht.Add("ox", hud[i].offset.x.ToString());
ht.Add("oy", hud[i].offset.y.ToString());
ht.Add("oninteraction", hud[i].onInteraction.ToString());
ht.Add("onlyone", hud[i].onlyOne.ToString());
ht.Add("hudclick", hud[i].hudClick.ToString());
ht.Add("screenindex", hud[i].screenIndex.ToString());
if(this.hud[i].fadeIn)
{
ht.Add("fadeintime", this.hud[i].fadeInTime.ToString());
ht.Add("fadeininterpolation", this.hud[i].fadeInInterpolation.ToString());
}
if(this.hud[i].fadeOut)
{
ht.Add("fadeouttime", this.hud[i].fadeOutTime.ToString());
ht.Add("fadeoutinterpolation", this.hud[i].fadeOutInterpolation.ToString());
}
if(this.hud[i].moveIn)
{
ht.Add("mix", this.hud[i].moveInStart.x.ToString());
ht.Add("miy", this.hud[i].moveInStart.y.ToString());
ht.Add("moveintime", this.hud[i].moveInTime.ToString());
ht.Add("moveininterpolation", this.hud[i].moveInInterpolation.ToString());
}
if(this.hud[i].moveOut)
{
ht.Add("mox", this.hud[i].moveOutStart.x.ToString());
ht.Add("moy", this.hud[i].moveOutStart.y.ToString());
ht.Add("moveouttime", this.hud[i].moveOutTime.ToString());
ht.Add("moveoutinterpolation", this.hud[i].moveOutInterpolation.ToString());
}
if(hud[i].skinName != null && "" != hud[i].skinName)
{
Hashtable ht2 = new Hashtable();
ht2.Add(XMLHandler.NODE_NAME, HUDData.SKIN);
ht2.Add(XMLHandler.CONTENT, hud[i].skinName);
s.Add(ht2);
}
Hashtable n = new Hashtable();
n.Add(XMLHandler.NODE_NAME, HUDData.NAME);
n.Add(XMLHandler.CONTENT, name[i]);
s.Add(n);
for(int j=0; j<hud[i].controlType.Length; j++)
{
if(hud[i].controlType[j])
{
Hashtable ht2 = new Hashtable();
ht2.Add(XMLHandler.NODE_NAME, HUDData.CONTROLTYPE);
ht2.Add("id", j.ToString());
s.Add(ht2);
}
}
for(int j=0; j<hud[i].element.Length; j++)
{
Hashtable ht2 = new Hashtable();
ht2.Add(XMLHandler.NODE_NAME, HUDData.ELEMENT);
ht2.Add("id", j.ToString());
ht2.Add("box", hud[i].element[j].showBox.ToString());
ht2.Add("x", hud[i].element[j].bounds.x.ToString());
ht2.Add("y", hud[i].element[j].bounds.y.ToString());
ht2.Add("width", hud[i].element[j].bounds.width.ToString());
ht2.Add("height", hud[i].element[j].bounds.height.ToString());
ht2.Add("anchor", hud[i].element[j].textAnchor.ToString());
ht2.Add("type", hud[i].element[j].type.ToString());
if(HUDElementType.TEXT.Equals(hud[i].element[j].type))
{
ht2 = hud[i].element[j].GetTextOptions(ht2);
ht2.Add("langs", hud[i].element[j].text.Length.ToString());
ArrayList s2 = new ArrayList();
for(int k=0; k<hud[i].element[j].text.Length; k++)
{
if("" != hud[i].element[j].text[k])
{
Hashtable ht3 = new Hashtable();
ht3.Add(XMLHandler.NODE_NAME, HUDData.TEXT);
ht3.Add("id", k.ToString());
ht3.Add(XMLHandler.CONTENT, hud[i].element[j].text[k]);
s2.Add(ht3);
}
}
if(s2.Count > 0) ht2.Add(XMLHandler.NODES, s2);
}
else if(HUDElementType.IMAGE.Equals(hud[i].element[j].type))
{
ht2 = hud[i].element[j].GetImageOptions(ht2);
}
else if(HUDElementType.NAME.Equals(hud[i].element[j].type))
{
ht2 = hud[i].element[j].GetTextOptions(ht2);
ht2.Add("contenttype", hud[i].element[j].contentType.ToString());
ht2.Add("nametype", hud[i].element[j].nameType.ToString());
if(HUDNameType.STATUS.Equals(hud[i].element[j].nameType))
{
ht2.Add("statusid", hud[i].element[j].statusID.ToString());
}
}
else if(HUDElementType.STATUS.Equals(hud[i].element[j].type))
{
ht2.Add("statusid", hud[i].element[j].statusID.ToString());
ht2.Add("displaytype", hud[i].element[j].displayType.ToString());
if(HUDDisplayType.TEXT.Equals(hud[i].element[j].displayType))
{
ht2.Add("showmax", hud[i].element[j].showMax.ToString());
if(hud[i].element[j].showMax && "" != hud[i].element[j].divider)
{
ht2.Add(XMLHandler.CONTENT, hud[i].element[j].divider);
}
ht2 = hud[i].element[j].GetTextOptions(ht2);
}
else if(HUDDisplayType.BAR.Equals(hud[i].element[j].displayType))
{
ht2.Add("useimage", hud[i].element[j].useImage.ToString());
if(hud[i].element[j].useImage)
{
ht2 = hud[i].element[j].GetImageOptions(ht2);
}
else
{
ht2.Add("barcolor", hud[i].element[j].barColor.ToString());
}
}
}
else if(HUDElementType.TIMEBAR.Equals(hud[i].element[j].type) ||
HUDElementType.USED_TIMEBAR.Equals(hud[i].element[j].type) ||
HUDElementType.CASTTIME.Equals(hud[i].element[j].type))
{
ht2.Add("displaytype", hud[i].element[j].displayType.ToString());
if(HUDDisplayType.TEXT.Equals(hud[i].element[j].displayType))
{
ht2 = hud[i].element[j].GetTextOptions(ht2);
}
else if(HUDDisplayType.BAR.Equals(hud[i].element[j].displayType))
{
ht2.Add("useimage", hud[i].element[j].useImage.ToString());
if(hud[i].element[j].useImage)
{
ht2 = hud[i].element[j].GetImageOptions(ht2);
}
else
{
ht2.Add("barcolor", hud[i].element[j].barColor.ToString());
}
}
}
else if(HUDElementType.EFFECT.Equals(hud[i].element[j].type))
{
ht2.Add("rows", hud[i].element[j].rows.ToString());
ht2.Add("columns", hud[i].element[j].columns.ToString());
ht2.Add("spacing", hud[i].element[j].spacing.ToString());
ht2.Add("contenttype", hud[i].element[j].contentType.ToString());
if(HUDContentType.TEXT.Equals(hud[i].element[j].contentType) ||
HUDContentType.BOTH.Equals(hud[i].element[j].contentType))
{
ht2 = hud[i].element[j].GetTextOptions(ht2);
}
}
else if(HUDElementType.VARIABLE.Equals(hud[i].element[j].type))
{
ht2.Add("varname", hud[i].element[j].variableName.ToString());
ht2.Add("numbervar", hud[i].element[j].numberVariable.ToString());
ht2.Add("asint", hud[i].element[j].asInt.ToString());
ht2 = hud[i].element[j].GetTextOptions(ht2);
ht2.Add("langs", hud[i].element[j].text.Length.ToString());
ArrayList s2 = new ArrayList();
for(int k=0; k<hud[i].element[j].text.Length; k++)
{
if("" != hud[i].element[j].text[k])
{
Hashtable ht3 = new Hashtable();
ht3.Add(XMLHandler.NODE_NAME, HUDData.TEXT);
ht3.Add("id", k.ToString());
ht3.Add(XMLHandler.CONTENT, hud[i].element[j].text[k]);
s2.Add(ht3);
}
}
if(s2.Count > 0) ht2.Add(XMLHandler.NODES, s2);
}
s.Add(ht2);
}
ht.Add(XMLHandler.NODES, s);
subs.Add(ht);
}
sv.Add(XMLHandler.NODES, subs);
}
data.Add(sv);
XMLHandler.SaveXML(dir, filename, data);
}