HUDData.SaveData C# (CSharp) Method

SaveData() public method

public SaveData ( ) : void
return void
    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);
    }