static void Main(string[] args) { bool mutexWasCreated; mut = new Mutex(true, "T Starter 3", out mutexWasCreated); if (!mutexWasCreated) return; if (args.Length > 0) { try { var pack = new DirectoryPack(new DirectoryInfo("Bonus\\" + args[0])); var process = pack.Load(); process.WaitForExit(); } catch (Exception) { } CleanUp(); return; } try { XmlDocument doc = new XmlDocument(); doc.Load("T2002Levels.xml"); OnlineLevels.levels.Clear(); var nodes = doc.GetElementsByTagName("Level"); foreach (XmlNode node in nodes) { string levelname = node.Attributes.GetNamedItem("name").Value; OnlineLevel level = new OnlineLevel(); level.name = levelname; level.author = node.Attributes.GetNamedItem("author").Value; level.date = node.Attributes.GetNamedItem("date").Value; OnlineLevels.levels.Add(level); } } catch (Exception) { } Application.EnableVisualStyles(); Application.Run(Instance = new Form1()); }
private void Reload() { checkedListBox1.Items.Clear(); DirectoryInfo dir = new DirectoryInfo("Bonus"); List<string> levels = new List<string>(); List<T2002Level> localLevels = new List<T2002Level>(); foreach (FileInfo file in dir.GetFiles()) { if (!file.Name.EndsWith(".zip")) continue; ZipFile z = new ZipFile(file.Open(FileMode.Open)); List<Entry> entries = new List<Entry>(); for (int i = 0; i < z.Count; ++i) { entries.Add(new Entry(z[i].Name, z[i].Crc)); } localLevels.Add(new T2002Level(file.Name, entries)); z.Close(); } foreach (FileInfo file in dir.GetFiles()) levels.Add(file.Name.Substring(0, file.Name.Length - 4)); foreach (DirectoryInfo nextdir in dir.GetDirectories()) levels.Add(nextdir.Name); WebRequest myRequest = WebRequest.Create("http://turricanforever.de/T2002Levels.xml");//("http://turricanforever.de/levelbase"); WebResponse myResponse = myRequest.GetResponse(); System.IO.Stream streamReceive = myResponse.GetResponseStream(); System.Text.Encoding encoding = System.Text.Encoding.GetEncoding("ISO-8859-1"); System.IO.StreamReader streamRead = new System.IO.StreamReader(streamReceive, encoding); List<T2002Level> remoteLevels = new List<T2002Level>(); XmlDocument doc = new XmlDocument(); doc.Load(streamRead); OnlineLevels.levels.Clear(); var nodes = doc.GetElementsByTagName("Level"); foreach (XmlNode node in nodes) { string levelname = node.Attributes.GetNamedItem("name").Value; OnlineLevel level = new OnlineLevel(); level.name = levelname; level.author = node.Attributes.GetNamedItem("author").Value; level.date = node.Attributes.GetNamedItem("date").Value; OnlineLevels.levels.Add(level); List<Entry> entries = new List<Entry>(); foreach (XmlNode entrynode in node.ChildNodes) { var entry = new Entry(entrynode.Attributes.GetNamedItem("name").Value, long.Parse(entrynode.Attributes.GetNamedItem("crc").Value)); entries.Add(entry); } remoteLevels.Add(new T2002Level(levelname, entries)); } doc.Save("T2002Levels.xml"); /* string page = streamRead.ReadToEnd(); int start = 0; for (string found = FindInbetween(page, "href=\"", "\">", ref start); found != null; found = FindInbetween(page, "href=\"", "\">", ref start)) { if (found.EndsWith(".zip") && found.Contains("t2002")) { string[] parts = found.Split('/'); string name = parts[parts.Length - 1]; //found.Substring(7, found.Length - 7 - 4); if (name.StartsWith("TStarter") || name.StartsWith("T Starter") || name.StartsWith("T-Starter")) continue; if (!levels.Contains(name.Substring(0, name.Length - 4))) checkedListBox1.Items.Add(name, true); } }*/ foreach (var level in remoteLevels) { bool gotit = false; foreach (var locallevel in localLevels) { if (locallevel.getName() == level.getName()) { if (locallevel.Equals(level)) gotit = true; else break; } } if (!gotit) checkedListBox1.Items.Add(level.getName(), true); } if (checkedListBox1.Items.Count == 0) button1.Enabled = false; }