1 using System; 2 using System.Collections.Generic; 3 using System.Collections; 4 using System.Text; 5 using System.Data; 6 using Microsoft.Win32; 7 using System.Windows.Forms; 8 using System.IO; 9 10 namespace SRB2Updater 11 { 12 public class Settings 13 { 14 // Global Settings 15 public bool boolDisplayWindowed; 16 public bool boolDisplayCustomResolution; 17 public bool boolCloseOnStart; 18 public int intDisplayWidth; 19 public int intDisplayHeight; 20 public string strMSAddress; 21 public int intMSPort; 22 public Array arrWadList; 23 public string strParams; 24 25 public string Params 26 { 27 get { return strParams; } 28 set { strParams = value; } 29 } 30 31 public Array wadList 32 { 33 get { return arrWadList; } 34 set { arrWadList = value; } 35 } 36 37 public bool CloseOnStart 38 { 39 get { return boolCloseOnStart; } 40 set { boolCloseOnStart = value; } 41 } 42 43 public string msAddress 44 { 45 get { return strMSAddress; } 46 set { strMSAddress = value; } 47 } 48 49 public int msPort 50 { 51 get { return intMSPort; } 52 set { intMSPort = value; } 53 } 54 55 public bool displayWindowed 56 { 57 get { return boolDisplayWindowed; } 58 set { boolDisplayWindowed = value; } 59 } 60 61 public bool displayCustom 62 { 63 get { return boolDisplayCustomResolution; } 64 set { boolDisplayCustomResolution = value; } 65 } 66 67 public int displayWidth 68 { 69 get { return intDisplayWidth; } 70 set { intDisplayWidth = value; } 71 } 72 73 public int displayHeight 74 { 75 get { return intDisplayHeight; } 76 set { intDisplayHeight = value; } 77 } 78 79 bool boolShowDefaultWads; 80 public bool ShowDefaultWads 81 { 82 get { return boolShowDefaultWads; } 83 set { boolShowDefaultWads = value; } 84 } 85 GetSettings()86 public void GetSettings() 87 { 88 RegistryKey rk = Registry.CurrentUser.CreateSubKey(@"Software\SonicTeamJunior\Launcher"); 89 RegistryKey rkDisplay = Registry.CurrentUser.CreateSubKey(@"Software\SonicTeamJunior\Launcher\Display"); 90 RegistryKey rkMS = Registry.CurrentUser.CreateSubKey(@"Software\SonicTeamJunior\Launcher\MasterServer"); 91 RegistryKey rkBinaries = rk.CreateSubKey("Binaries"); 92 rkBinaries.SetValue("2.0.4", Directory.GetCurrentDirectory() + "\\srb2win.exe"); 93 94 try { boolDisplayCustomResolution = Convert.ToInt32(rkDisplay.GetValue("CustomResolution", 0)) != 0; } 95 catch { boolDisplayCustomResolution = false; } 96 try { boolDisplayWindowed = Convert.ToInt32(rkDisplay.GetValue("Windowed", 0)) != 0; } 97 catch { boolDisplayWindowed = false; } 98 try { boolShowDefaultWads = Convert.ToInt32(rkDisplay.GetValue("ShowDefaultWads", 0)) != 0; } 99 catch { boolShowDefaultWads = false; } 100 try { boolCloseOnStart = Convert.ToInt32(rkDisplay.GetValue("CloseOnStart", 0)) != 0; } 101 catch { boolCloseOnStart = false; } 102 intDisplayHeight = Convert.ToInt32(rkDisplay.GetValue("Height", "480")); 103 intDisplayWidth = Convert.ToInt32(rkDisplay.GetValue("Width", "640")); 104 intMSPort = Convert.ToInt32(rkMS.GetValue("Port", "28900")); 105 strMSAddress = Convert.ToString(rkMS.GetValue("Address", "ms.srb2.org")); 106 strParams = Convert.ToString(rk.GetValue("Params")); 107 108 dicBinaries.Clear(); 109 foreach (string strName in rkBinaries.GetValueNames()) 110 dicBinaries[strName] = (string)rkBinaries.GetValue(strName); 111 112 113 rk.Close(); 114 rkDisplay.Close(); 115 rkMS.Close(); 116 rkBinaries.Close(); 117 } 118 SaveSettings()119 public void SaveSettings() 120 { 121 RegistryKey rk = Registry.CurrentUser.CreateSubKey(@"Software\SonicTeamJunior\Launcher"); 122 RegistryKey rkDisplay = rk.CreateSubKey("Display"); 123 RegistryKey rkMS = rk.CreateSubKey("MasterServer"); 124 rkDisplay.SetValue("CustomResolution", boolDisplayCustomResolution); 125 rkDisplay.SetValue("Windowed", boolDisplayWindowed); 126 rkDisplay.SetValue("Height", intDisplayHeight); 127 rkDisplay.SetValue("Width", intDisplayWidth); 128 rkMS.SetValue("Port", intMSPort); 129 rkMS.SetValue("Address", strMSAddress); 130 rkMS.SetValue("ShowDefaultWads", boolShowDefaultWads); 131 rk.SetValue("Params", strParams); 132 rk.SetValue("CloseOnStart", boolCloseOnStart); 133 134 rk.DeleteSubKey("Binaries", false); 135 RegistryKey rkBinaries = rk.CreateSubKey("Binaries"); 136 rkBinaries.SetValue("2.0.4", Directory.GetCurrentDirectory() + "\\srb2win.exe"); 137 foreach (string strName in dicBinaries.Keys) 138 rkBinaries.SetValue(strName, dicBinaries[strName]); 139 140 rk.Close(); 141 } 142 143 /* public void WriteToRegistry() 144 { 145 RegistryKey rk = Registry.CurrentUser.CreateSubKey(@"Software\SRB2MSLauncher"); 146 147 rk.SetValue("Params", strParams); 148 rk.SetValue("Masterserver", strMSAddress); 149 rk.SetValue("MSPort", unMSPort, RegistryValueKind.DWord); 150 rk.SetValue("ShowDefaultWads", Convert.ToInt32(bShowDefaultWads), RegistryValueKind.DWord); 151 152 rk.DeleteSubKey("Binaries", false); 153 RegistryKey rkBinaries = rk.CreateSubKey("Binaries"); 154 foreach (string strName in dicBinaries.Keys) 155 rkBinaries.SetValue(strName, dicBinaries[strName]); 156 157 rkBinaries.Close(); 158 rk.Close(); 159 } 160 161 public void LoadFromRegistry() 162 { 163 RegistryKey rk = Registry.CurrentUser.CreateSubKey(@"Software\SRB2MSLauncher"); 164 RegistryKey rkBinaries = rk.CreateSubKey("Binaries"); 165 166 strParams = (string)rk.GetValue("Params", ""); 167 strMSAddress = (string)rk.GetValue("Masterserver", "ms.srb2.org"); 168 169 try { unMSPort = Convert.ToUInt16(rk.GetValue("MSPort", MS_DEFAULT_PORT)); } 170 catch { unMSPort = MS_DEFAULT_PORT; } 171 172 try { bShowDefaultWads = Convert.ToInt32(rk.GetValue("ShowDefaultWads", 0)) != 0; } 173 catch { bShowDefaultWads = true; } 174 175 dicBinaries.Clear(); 176 foreach (string strName in rkBinaries.GetValueNames()) 177 dicBinaries[strName] = (string)rkBinaries.GetValue(strName); 178 179 rkBinaries.Close(); 180 rk.Close(); 181 }*/ 182 183 184 public List<string> VersionStrings 185 { 186 get { return new List<string>(dicBinaries.Keys); } 187 } 188 HasBinaryForVersion(string strVersion)189 public bool HasBinaryForVersion(string strVersion) 190 { 191 return dicBinaries.ContainsKey(strVersion) && dicBinaries[strVersion] != ""; 192 } 193 AddBinariesToListView(ListView lv)194 public void AddBinariesToListView(ListView lv) 195 { 196 foreach (string strName in dicBinaries.Keys) 197 lv.Items.Add(new ListViewItem(new string[] { strName, dicBinaries[strName] })); 198 } 199 SetBinariesFromListView(ListView lv)200 public void SetBinariesFromListView(ListView lv) 201 { 202 dicBinaries.Clear(); 203 foreach (ListViewItem lvi in lv.Items) 204 dicBinaries[lvi.Text] = lvi.SubItems[1].Text; 205 } 206 207 Dictionary<string, string> dicBinaries = new Dictionary<string, string>(); 208 SetBinary(string strVersion, string strBinary)209 public void SetBinary(string strVersion, string strBinary) 210 { 211 dicBinaries[strVersion] = strBinary; 212 } 213 GetBinary(string strVersion)214 public string GetBinary(string strVersion) 215 { 216 return dicBinaries[strVersion]; 217 } 218 } 219 }