private void CompileFilesTable()
        {
            DataDumper.FilesTable.Clear();
            for (int i = 0; i < 2; i++)
            {
                TreeNode tn   = treeView2.Nodes[i];
                string   path = "";

                for (int j = 0; j < 9; j++)
                {
                    TreeNode tn_sub = tn.Nodes[j];
                    foreach (TreeNode tn_sub_child in tn_sub.Nodes)
                    {
                        if (tn.Text == "Squads")
                        {
                            path = DataPath.GetPath(DataPath.GetCategoryPath(tn_sub_child.Text, DataDumper.GetInfoType(tn.Text), tn_sub.Text));
                        }
                        else
                        if (tn.Text == "Buildings")
                        {
                            path = DataPath.GetPath(DataPath.GetCategoryPath(tn_sub_child.Text, DataDumper.GetInfoType(tn.Text), tn_sub.Text));
                        }
                        DataDumper.FilesTable.Add(tn_sub_child.Text, new LuaInfo(path, DataDumper.GetInfoType(tn.Text), tn_sub.Text));
                    }
                }
            }
        }
        // Load File Index from previous saved index
        public static bool LoadFilesList()
        {
            FilesTable = new Hashtable();

            string file = Path.Combine(Directory.GetCurrentDirectory(), "Config/FilesIndex.def");

            if (File.Exists(file))
            {
                StreamReader reader = new StreamReader(File.OpenRead(file));
                while (reader.Peek() > -1)
                {
                    string line = reader.ReadLine();

                    Match m = Regex.Match(line, @"<(?<type>.*)\>\s\<(?<race>.*)\>\s\<(?<file>.*)\>");
                    if (m.Success)
                    {
                        Group typeGr = m.Groups["type"];
                        Group raceGr = m.Groups["race"];
                        Group fileGr = m.Groups["file"];

                        string lua = fileGr.Value;

                        InfoTypes infoType = GetInfoType(typeGr.Value);
                        if (!FilesTable.Contains(lua))
                        {
                            try
                            {
                                string path = DataPath.GetPath(DataPath.GetCategoryPath(lua, infoType, raceGr.Value));
                                FilesTable.Add(/*Regex.Replace(file, @"^.*\\", "")*/ lua, new LuaInfo(path, infoType, raceGr.Value));
                            }
                            catch (Exception e)
                            {
                            }
                        }
                    }
                }
                reader.Close();
                return(true);
            }
            return(false);
        }