AGS.Editor.AGSEditor.WriteConfigFile C# (CSharp) Method

WriteConfigFile() public method

Writes up-to-date game information into configuration file. This updates only values that strongly depend on game properties, and does not affect user settings.
public WriteConfigFile ( string outputDir ) : void
outputDir string
return void
        public void WriteConfigFile(string outputDir)
        {
            string configFilePath = Path.Combine(outputDir, CONFIG_FILE_NAME);

            if (!File.Exists(configFilePath))
            {
                // Write default values for sound drivers
                NativeProxy.WritePrivateProfileString("sound", "digiid", "-1", configFilePath);
                NativeProxy.WritePrivateProfileString("sound", "midiid", "-1", configFilePath);
                NativeProxy.WritePrivateProfileString("sound", "digiwin", "-1", configFilePath);
                NativeProxy.WritePrivateProfileString("sound", "midiwin", "-1", configFilePath);
                NativeProxy.WritePrivateProfileString("sound", "digiindx", "0", configFilePath);
                NativeProxy.WritePrivateProfileString("sound", "midiindx", "0", configFilePath);
                NativeProxy.WritePrivateProfileString("sound", "digiwinindx", "0", configFilePath);
                NativeProxy.WritePrivateProfileString("sound", "midiwinindx", "0", configFilePath);
            }

            if (_game.Settings.LetterboxMode)
            {
                NativeProxy.WritePrivateProfileString("misc", "defaultres", ((int)_game.Settings.LegacyLetterboxResolution).ToString(), configFilePath);
                NativeProxy.WritePrivateProfileString("misc", "letterbox", "1", configFilePath);
                NativeProxy.WritePrivateProfileString("misc", "game_width", null, configFilePath);
                NativeProxy.WritePrivateProfileString("misc", "game_height", null, configFilePath);
            }
            else
            {
                NativeProxy.WritePrivateProfileString("misc", "defaultres", null, configFilePath);
                NativeProxy.WritePrivateProfileString("misc", "letterbox", null, configFilePath);
                NativeProxy.WritePrivateProfileString("misc", "game_width", _game.Settings.CustomResolution.Width.ToString(), configFilePath);
                NativeProxy.WritePrivateProfileString("misc", "game_height", _game.Settings.CustomResolution.Height.ToString(), configFilePath);
            }
            NativeProxy.WritePrivateProfileString("misc", "gamecolordepth", (((int)_game.Settings.ColorDepth) * 8).ToString(), configFilePath);

            StringBuilder buffer = new StringBuilder(100);
            NativeProxy.GetPrivateProfileString("graphics", "defaultdriver", "NULL", buffer, buffer.Capacity, configFilePath);
            if (buffer.ToString() != _game.Settings.GraphicsDriver.ToString())
            {
                NativeProxy.WritePrivateProfileString("graphics", "defaultdriver", _game.Settings.GraphicsDriver.ToString(), configFilePath);
                NativeProxy.WritePrivateProfileString("graphics", "driver", _game.Settings.GraphicsDriver.ToString(), configFilePath);
            }
            // Always write "render_at_screenres" as 0 (false), which is now the default for user-defined parameter
            NativeProxy.WritePrivateProfileString("graphics", "render_at_screenres", "0", configFilePath);
            NativeProxy.WritePrivateProfileString("misc", "titletext", _game.Settings.GameName + " Setup", configFilePath);
        }