private void exporXmlMapInfoButton_Click(object sender, EventArgs e)
        {
            const string exportPath     = "C:\\Export";
            const string xmlMapInfoPath = exportPath + "\\XmlMapInfo";

            Directory.CreateDirectory(xmlMapInfoPath);
            using (var us = new UnitSync(Program.SpringPath)) {
                int i     = 0;
                var count = GalaxyMap.Instance.Galaxy.MapNames.Count;
                foreach (var mapName in GalaxyMap.Instance.Galaxy.MapNames)
                {
                    var path = Path.Combine(xmlMapInfoPath, mapName + ".xml");
                    if (File.Exists(path))
                    {
                        continue;
                    }
                    try {
                        us.GetMapInfo(mapName).Save(path);
                    } catch (Exception ex) {
                        Debug.WriteLine(string.Format("{0} is corrupted: coult not export data. ({1}/{2}) ({3})", mapName, i++, count, ex.Message));
                    }
                    Debug.WriteLine(
                        "Extracted data from {0} ({1}/{2})".FormatWith(mapName, ++i, count));
                }
            }
        }
        void btn_DumpMinimaps_Click(object sender, EventArgs e)
        {
            const string exportPath    = "C:\\Export";
            const string minimapPath   = exportPath + "\\Minimaps";
            const string heightmapPath = exportPath + "\\Heightmaps";
            const string metalmapPath  = exportPath + "\\Metalmaps";
            const string mapInfoPath   = exportPath + "\\MapInfo";

            Directory.CreateDirectory(exportPath);
            Directory.CreateDirectory(minimapPath);
            Directory.CreateDirectory(heightmapPath);
            Directory.CreateDirectory(metalmapPath);
            Directory.CreateDirectory(mapInfoPath);
            using (var us = new UnitSync(Program.SpringPath)) {
                int i     = 0;
                var count = GalaxyMap.Instance.Galaxy.MapNames.Count;
                foreach (var mapName in GalaxyMap.Instance.Galaxy.MapNames)
                {
                    try {
                        var map = new Map(mapName, us.GetMapInfo(mapName), us.GetMapChecksum(mapName));
                        map.FixAspectRatio(us.GetMinimap(mapName, 0)).Save(minimapPath.Combine(mapName + ".png"), ImageFormat.Png);
                        us.GetHeightMap(mapName).Save(heightmapPath.Combine(mapName + ".png"), ImageFormat.Png);
                        us.GetMetalMap(mapName).Save(metalmapPath.Combine(mapName + ".png"), ImageFormat.Png);
                        map.Save(mapInfoPath.Combine(mapName + ".dat"));
                    } catch (Exception ex) {
                        Debug.WriteLine(string.Format("{0} is corrupted: coult not export data. ({1}/{2}", mapName, i++, count));
                    }
                    Debug.WriteLine(
                        "Extracted data from {0} ({1}/{2})".FormatWith(mapName, ++i, count));
                }
            }
        }