private void decompressFileButton_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; } CompressedFile RawFile = new CompressedFile(f, CompressedFile.CompressionType.MaybeCompressed); f.replace(RawFile.getContents(), this); UpdateFileInfo(); f.endEdit(this); } catch (Exception) { MessageBox.Show(LanguageManager.Get("FilesystemBrowser", "DecompressionFail")); if (f.beingEditedBy(this)) { f.endEdit(this); } } }
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, false); f.replace(RawFile, this); UpdateFileInfo(); f.endEdit(this); } catch (Exception) { MessageBox.Show(LanguageManager.Get("FilesystemBrowser", "DecompressionFail")); if (f.beingEditedBy(this)) { f.endEdit(this); } } }