Пример #1
0
 public override void save()
 {
     saveImageData();
     if (isLZCompressed)
     {
         f.replace(ROM.LZ77_Compress(rawdata), this);
     }
     else
     {
         f.replace(rawdata, this);
     }
 }
Пример #2
0
        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();
        }
Пример #3
0
        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);
            }
        }
Пример #4
0
        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);
        }
Пример #5
0
 public static void copyData(byte[] data)
 {
     Clipboard.SetText(clipboardHeader + Convert.ToBase64String(ROM.LZ77_Compress(data)) + clipboardFooter);
 }