public override void save(ExportedLevel level) { FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.Read); BinaryWriter bw = new BinaryWriter(fs); level.Write(bw); bw.Close(); }
private void levelSaver_DoWork(object sender, DoWorkEventArgs e) { try { Console.Out.WriteLine("Backing up level " + LevelFilename); ExportedLevel exlvl = levelEditorControl1.Level.getExport(); string backupPath = System.IO.Path.Combine(Application.StartupPath, "Backup"); if (!System.IO.Directory.Exists(backupPath)) { System.IO.Directory.CreateDirectory(backupPath); } string filename; if (levelEditorControl1.Level.isExported) { filename = System.IO.Path.GetFileName(LevelFilename); } else { filename = LevelFilename + ".nml"; } System.IO.FileStream fs = new System.IO.FileStream(System.IO.Path.Combine(backupPath, filename), System.IO.FileMode.Create); System.IO.BinaryWriter bw = new System.IO.BinaryWriter(fs); exlvl.Write(bw); bw.Close(); } catch (Exception ex) { } }
private void importLevelButton_Click(object sender, EventArgs e) { if (levelTreeView.SelectedNode == null) { return; } // Figure out what file to import if (importLevelDialog.ShowDialog() == DialogResult.Cancel) { return; } // Get the files string LevelFilename = (string)levelTreeView.SelectedNode.Tag; NSMBe4.DSFileSystem.File LevelFile = ROM.FS.getFileByName(LevelFilename + ".bin"); NSMBe4.DSFileSystem.File BGFile = ROM.FS.getFileByName(LevelFilename + "_bgdat.bin"); // Load it FileStream fs = new FileStream(importLevelDialog.FileName, FileMode.Open); BinaryReader br = new BinaryReader(fs); ExportedLevel exlvl = new ExportedLevel(br); if (exlvl.hasError()) { MessageBox.Show(exlvl.ErrorMessage, exlvl.ErrorTitle); } else { exlvl.Import(LevelFile, BGFile); } br.Close(); }
public override void save(ExportedLevel level) { ByteArrayInputStream strm = new ByteArrayInputStream(new byte[0]); System.IO.BinaryWriter bw = new System.IO.BinaryWriter(strm); level.Write(bw); copyData(strm.getData()); }
public ExternalLevelSource(string filename, string loadFileName) { this.filename = filename; FileStream fs = new FileStream(loadFileName, FileMode.Open, FileAccess.Read, FileShare.Read); BinaryReader br = new BinaryReader(fs); level = new ExportedLevel(br); br.Close(); }
public ClipboardLevelSource(string loadFileName) { BinaryReader br; if (loadFileName == "") { string leveltxt = Clipboard.GetText(); if (!(leveltxt.StartsWith(clipboardHeader) && leveltxt.EndsWith(clipboardFooter))) throw new Exception(); leveltxt = leveltxt.Substring(11, leveltxt.Length - 12); byte[] leveldata = ROM.LZ77_Decompress(Convert.FromBase64String(leveltxt)); ByteArrayInputStream strm = new ByteArrayInputStream(leveldata); br = new BinaryReader(strm); } else { FileStream fs = new FileStream(loadFileName, FileMode.Open, FileAccess.Read, FileShare.Read); br = new BinaryReader(fs); } level = new ExportedLevel(br); br.Close(); }
public InternalLevelSource(string filename, string levelname, string loadFileName) { levelFile = ROM.getLevelFile(filename); BGDatFile = ROM.getBGDatFile(filename); this.filename = filename; this.levelname = levelname; if (loadFileName == "") { levelData = levelFile.getContents(); BGDatData = BGDatFile.getContents(); } else { FileStream fs = new FileStream(loadFileName, FileMode.Open, FileAccess.Read, FileShare.Read); BinaryReader br = new BinaryReader(fs); ExportedLevel level = new ExportedLevel(br); br.Close(); levelData = level.LevelFile; BGDatData = level.BGDatFile; } }
private void openLevel_Click(object sender, EventArgs e) { if (importLevelDialog.ShowDialog() == System.Windows.Forms.DialogResult.Cancel) { return; } try { FileStream fs = new System.IO.FileStream(importLevelDialog.FileName, FileMode.Open); BinaryReader br = new BinaryReader(fs); ExportedLevel exlvl = new ExportedLevel(br); br.Close(); if (exlvl.hasError()) { MessageBox.Show(exlvl.ErrorMessage, exlvl.ErrorTitle); } else { new LevelEditor(importLevelDialog.FileName, "Exported Level - " + importLevelDialog.FileName, exlvl.LevelFile, exlvl.BGFile, exlvl.LevelFileID, exlvl.BGFileID).Show(); } } catch (Exception ex) { MessageBox.Show("Failed to open level file: " + ex.Message); } }
public void Save() { ExportedLevel exlvl = getExport(); if (isClipboard) { ByteArrayInputStream strm = new ByteArrayInputStream(new byte[0]); System.IO.BinaryWriter bw = new System.IO.BinaryWriter(strm); exlvl.Write(bw); Clipboard.SetText("NSMBeLevel|" + Convert.ToBase64String(ROM.LZ77_Compress(strm.getData())) + "|"); } else if (isExported) { System.IO.FileStream fs = new System.IO.FileStream(ExportedFileName, System.IO.FileMode.Create); System.IO.BinaryWriter bw = new System.IO.BinaryWriter(fs); exlvl.Write(bw); } else { LevelFile.replace(exlvl.LevelFile, this); BGFile.replace(exlvl.BGFile, this); } }
private void openClipboard_Click(object sender, EventArgs e) { try { string leveltxt = Clipboard.GetText(); if (!(leveltxt.StartsWith("NSMBeLevel|") && leveltxt.EndsWith("|"))) { throw new Exception(); } leveltxt = leveltxt.Substring(11, leveltxt.Length - 12); byte[] leveldata = ROM.LZ77_Decompress(Convert.FromBase64String(leveltxt)); ByteArrayInputStream strm = new ByteArrayInputStream(leveldata); BinaryReader br = new BinaryReader(strm); ExportedLevel exlvl = new ExportedLevel(br); LevelEditor newEditor = new LevelEditor("", "", exlvl.LevelFile, exlvl.BGFile, exlvl.LevelFileID, exlvl.BGFileID); newEditor.Show(); br.Close(); } catch (Exception ex) { MessageBox.Show((LanguageManager.Get("LevelChooser", "clipinvalidlevel"))); } }
public ClipboardLevelSource(string loadFileName) { BinaryReader br; if (loadFileName == "") { string leveltxt = Clipboard.GetText(); if (!(leveltxt.StartsWith(clipboardHeader) && leveltxt.EndsWith(clipboardFooter))) { throw new Exception(); } leveltxt = leveltxt.Substring(11, leveltxt.Length - 12); byte[] leveldata = ROM.LZ77_Decompress(Convert.FromBase64String(leveltxt)); ByteArrayInputStream strm = new ByteArrayInputStream(leveldata); br = new BinaryReader(strm); } else { FileStream fs = new FileStream(loadFileName, FileMode.Open, FileAccess.Read, FileShare.Read); br = new BinaryReader(fs); } level = new ExportedLevel(br); br.Close(); }
private void openLevel_Click(object sender, EventArgs e) { if (importLevelDialog.ShowDialog() == System.Windows.Forms.DialogResult.Cancel) return; try { FileStream fs = new System.IO.FileStream(importLevelDialog.FileName, FileMode.Open); BinaryReader br = new BinaryReader(fs); ExportedLevel exlvl = new ExportedLevel(br); br.Close(); if (exlvl.hasError()) MessageBox.Show(exlvl.ErrorMessage, exlvl.ErrorTitle); else new LevelEditor(importLevelDialog.FileName, "Exported Level - " + importLevelDialog.FileName, exlvl.LevelFile, exlvl.BGFile, exlvl.LevelFileID, exlvl.BGFileID).Show(); } catch (Exception ex) { MessageBox.Show("Failed to open level file: " + ex.Message); } }
private void openClipboard_Click(object sender, EventArgs e) { try { string leveltxt = Clipboard.GetText(); if (!(leveltxt.StartsWith("NSMBeLevel|") && leveltxt.EndsWith("|"))) throw new Exception(); leveltxt = leveltxt.Substring(11, leveltxt.Length - 12); byte[] leveldata = ROM.LZ77_Decompress(Convert.FromBase64String(leveltxt)); ByteArrayInputStream strm = new ByteArrayInputStream(leveldata); BinaryReader br = new BinaryReader(strm); ExportedLevel exlvl = new ExportedLevel(br); LevelEditor newEditor = new LevelEditor("", "", exlvl.LevelFile, exlvl.BGFile, exlvl.LevelFileID, exlvl.BGFileID); newEditor.Show(); br.Close(); } catch (Exception ex) { MessageBox.Show((LanguageManager.Get("LevelChooser", "clipinvalidlevel"))); } }
private void LevelChooser_Load(object sender, EventArgs e) { useMDI.Checked = Properties.Settings.Default.mdi; autoUpdate.Checked = Properties.Settings.Default.AutoUpdateSD; chkAutoBackup.Checked = Properties.Settings.Default.AutoBackup > 0; if (chkAutoBackup.Checked) autoBackupTime.Value = Properties.Settings.Default.AutoBackup; init = true; filesystemBrowser1.Load(ROM.FS); LoadLevelNames(); if (ROM.UserInfo != null) musicList.Items.AddRange(ROM.UserInfo.getFullList("Music").ToArray()); LanguageManager.ApplyToContainer(this, "LevelChooser"); importLevelDialog.Filter = LanguageManager.Get("LevelChooser", "LevelFilter"); exportLevelDialog.Filter = LanguageManager.Get("LevelChooser", "LevelFilter"); openPatchDialog.Filter = LanguageManager.Get("LevelChooser", "PatchFilter"); savePatchDialog.Filter = LanguageManager.Get("LevelChooser", "PatchFilter"); this.Activate(); //Get Language Files string langDir = System.IO.Path.Combine(Application.StartupPath, "Languages"); if (System.IO.Directory.Exists(langDir)) { string[] files = System.IO.Directory.GetFiles(langDir); for (int l = 0; l < files.Length; l++) { if (files[l].EndsWith(".ini")) { int startPos = files[l].LastIndexOf(System.IO.Path.DirectorySeparatorChar) + 1; languageListBox.Items.Add(files[l].Substring(startPos, files[l].LastIndexOf('.') - startPos)); } } } // Load file backups from crash string backupPath = Path.Combine(Application.StartupPath, "Backup"); if (ROM.fileBackups.Count > 0) foreach (string filename in ROM.fileBackups) try { string backupname; if (filename.Contains("/") || filename.Contains("\\")) backupname = Path.GetFileName(filename); else backupname = filename + ".nml"; FileStream fs = new System.IO.FileStream(Path.Combine(backupPath, backupname), FileMode.Open); BinaryReader br = new BinaryReader(fs); ExportedLevel exlvl = new ExportedLevel(br); br.Close(); if (!exlvl.hasError()) new LevelEditor(filename,"Recovered Level - " + filename, exlvl.LevelFile, exlvl.BGFile, exlvl.LevelFileID, exlvl.BGFileID).Show(); } catch (Exception) { } this.Text = "NSMB Editor 5.2 Beta - " + ROM.filename; label3.Text = "NSMB Editor 5.2 " + Properties.Resources.version.Trim(); this.Icon = Properties.Resources.nsmbe; if (!ROM.isNSMBRom) { tabControl1.TabPages.Remove(tabPage2); tabControl1.TabPages.Remove(tabPage5); tabControl1.TabPages.Remove(tabPage6); nsmbToolsGroupbox.Enabled = false; musicSlotsGrp.Enabled = false; } // new LevelEditor("A01_1", "LOL").Show(); }
private void importLevelButton_Click(object sender, EventArgs e) { if (levelTreeView.SelectedNode == null) return; // Figure out what file to import if (importLevelDialog.ShowDialog() == DialogResult.Cancel) return; // Get the files string LevelFilename = (string)levelTreeView.SelectedNode.Tag; NSMBe4.DSFileSystem.File LevelFile = ROM.FS.getFileByName(LevelFilename + ".bin"); NSMBe4.DSFileSystem.File BGFile = ROM.FS.getFileByName(LevelFilename + "_bgdat.bin"); // Load it FileStream fs = new FileStream(importLevelDialog.FileName, FileMode.Open); BinaryReader br = new BinaryReader(fs); ExportedLevel exlvl = new ExportedLevel(br); if (exlvl.hasError()) MessageBox.Show(exlvl.ErrorMessage, exlvl.ErrorTitle); else exlvl.Import(LevelFile, BGFile); br.Close(); }
private void LevelChooser_Load(object sender, EventArgs e) { useMDI.Checked = Properties.Settings.Default.mdi; autoUpdate.Checked = Properties.Settings.Default.AutoUpdateSD; chkAutoBackup.Checked = Properties.Settings.Default.AutoBackup > 0; if (chkAutoBackup.Checked) { autoBackupTime.Value = Properties.Settings.Default.AutoBackup; } init = true; filesystemBrowser1.Load(ROM.FS); LoadLevelNames(); if (ROM.UserInfo != null) { musicList.Items.AddRange(ROM.UserInfo.getFullList("Music").ToArray()); } LanguageManager.ApplyToContainer(this, "LevelChooser"); importLevelDialog.Filter = LanguageManager.Get("LevelChooser", "LevelFilter"); exportLevelDialog.Filter = LanguageManager.Get("LevelChooser", "LevelFilter"); openPatchDialog.Filter = LanguageManager.Get("LevelChooser", "PatchFilter"); savePatchDialog.Filter = LanguageManager.Get("LevelChooser", "PatchFilter"); this.Activate(); //Get Language Files string langDir = System.IO.Path.Combine(Application.StartupPath, "Languages"); if (System.IO.Directory.Exists(langDir)) { string[] files = System.IO.Directory.GetFiles(langDir); for (int l = 0; l < files.Length; l++) { if (files[l].EndsWith(".ini")) { int startPos = files[l].LastIndexOf(System.IO.Path.DirectorySeparatorChar) + 1; languageListBox.Items.Add(files[l].Substring(startPos, files[l].LastIndexOf('.') - startPos)); } } } // Load file backups from crash string backupPath = Path.Combine(Application.StartupPath, "Backup"); if (ROM.fileBackups.Count > 0) { foreach (string filename in ROM.fileBackups) { try { string backupname; if (filename.Contains("/") || filename.Contains("\\")) { backupname = Path.GetFileName(filename); } else { backupname = filename + ".nml"; } FileStream fs = new System.IO.FileStream(Path.Combine(backupPath, backupname), FileMode.Open); BinaryReader br = new BinaryReader(fs); ExportedLevel exlvl = new ExportedLevel(br); br.Close(); if (!exlvl.hasError()) { new LevelEditor(filename, "Recovered Level - " + filename, exlvl.LevelFile, exlvl.BGFile, exlvl.LevelFileID, exlvl.BGFileID).Show(); } } catch (Exception) { } } } this.Text = "NSMB Editor 5.2 Beta - " + ROM.filename; label3.Text = "NSMB Editor 5.2 " + Properties.Resources.version.Trim(); this.Icon = Properties.Resources.nsmbe; if (!ROM.isNSMBRom) { tabControl1.TabPages.Remove(tabPage2); tabControl1.TabPages.Remove(tabPage5); tabControl1.TabPages.Remove(tabPage6); nsmbToolsGroupbox.Enabled = false; musicSlotsGrp.Enabled = false; } // new LevelEditor("A01_1", "LOL").Show(); }
public abstract void save(ExportedLevel level);
public void Save() { ExportedLevel exlvl = getExport(); source.save(exlvl); }
public override void save(ExportedLevel level) { levelFile.replace(level.LevelFile, this); BGDatFile.replace(level.BGDatFile, this); }