mirror of
				https://github.com/KartKrewDev/RingRacers.git
				synced 2025-10-30 08:01:28 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			219 lines
		
	
	
		
			No EOL
		
	
	
		
			7.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			219 lines
		
	
	
		
			No EOL
		
	
	
		
			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];
 | 
						|
        }
 | 
						|
    }
 | 
						|
} |