GayMaker-Studio/GayMaker-Studio/GameSettings.cs

147 lines
4.6 KiB
C#

using System;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using System.Xml;
namespace GayMaker_Studio
{
public partial class GameSettings : Form
{
String ProjectPath;
XmlDocument DefaultConfig = new XmlDocument();
public GameSettings()
{
//Bypass Windows DPI Scaling
Font = new Font(Font.Name, 8.25f * 96f / CreateGraphics().DpiX, Font.Style, Font.Unit, Font.GdiCharSet, Font.GdiVerticalFont);
InitializeComponent();
}
private void GameSettings_Load(object sender, EventArgs e)
{
Program.GMS.Enabled = false;
ProjectPath = Path.GetDirectoryName(Program.GMS.GetProjectPath());
Console.WriteLine(ProjectPath);
DefaultConfig.Load(ProjectPath + "\\Configs\\Default.config.gmx");
XmlNode TP = DefaultConfig.GetElementsByTagName("option_ps4_texture_page")[0];
XmlNode IT = DefaultConfig.GetElementsByTagName("option_ps4_interpolate")[0];
XmlNode SC = DefaultConfig.GetElementsByTagName("option_ps4_scale")[0];
XmlNode DC = DefaultConfig.GetElementsByTagName("option_ps4_displaycursor")[0];
try
{
//If global game settings was never opened then its true/false for some reason
DisplayCursor.Checked = bool.Parse(DC.InnerText);
Interporlate.Checked = bool.Parse(IT.InnerText);
}
catch
{
//Otherwise its -1 / 0 (GM IS WEIRD)
if (int.Parse(DC.InnerText) == 0)
{
DisplayCursor.Checked = false;
}
else
{
DisplayCursor.Checked = true;
}
if (int.Parse(IT.InnerText) == 0)
{
Interporlate.Checked = false;
}
else
{
Interporlate.Checked = true;
}
if (int.Parse(SC.InnerText) == 0)
{
FullScale.Checked = true;
KeepAspect.Checked = false;
}
else
{
FullScale.Checked = false;
KeepAspect.Checked = true;
}
};
TexturePageSize.Text = int.Parse(TP.InnerText).ToString();
}
private void Save_Click(object sender, EventArgs e)
{
try
{
if (DisplayCursor.Checked)
{
XmlNode DC = DefaultConfig.GetElementsByTagName("option_ps4_displaycursor")[0];
DC.InnerText = "-1";
}
else
{
XmlNode DC = DefaultConfig.GetElementsByTagName("option_ps4_displaycursor")[0];
DC.InnerText = "0";
}
if (Interporlate.Checked)
{
XmlNode IT = DefaultConfig.GetElementsByTagName("option_ps4_interpolate")[0];
IT.InnerText = "-1";
}
else
{
XmlNode IT = DefaultConfig.GetElementsByTagName("option_ps4_interpolate")[0];
IT.InnerText = "0";
}
if (KeepAspect.Checked)
{
XmlNode SC = DefaultConfig.GetElementsByTagName("option_ps4_scale")[0];
SC.InnerText = "-1";
}
else
{
XmlNode SC = DefaultConfig.GetElementsByTagName("option_ps4_scale")[0];
SC.InnerText = "0";
}
XmlNode TP = DefaultConfig.GetElementsByTagName("option_ps4_texture_page")[0];
TP.InnerText = TexturePageSize.Text;
XmlWriterSettings settings = new XmlWriterSettings { Indent = true, OmitXmlDeclaration = true };
XmlWriter writer = XmlWriter.Create(ProjectPath + "\\Configs\\Default.config.gmx", settings);
DefaultConfig.Save(writer);
writer.Close();
}
catch (Exception)
{
MessageBox.Show("There was an error while saving settings!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
Program.GMS.Enabled = true;
Close();
}
private void GameSettings_FormClosing(object sender, FormClosingEventArgs e)
{
Program.GMS.Enabled = true;
}
}
}