private void replaceFile(File f, String inputFile) { // NOTE: f.beginEdit(this) must be called before this function FileStream rfs = new FileStream(inputFile, FileMode.Open, FileAccess.Read, FileShare.Read); byte[] tempFile = new byte[rfs.Length]; rfs.Read(tempFile, 0, (int)rfs.Length); rfs.Dispose(); f.replace(tempFile, this); }
private void NarcReplace(string NarcName, string f1) { NarcFilesystem fs = new NarcFilesystem(ROM.FS.getFileByName(NarcName)); NSMBe4.DSFileSystem.File f = fs.getFileByName(f1); f.beginEdit(this); f.replace(ROM.FS.getFileByName(f1).getContents(), this); f.endEdit(this); fs.close(); }
public override void save() { byte[] data = str.ToArray(); if (lz) { data = ROM.LZ77_Compress(data); } f.replace(data, this); }
public override void replace(byte[] newFile, object editor) { if (!isAGoodEditor(editor)) { throw new Exception("NOT CORRECT EDITOR " + name); } if (comp == CompressionType.LZWithHeader) { parentFile.replace(ROM.LZ77_Compress(newFile, true), this); } else if (comp == CompressionType.LZ) { parentFile.replace(ROM.LZ77_Compress(newFile, false), this); } else { parentFile.replace(newFile, this); } }
private void replaceFileButton_Click(object sender, EventArgs e) { File f = fileTreeView.SelectedNode.Tag as File; try { f.beginEdit(this); } catch (AlreadyEditingException) { MessageBox.Show(LanguageManager.Get("Errors", "File")); return; } string FileName = f.name; replaceFileDialog.FileName = FileName; if (replaceFileDialog.ShowDialog() != DialogResult.OK) { UpdateFileInfo(); f.endEdit(this); return; } /* * if(f is OverlayFile) * { * DialogResult r = MessageBox.Show("You're importing an overlay file. Is it a compressed overlay?\n\n(Overlays are compressed by default, so it probably is unless you decompressed it)", "Something", MessageBoxButtons.YesNoCancel); * if(r == DialogResult.Cancel) * { * UpdateFileInfo(); * f.endEdit(this); * return; * } * * (f as OverlayFile).isCompressed = r == DialogResult.Yes; * }*/ string SrcFileName = replaceFileDialog.FileName; FileStream rfs = new FileStream(SrcFileName, FileMode.Open, FileAccess.Read, FileShare.Read); byte[] TempFile = new byte[rfs.Length]; rfs.Read(TempFile, 0, (int)rfs.Length); rfs.Dispose(); f.replace(TempFile, this); UpdateFileInfo(); f.endEdit(this); }
//WTF was this for?! //private void NarcReplace(string NarcName, string f1, string f2) { } private void NarcReplace(string NarcName, string f1, ushort f2) { NarcFilesystem fs = new NarcFilesystem(ROM.FS.getFileByName(NarcName)); NSMBe4.DSFileSystem.File f = fs.getFileByName(f1); if (f == null) { Console.Out.WriteLine("No File: " + NarcName + "/" + f1); } else { f.beginEdit(this); f.replace(ROM.FS.getFileById(f2).getContents(), this); f.endEdit(this); } fs.close(); }
private void compressFileButton_Click(object sender, EventArgs e) { File f = fileTreeView.SelectedNode.Tag as File; try { f.beginEdit(this); } catch (AlreadyEditingException) { MessageBox.Show(LanguageManager.Get("Errors", "File")); return; } byte[] RawFile = f.getContents(); byte[] CompFile = ROM.LZ77_Compress(RawFile); f.replace(CompFile, this); UpdateFileInfo(); f.endEdit(this); }
public static void Import(File destLevelFile, File destBGFile, byte[] levelFile, byte[] bgFile) { try { destLevelFile.beginEdit(destBGFile); } catch (AlreadyEditingException) { MessageBox.Show(LanguageManager.Get("Errors", "Level")); return; } try { destBGFile.beginEdit(destLevelFile); } catch (AlreadyEditingException) { MessageBox.Show(LanguageManager.Get("Errors", "Level")); return; } destLevelFile.replace(levelFile, destBGFile); destLevelFile.endEdit(destBGFile); destBGFile.replace(bgFile, destLevelFile); destBGFile.endEdit(destLevelFile); }
private void decompressWithHeaderButton_Click(object sender, EventArgs e) { File f = fileTreeView.SelectedNode.Tag as File; try { try { f.beginEdit(this); } catch (AlreadyEditingException) { MessageBox.Show(LanguageManager.Get("Errors", "File")); return; } if (f.getUintAt(0) != 0x37375A4C) { MessageBox.Show(LanguageManager.Get("Errors", "NoLZHeader")); f.endEdit(this); return; } byte[] CompFile = f.getContents(); byte[] CompFileWithoutHeader = new byte[CompFile.Length - 4]; Array.Copy(CompFile, 4, CompFileWithoutHeader, 0, CompFileWithoutHeader.Length); byte[] RawFile = ROM.LZ77_Decompress(CompFileWithoutHeader); f.replace(RawFile, this); UpdateFileInfo(); f.endEdit(this); } catch (Exception) { MessageBox.Show(LanguageManager.Get("FilesystemBrowser", "DecompressionFail")); if (f.beingEditedBy(this)) { f.endEdit(this); } } }
public void SaveFile() { try { string text = string.Empty; //System.IO.StreamWriter s = new System.IO.StreamWriter(new System.IO.FileStream(FilePath, System.IO.FileMode.Create, System.IO.FileAccess.Write)); // Write lists foreach (KeyValuePair <string, Dictionary <int, string> > list in lists) { text += "[" + list.Key + "]\n"; foreach (KeyValuePair <int, string> item in list.Value) { text += item.Key.ToString() + "=" + item.Value + "\n"; } } // Write descriptions foreach (KeyValuePair <int, List <string> > item in descriptions) { int num = 0; text += "[" + item.Key.ToString() + "]\n"; foreach (string desc in item.Value) { if (desc != string.Empty) { text += num.ToString() + "=" + desc + "\n"; } num++; } } DSFileSystem.File file = ROM.FS.getFileByName("00DUMMY"); file.beginEdit(this); file.replace(System.Text.Encoding.ASCII.GetBytes(text), this); file.endEdit(this); } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(String.Format(LanguageManager.Get("ROMUserInfo", "ErrorWrite"), ex.Message)); } }
private void compressWithHeaderButton_Click(object sender, EventArgs e) { File f = fileTreeView.SelectedNode.Tag as File; try { f.beginEdit(this); } catch (AlreadyEditingException) { MessageBox.Show(LanguageManager.Get("Errors", "File")); return; } byte[] RawFile = f.getContents(); byte[] CompFile = ROM.LZ77_Compress(RawFile); byte[] CompFileWithHeader = new byte[CompFile.Length + 4]; Array.Copy(CompFile, 0, CompFileWithHeader, 4, CompFile.Length); f.replace(CompFileWithHeader, this); f.setUintAt(0, 0x37375A4C); UpdateFileInfo(); f.endEdit(this); }
public override void replace(byte[] newFile, object editor) { //if (!isAGoodEditor(editor)) // throw new Exception("NOT CORRECT EDITOR " + name); if (comp != CompressionType.NoComp) { byte[] data; if (comp == CompressionType.LZWithHeaderComp) { data = ROM.LZ77_DecompressWithHeader(parentFile.getContents()); } else { data = ROM.LZ77_Decompress(parentFile.getContents()); } Array.Copy(newFile, 0, data, inlineOffs, inlineLen); parentFile.replace(ROM.LZ77_Compress(data, comp == CompressionType.LZWithHeaderComp), this); } else { base.replace(newFile, editor); } }
private void saveButton_Click(object sender, EventArgs e) { byte[] data = ((DynamicByteProvider)hexBox1.ByteProvider).Bytes.ToArray(); f.replace(data, this); }
public static void ImportLevel(File destLevelFile, File destBGFile, System.IO.BinaryReader br) { try { destLevelFile.beginEdit(br); } catch (AlreadyEditingException) { MessageBox.Show(LanguageManager.Get("Errors", "Level")); return; } try { destBGFile.beginEdit(br); } catch (AlreadyEditingException) { destLevelFile.endEdit(br); MessageBox.Show(LanguageManager.Get("Errors", "Level")); return; } string Header = br.ReadString(); if (Header != "NSMBe4 Exported Level") { MessageBox.Show( LanguageManager.Get("NSMBLevel", "InvalidFile"), LanguageManager.Get("NSMBLevel", "Unreadable"), MessageBoxButtons.OK, MessageBoxIcon.Error); return; } ushort FileVersion = br.ReadUInt16(); if (FileVersion > 1) { MessageBox.Show( LanguageManager.Get("NSMBLevel", "OldVersion"), LanguageManager.Get("NSMBLevel", "Unusable"), MessageBoxButtons.OK, MessageBoxIcon.Error); return; } ushort SavedLevelFileID = br.ReadUInt16(); ushort SavedBGFileID = br.ReadUInt16(); if (SavedLevelFileID != destLevelFile.id) { DialogResult dr = MessageBox.Show( LanguageManager.Get("NSMBLevel", "Mismatch"), LanguageManager.Get("General", "Warning"), MessageBoxButtons.YesNo, MessageBoxIcon.Information); if (dr == DialogResult.No) { return; } } int LevelFileLength = br.ReadInt32(); byte[] LevelFileData = br.ReadBytes(LevelFileLength); destLevelFile.replace(LevelFileData, br); destLevelFile.endEdit(br); int BGFileLength = br.ReadInt32(); byte[] BGFileData = br.ReadBytes(BGFileLength); destBGFile.replace(BGFileData, br); destBGFile.endEdit(br); }
public override void save(ExportedLevel level) { levelFile.replace(level.LevelFile, this); BGDatFile.replace(level.BGDatFile, this); }
private void patchImport_Click(object sender, EventArgs e) { //output to show to the user bool differentRomsWarning = false; // tells if we have shown the warning int fileCount = 0; //open the input patch if (openPatchDialog.ShowDialog() == DialogResult.Cancel) { return; } FileStream fs = new FileStream(openPatchDialog.FileName, FileMode.Open, FileAccess.Read, FileShare.Read); BinaryReader br = new BinaryReader(fs); string header = br.ReadString(); if (header != "NSMBe4 Exported Patch") { MessageBox.Show( LanguageManager.Get("Patch", "InvalidFile"), LanguageManager.Get("Patch", "Unreadable"), MessageBoxButtons.OK, MessageBoxIcon.Error); br.Close(); return; } ProgressWindow progress = new ProgressWindow(LanguageManager.Get("Patch", "ImportProgressTitle")); progress.Show(); byte filestartByte = br.ReadByte(); try { while (filestartByte == 1) { string fileName = br.ReadString(); progress.WriteLine(string.Format(LanguageManager.Get("Patch", "ReplacingFile"), fileName)); ushort origFileID = br.ReadUInt16(); NSMBe4.DSFileSystem.File f = ROM.FS.getFileByName(fileName); uint length = br.ReadUInt32(); byte[] newFile = new byte[length]; br.Read(newFile, 0, (int)length); filestartByte = br.ReadByte(); if (f != null) { ushort fileID = (ushort)f.id; if (!differentRomsWarning && origFileID != fileID) { MessageBox.Show(LanguageManager.Get("Patch", "ImportDiffVersions"), LanguageManager.Get("General", "Warning"), MessageBoxButtons.OK, MessageBoxIcon.Warning); differentRomsWarning = true; } if (!f.isSystemFile) { Console.Out.WriteLine("Replace " + fileName); f.beginEdit(this); f.replace(newFile, this); f.endEdit(this); } fileCount++; } } } catch (AlreadyEditingException) { MessageBox.Show(string.Format(LanguageManager.Get("Patch", "Error"), fileCount), LanguageManager.Get("General", "Completed"), MessageBoxButtons.OK, MessageBoxIcon.Error); } br.Close(); MessageBox.Show(string.Format(LanguageManager.Get("Patch", "ImportReady"), fileCount), LanguageManager.Get("General", "Completed"), MessageBoxButtons.OK, MessageBoxIcon.Information); // progress.Close(); }
private void replaceFile(File f, String inputFile) { // NOTE: f.beginEdit(this) must be called before this function FileStream rfs = new FileStream(inputFile, FileMode.Open, FileAccess.Read, FileShare.Read); byte[] tempFile = new byte[rfs.Length]; rfs.Read(tempFile, 0, (int)rfs.Length); rfs.Dispose(); f.replace(tempFile, this); }
void readFileContents(File f, System.IO.BinaryReader br) { int len = br.ReadInt32(); byte[] data = new byte[len]; br.Read(data, 0, len); f.replace(data, this); }