public override void save() { saveImageData(); if (isLZCompressed) { f.replace(ROM.LZ77_Compress(rawdata), this); } else { f.replace(rawdata, this); } }
private void exportClipboard_Click(object sender, EventArgs e) { 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"); ByteArrayInputStream strm = new ByteArrayInputStream(new byte[0]); BinaryWriter bw = new BinaryWriter(strm); new ExportedLevel(LevelFile, BGFile).Write(bw); Clipboard.SetText("NSMBeLevel|" + Convert.ToBase64String(ROM.LZ77_Compress(strm.getData())) + "|"); bw.Close(); }
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 importPNGButton_Click(object sender, EventArgs e) { getFiles(); if (GFXFile == null) { return; } if (PalFile == null) { return; } if (LayoutFile == null) { return; } int offs = bg.topLayer ? 256 : 576; int palOffs = bg.topLayer ? 8 : 10; OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = LanguageManager.Get("Filters", "png"); ofd.CheckFileExists = true; if (ofd.ShowDialog() != DialogResult.OK) { return; } string filename = ofd.FileName; Bitmap b = new Bitmap(filename); ImageTiler ti = new ImageTiler(b); Color[] palette = ImageIndexer.createPaletteForImage(b); ByteArrayOutputStream oo = new ByteArrayOutputStream(); for (int i = 0; i < palette.Length; i++) { oo.writeUShort(NSMBTileset.toRGB15(palette[i])); } for (int i = 0; i < 256; i++) { oo.writeUShort(0); } PalFile.beginEdit(this); PalFile.replace(ROM.LZ77_Compress(oo.getArray()), this); PalFile.endEdit(this); GFXFile.beginEdit(this); GFXFile.replace(ROM.LZ77_Compress(ImageIndexer.indexImageWithPalette(ti.tileBuffer, palette)), this); GFXFile.endEdit(this); b.Dispose(); ByteArrayOutputStream layout = new ByteArrayOutputStream(); for (int y = 0; y < 64; y++) { for (int x = 0; x < 64; x++) { layout.writeUShort((ushort)((ti.tileMap[x, y] + offs) | (palOffs << 12))); } } LayoutFile.beginEdit(this); LayoutFile.replace(ROM.LZ77_Compress(layout.getArray()), this); LayoutFile.endEdit(this); }
public static void copyData(byte[] data) { Clipboard.SetText(clipboardHeader + Convert.ToBase64String(ROM.LZ77_Compress(data)) + clipboardFooter); }