Exemple #1
0
        protected override void OnClick()
        {
            var strTitle         = EidssMessages.GetForCurrentLang("gis_Caption_SaveOpenMpk", "Select map pack");
            var strFilter        = EidssMessages.GetForCurrentLang("gis_FilterMpk", "Map pack files | *.mpk");
            var strError         = EidssMessages.GetForCurrentLang("gis_OpenMpkError", "Map can't be imported!");
            var strComplete      = EidssMessages.GetForCurrentLang("gis_OpenMpkComplete", "Map has been successfully imported!");
            var strCompleteTitle = EidssMessages.GetForCurrentLang("gis_MpkCompleteTitle", "EIDDS Maps");


            var openFileDialog = new OpenFileDialog {
                Title = strTitle, Filter = strFilter
            };

            if (openFileDialog.ShowDialog(null) == DialogResult.OK)
            {
                try
                {
                    var outPath = Path.Combine(MapProjectsStorage.CustomProjectsPath);
                    MapPacker.UnpackMap(openFileDialog.FileName, outPath, selectNewName);
                    MapProjectsStorage.UpdateMapProjectList();
                    MessageForm.Show(strComplete, strCompleteTitle, MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                catch (Exception ex)
                {
                    ErrorForm.ShowError(strError, ex);
                }
            }
        }
Exemple #2
0
        /// <summary>
        /// Loads a level in the current map editor. This can only be used once per instance.
        /// </summary>
        /// <param name="mapPath">The path of the level to load.</param>
        public void LoadLevel(string mapPath)
        {
            Logger.Log($"MapEditor: Loading level {mapPath}");

            using (FileStream stream = File.OpenRead(mapPath)) {
                using (BinaryReader reader = new BinaryReader(stream)) {
                    LoadLevel(Level.Decode(MapPacker.ReadMapBinary(reader)), mapPath);
                }
            }
        }
Exemple #3
0
        /// <summary>
        /// Saves the currently loaded map.
        /// </summary>
        public void Save()
        {
            if (!File.Exists(LoadedPath))
            {
                using (FileStream stream = File.Create(LoadedPath)) {
                    stream.Close();
                }
            }

            // first write the binary into memory. This way, in case of a crash, the map binary on disc doesn't get corrupted.
            using MemoryStream memStream = new MemoryStream();
            using BinaryWriter writer    = new BinaryWriter(memStream);
            MapPacker.WriteMapBinary(writer, LoadedLevel.Encode());

            // map written successfully, now save it
            File.WriteAllBytes(LoadedPath, memStream.ToArray());

            Unsaved = false;
        }
Exemple #4
0
        protected override void OnClick()
        {
            if (ZipConstants.DefaultCodePage == 1)
            {
                ZipConstants.DefaultCodePage = 437; //bug in OEMCodePage property TODO[enikulin]: is it need?
            }
            var strTitle         = EidssMessages.GetForCurrentLang("gis_Caption_SaveOpenMpk", "Select map pack");
            var strFilter        = EidssMessages.GetForCurrentLang("gis_FilterMpk", "Map pack files | *.mpk");
            var strError         = EidssMessages.GetForCurrentLang("gis_SaveMpkError", "Map can't be saved!");
            var strComplete      = EidssMessages.GetForCurrentLang("gis_SaveMpkComplete", "Map has been successfully exporting!");
            var strCompleteTitle = EidssMessages.GetForCurrentLang("gis_MpkCompleteTitle", "EIDDS Maps");


            var saveFileDialog = new SaveFileDialog {
                Title = strTitle, OverwritePrompt = true, Filter = strFilter
            };

            if (saveFileDialog.ShowDialog(null) == DialogResult.OK)
            {
                try
                {
                    var map      = m_MapImage.Map;
                    var settings = m_MapImage.MapSettings;
                    using (new TemporaryWaitCursor())
                    {
                        MapPacker.PackMap(map, settings, Path.GetFileNameWithoutExtension(saveFileDialog.FileName),
                                          saveFileDialog.FileName);
                    }
                    MessageForm.Show(strComplete, strCompleteTitle, MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                catch (Exception ex)
                {
                    //TODO[enikulin]: Change this code!
                    //(new EIDSSErrorMessage("errCantSaveMap", strError, ex)
                    ErrorForm.ShowError(strError, ex);
                }
            }
        }