Exemplo n.º 1
0
    public static void SaveConfig(string[] args)
    {
        int    i, j;
        int    linecount = 0;
        string file      = "";

        //set culture
        System.Threading.Thread.CurrentThread.CurrentCulture   = System.Globalization.CultureInfo.InvariantCulture;
        System.Threading.Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.InvariantCulture;

        //write cvars
        ConfVar[] cvars = Cvar.GetDefaultCvars();
        for (i = 0; i < cvars.Length; i++)
        {
            //skip debug cvars
            if (cvars[i].Name.StartsWith("debug_"))
            {
                continue;
            }
            file += "cvar " + cvars[i].Name + " \"" + cvars[i].Text + "\"\n";
            linecount++;
        }

        //write binding
        BindRegistration[] binds = BindManager.GetBinds();
        for (j = 0; j < binds.Length; j++)
        {
            file += "bind " + binds[j].Keystring + " \"" + binds[j].Command + "\"\n";
            linecount++;
        }

        //write config
        string foldername = Application.dataPath + "/configs/";
        string filename   = foldername + ((args != null && args.Length > 0) ? args[0] : "default") + ".conf";

        Console.LogInfo("Writing " + filename + " with " + (i + j + 2) + " config lines.");

        if (!Directory.Exists(foldername))
        {
            Directory.CreateDirectory(foldername);
        }

        try
        {
            File.WriteAllText(filename, file);
        }
        catch (IOException e)
        {
            Console.LogIOException("SaveConfig", e);
        }
    }