mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2024-12-27 13:10:43 +00:00
219 lines
7.8 KiB
C#
219 lines
7.8 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Collections;
|
|||
|
using System.Text;
|
|||
|
using System.Data;
|
|||
|
using Microsoft.Win32;
|
|||
|
using System.Windows.Forms;
|
|||
|
using System.IO;
|
|||
|
|
|||
|
namespace SRB2Updater
|
|||
|
{
|
|||
|
public class Settings
|
|||
|
{
|
|||
|
// Global Settings
|
|||
|
public bool boolDisplayWindowed;
|
|||
|
public bool boolDisplayCustomResolution;
|
|||
|
public bool boolCloseOnStart;
|
|||
|
public int intDisplayWidth;
|
|||
|
public int intDisplayHeight;
|
|||
|
public string strMSAddress;
|
|||
|
public int intMSPort;
|
|||
|
public Array arrWadList;
|
|||
|
public string strParams;
|
|||
|
|
|||
|
public string Params
|
|||
|
{
|
|||
|
get { return strParams; }
|
|||
|
set { strParams = value; }
|
|||
|
}
|
|||
|
|
|||
|
public Array wadList
|
|||
|
{
|
|||
|
get { return arrWadList; }
|
|||
|
set { arrWadList = value; }
|
|||
|
}
|
|||
|
|
|||
|
public bool CloseOnStart
|
|||
|
{
|
|||
|
get { return boolCloseOnStart; }
|
|||
|
set { boolCloseOnStart = value; }
|
|||
|
}
|
|||
|
|
|||
|
public string msAddress
|
|||
|
{
|
|||
|
get { return strMSAddress; }
|
|||
|
set { strMSAddress = value; }
|
|||
|
}
|
|||
|
|
|||
|
public int msPort
|
|||
|
{
|
|||
|
get { return intMSPort; }
|
|||
|
set { intMSPort = value; }
|
|||
|
}
|
|||
|
|
|||
|
public bool displayWindowed
|
|||
|
{
|
|||
|
get { return boolDisplayWindowed; }
|
|||
|
set { boolDisplayWindowed = value; }
|
|||
|
}
|
|||
|
|
|||
|
public bool displayCustom
|
|||
|
{
|
|||
|
get { return boolDisplayCustomResolution; }
|
|||
|
set { boolDisplayCustomResolution = value; }
|
|||
|
}
|
|||
|
|
|||
|
public int displayWidth
|
|||
|
{
|
|||
|
get { return intDisplayWidth; }
|
|||
|
set { intDisplayWidth = value; }
|
|||
|
}
|
|||
|
|
|||
|
public int displayHeight
|
|||
|
{
|
|||
|
get { return intDisplayHeight; }
|
|||
|
set { intDisplayHeight = value; }
|
|||
|
}
|
|||
|
|
|||
|
bool boolShowDefaultWads;
|
|||
|
public bool ShowDefaultWads
|
|||
|
{
|
|||
|
get { return boolShowDefaultWads; }
|
|||
|
set { boolShowDefaultWads = value; }
|
|||
|
}
|
|||
|
|
|||
|
public void GetSettings()
|
|||
|
{
|
|||
|
RegistryKey rk = Registry.CurrentUser.CreateSubKey(@"Software\SonicTeamJunior\Launcher");
|
|||
|
RegistryKey rkDisplay = Registry.CurrentUser.CreateSubKey(@"Software\SonicTeamJunior\Launcher\Display");
|
|||
|
RegistryKey rkMS = Registry.CurrentUser.CreateSubKey(@"Software\SonicTeamJunior\Launcher\MasterServer");
|
|||
|
RegistryKey rkBinaries = rk.CreateSubKey("Binaries");
|
|||
|
rkBinaries.SetValue("2.0.4", Directory.GetCurrentDirectory() + "\\srb2win.exe");
|
|||
|
|
|||
|
try { boolDisplayCustomResolution = Convert.ToInt32(rkDisplay.GetValue("CustomResolution", 0)) != 0; }
|
|||
|
catch { boolDisplayCustomResolution = false; }
|
|||
|
try { boolDisplayWindowed = Convert.ToInt32(rkDisplay.GetValue("Windowed", 0)) != 0; }
|
|||
|
catch { boolDisplayWindowed = false; }
|
|||
|
try { boolShowDefaultWads = Convert.ToInt32(rkDisplay.GetValue("ShowDefaultWads", 0)) != 0; }
|
|||
|
catch { boolShowDefaultWads = false; }
|
|||
|
try { boolCloseOnStart = Convert.ToInt32(rkDisplay.GetValue("CloseOnStart", 0)) != 0; }
|
|||
|
catch { boolCloseOnStart = false; }
|
|||
|
intDisplayHeight = Convert.ToInt32(rkDisplay.GetValue("Height", "480"));
|
|||
|
intDisplayWidth = Convert.ToInt32(rkDisplay.GetValue("Width", "640"));
|
|||
|
intMSPort = Convert.ToInt32(rkMS.GetValue("Port", "28900"));
|
|||
|
strMSAddress = Convert.ToString(rkMS.GetValue("Address", "ms.srb2.org"));
|
|||
|
strParams = Convert.ToString(rk.GetValue("Params"));
|
|||
|
|
|||
|
dicBinaries.Clear();
|
|||
|
foreach (string strName in rkBinaries.GetValueNames())
|
|||
|
dicBinaries[strName] = (string)rkBinaries.GetValue(strName);
|
|||
|
|
|||
|
|
|||
|
rk.Close();
|
|||
|
rkDisplay.Close();
|
|||
|
rkMS.Close();
|
|||
|
rkBinaries.Close();
|
|||
|
}
|
|||
|
|
|||
|
public void SaveSettings()
|
|||
|
{
|
|||
|
RegistryKey rk = Registry.CurrentUser.CreateSubKey(@"Software\SonicTeamJunior\Launcher");
|
|||
|
RegistryKey rkDisplay = rk.CreateSubKey("Display");
|
|||
|
RegistryKey rkMS = rk.CreateSubKey("MasterServer");
|
|||
|
rkDisplay.SetValue("CustomResolution", boolDisplayCustomResolution);
|
|||
|
rkDisplay.SetValue("Windowed", boolDisplayWindowed);
|
|||
|
rkDisplay.SetValue("Height", intDisplayHeight);
|
|||
|
rkDisplay.SetValue("Width", intDisplayWidth);
|
|||
|
rkMS.SetValue("Port", intMSPort);
|
|||
|
rkMS.SetValue("Address", strMSAddress);
|
|||
|
rkMS.SetValue("ShowDefaultWads", boolShowDefaultWads);
|
|||
|
rk.SetValue("Params", strParams);
|
|||
|
rk.SetValue("CloseOnStart", boolCloseOnStart);
|
|||
|
|
|||
|
rk.DeleteSubKey("Binaries", false);
|
|||
|
RegistryKey rkBinaries = rk.CreateSubKey("Binaries");
|
|||
|
rkBinaries.SetValue("2.0.4", Directory.GetCurrentDirectory() + "\\srb2win.exe");
|
|||
|
foreach (string strName in dicBinaries.Keys)
|
|||
|
rkBinaries.SetValue(strName, dicBinaries[strName]);
|
|||
|
|
|||
|
rk.Close();
|
|||
|
}
|
|||
|
|
|||
|
/* public void WriteToRegistry()
|
|||
|
{
|
|||
|
RegistryKey rk = Registry.CurrentUser.CreateSubKey(@"Software\SRB2MSLauncher");
|
|||
|
|
|||
|
rk.SetValue("Params", strParams);
|
|||
|
rk.SetValue("Masterserver", strMSAddress);
|
|||
|
rk.SetValue("MSPort", unMSPort, RegistryValueKind.DWord);
|
|||
|
rk.SetValue("ShowDefaultWads", Convert.ToInt32(bShowDefaultWads), RegistryValueKind.DWord);
|
|||
|
|
|||
|
rk.DeleteSubKey("Binaries", false);
|
|||
|
RegistryKey rkBinaries = rk.CreateSubKey("Binaries");
|
|||
|
foreach (string strName in dicBinaries.Keys)
|
|||
|
rkBinaries.SetValue(strName, dicBinaries[strName]);
|
|||
|
|
|||
|
rkBinaries.Close();
|
|||
|
rk.Close();
|
|||
|
}
|
|||
|
|
|||
|
public void LoadFromRegistry()
|
|||
|
{
|
|||
|
RegistryKey rk = Registry.CurrentUser.CreateSubKey(@"Software\SRB2MSLauncher");
|
|||
|
RegistryKey rkBinaries = rk.CreateSubKey("Binaries");
|
|||
|
|
|||
|
strParams = (string)rk.GetValue("Params", "");
|
|||
|
strMSAddress = (string)rk.GetValue("Masterserver", "ms.srb2.org");
|
|||
|
|
|||
|
try { unMSPort = Convert.ToUInt16(rk.GetValue("MSPort", MS_DEFAULT_PORT)); }
|
|||
|
catch { unMSPort = MS_DEFAULT_PORT; }
|
|||
|
|
|||
|
try { bShowDefaultWads = Convert.ToInt32(rk.GetValue("ShowDefaultWads", 0)) != 0; }
|
|||
|
catch { bShowDefaultWads = true; }
|
|||
|
|
|||
|
dicBinaries.Clear();
|
|||
|
foreach (string strName in rkBinaries.GetValueNames())
|
|||
|
dicBinaries[strName] = (string)rkBinaries.GetValue(strName);
|
|||
|
|
|||
|
rkBinaries.Close();
|
|||
|
rk.Close();
|
|||
|
}*/
|
|||
|
|
|||
|
|
|||
|
public List<string> VersionStrings
|
|||
|
{
|
|||
|
get { return new List<string>(dicBinaries.Keys); }
|
|||
|
}
|
|||
|
|
|||
|
public bool HasBinaryForVersion(string strVersion)
|
|||
|
{
|
|||
|
return dicBinaries.ContainsKey(strVersion) && dicBinaries[strVersion] != "";
|
|||
|
}
|
|||
|
|
|||
|
public void AddBinariesToListView(ListView lv)
|
|||
|
{
|
|||
|
foreach (string strName in dicBinaries.Keys)
|
|||
|
lv.Items.Add(new ListViewItem(new string[] { strName, dicBinaries[strName] }));
|
|||
|
}
|
|||
|
|
|||
|
public void SetBinariesFromListView(ListView lv)
|
|||
|
{
|
|||
|
dicBinaries.Clear();
|
|||
|
foreach (ListViewItem lvi in lv.Items)
|
|||
|
dicBinaries[lvi.Text] = lvi.SubItems[1].Text;
|
|||
|
}
|
|||
|
|
|||
|
Dictionary<string, string> dicBinaries = new Dictionary<string, string>();
|
|||
|
|
|||
|
public void SetBinary(string strVersion, string strBinary)
|
|||
|
{
|
|||
|
dicBinaries[strVersion] = strBinary;
|
|||
|
}
|
|||
|
|
|||
|
public string GetBinary(string strVersion)
|
|||
|
{
|
|||
|
return dicBinaries[strVersion];
|
|||
|
}
|
|||
|
}
|
|||
|
}
|