GayMaker/GayMaker/GlobalGameSettings.cs

229 lines
7.2 KiB
C#

//IDC that my code is shit:
#pragma warning disable IDE1006
#pragma warning disable IDE0017
using System;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using System.Xml;
namespace GayMaker
{
public partial class GlobalGameSettings : Form
{
bool RearTouchEnabled = false;
bool FrontTouchEnabled = false;
bool IntorpolateEnabled = false;
bool MakeFullScale = true;
bool KeepAspectRatio = false;
int PageSize = 2048;
String ProjectPath;
XmlDocument DefaultConfig = new XmlDocument();
public GlobalGameSettings()
{
//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 GlobalGameSettings_Load(object sender, EventArgs e)
{
Program.GM.Enabled = false;
ProjectPath = Path.GetDirectoryName(Program.GM.GetProjectPath());
Console.WriteLine(ProjectPath);
DefaultConfig.Load(ProjectPath + "\\Configs\\Default.config.gmx");
XmlNode FT = DefaultConfig.GetElementsByTagName("option_psvita_fronttouch")[0];
XmlNode RT = DefaultConfig.GetElementsByTagName("option_psvita_reartouch")[0];
XmlNode TP = DefaultConfig.GetElementsByTagName("option_psvita_texture_page")[0];
XmlNode IT = DefaultConfig.GetElementsByTagName("option_psvita_interpolate")[0];
XmlNode SC = DefaultConfig.GetElementsByTagName("option_psvita_scale")[0];
try
{
//If global game settings was never opened then its true/false for some reason
if (bool.Parse(FT.InnerText))
{
FrontTouchEnabled = true;
}
else
{
FrontTouchEnabled = false;
}
if(bool.Parse(RT.InnerText))
{
RearTouchEnabled = true;
}
else
{
RearTouchEnabled = false;
}
if(bool.Parse(IT.InnerText))
{
IntorpolateEnabled = true;
}
else
{
IntorpolateEnabled = false;
}
}
catch
{
//Otherwise its -1 / 0 (GM IS WEIRD)
if (int.Parse(FT.InnerText) == 0)
{
FrontTouchEnabled = false;
}
else
{
FrontTouchEnabled = true;
}
if (int.Parse(RT.InnerText) == 0)
{
RearTouchEnabled = false;
}
else
{
RearTouchEnabled = true;
}
if (int.Parse(IT.InnerText) == 0)
{
IntorpolateEnabled = false;
}
else
{
IntorpolateEnabled = true;
}
};
if (int.Parse(SC.InnerText) == 0)
{
MakeFullScale = true;
KeepAspectRatio = false;
}
else
{
MakeFullScale = false;
KeepAspectRatio = true;
}
PageSize = int.Parse(TP.InnerText);
//Update Form
FrontTouchPad.Checked = FrontTouchEnabled;
RearTouchPad.Checked = RearTouchEnabled;
Interporlate.Checked = IntorpolateEnabled;
FullScale.Checked = MakeFullScale;
AspectRatio.Checked = KeepAspectRatio;
TexturePageSize.Text = PageSize.ToString();
}
private void Save_Click(object sender, EventArgs e)
{
try
{
if (FrontTouchPad.Checked)
{
XmlNode FT = DefaultConfig.GetElementsByTagName("option_psvita_fronttouch")[0];
FT.InnerText = "-1";
}
else
{
XmlNode FT = DefaultConfig.GetElementsByTagName("option_psvita_fronttouch")[0];
FT.InnerText = "0";
}
if (RearTouchPad.Checked)
{
XmlNode RT = DefaultConfig.GetElementsByTagName("option_psvita_reartouch")[0];
RT.InnerText = "-1";
}
else
{
XmlNode RT = DefaultConfig.GetElementsByTagName("option_psvita_reartouch")[0];
RT.InnerText = "0";
}
if (Interporlate.Checked)
{
XmlNode IT = DefaultConfig.GetElementsByTagName("option_psvita_interpolate")[0];
IT.InnerText = "-1";
}
else
{
XmlNode IT = DefaultConfig.GetElementsByTagName("option_psvita_interpolate")[0];
IT.InnerText = "0";
}
if(AspectRatio.Checked)
{
XmlNode SC = DefaultConfig.GetElementsByTagName("option_psvita_scale")[0];
SC.InnerText = "-1";
}
else
{
XmlNode SC = DefaultConfig.GetElementsByTagName("option_psvita_scale")[0];
SC.InnerText = "0";
}
XmlNode TP = DefaultConfig.GetElementsByTagName("option_psvita_texture_page")[0];
TP.InnerText = TexturePageSize.Text;
//Save without creating newlines (i dont think it really matters but its good to be as accurate as possible)
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.GM.Enabled = true;
Close();
}
private void GlobalGameSettings_KeyDown(object sender, KeyEventArgs e)
{
//Keyboard Shortcuts are Nice.
if(e.KeyCode == Keys.Enter)
{
Save_Click(null, null);
}
else if(e.KeyCode == Keys.Escape)
{
Program.GM.Enabled = true;
Close();
}
}
private void GlobalGameSettings_FormClosing(object sender, FormClosingEventArgs e)
{
Program.GM.Enabled = true;
}
}
}