SaveHandler.CreateFileInfo C# (CSharp) Method

CreateFileInfo() public method

public CreateFileInfo ( int index ) : string
index int
return string
    public string CreateFileInfo(int index)
    {
        string info = "";
        ArrayList data = SaveHandler.LoadFile(index);
        if(data.Count > 0)
        {
            info = DataHolder.LoadSaveHUD().GetFileInfoString();
            foreach(Hashtable entry in data)
            {
                if(entry[XMLHandler.NODE_NAME] as string == SaveHandler.SAVEGAMES)
                {
                    if(entry.ContainsKey(XMLHandler.NODES))
                    {
                        ArrayList subs = entry[XMLHandler.NODES] as ArrayList;
                        foreach(Hashtable ht in subs)
                        {
                            if(ht[XMLHandler.NODE_NAME] as string == SaveHandler.SAVEGAME)
                            {
                                if(ht.ContainsKey("gametime"))
                                {
                                    info = info.Replace("%t", GameHandler.GetTimeString(float.Parse((string)ht["gametime"])));
                                }
                                if(ht.ContainsKey("areaname"))
                                {
                                    if("" != info) info += " ";
                                    info = info.Replace("%a", DataHolder.AreaName(int.Parse((string)ht["areaname"])));
                                }

                                ArrayList s = ht[XMLHandler.NODES] as ArrayList;
                                foreach(Hashtable ht2 in s)
                                {
                                    if(ht2[XMLHandler.NODE_NAME] as string == SaveHandler.PARTY)
                                    {
                                        if(ht2.ContainsKey("playerid"))
                                        {
                                            int id = int.Parse((string)ht2["playerid"]);
                                            ArrayList s2 = ht2[XMLHandler.NODES] as ArrayList;
                                            foreach(Hashtable ht3 in s2)
                                            {
                                                if(ht3[XMLHandler.NODE_NAME] as string == PartyHandler.ACTIVEPARTY)
                                                {
                                                    if(ht3.ContainsKey(XMLHandler.NODES))
                                                    {
                                                        ArrayList s3 = ht3[XMLHandler.NODES] as ArrayList;
                                                        foreach(Hashtable ht4 in s3)
                                                        {
                                                            if(ht4[XMLHandler.NODE_NAME] as string == PartyHandler.CHARACTER)
                                                            {
                                                                if(id == int.Parse((string)ht4["realid"]))
                                                                {
                                                                    info = info.Replace("%l", (string)ht4["level"]);
                                                                }
                                                                if(ht4.ContainsKey(XMLHandler.NODES))
                                                                {
                                                                    ArrayList s4 = ht4[XMLHandler.NODES] as ArrayList;
                                                                    foreach(Hashtable ht5 in s4)
                                                                    {
                                                                        if(ht5[XMLHandler.NODE_NAME] as string == Character.NEWNAME)
                                                                        {
                                                                            string tmpName = ht5[XMLHandler.CONTENT] as string;
                                                                            if(tmpName != "") info = info.Replace("%n", tmpName);
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                            info = info.Replace("%n", DataHolder.Characters().GetName(id));
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        else
        {
            info = DataHolder.LoadSaveHUD().GetEmptyInfoString();
        }
        if(index == SaveHandler.AUTOSAVE_INDEX) info = info.Replace("%i", DataHolder.LoadSaveHUD().GetAutoName());
        else info = info.Replace("%i", (index+1).ToString());
        return info;
    }