Exemplo n.º 1
0
        void Core_Insert(
            Palette palette,
            byte[] graphics,
            TSA_Array tsa = null)
        {
            Core.SuspendUpdate();
            try
            {
                byte[] data_palette = palette.ToBytes(Palette_CheckBox.Checked);
                byte[] data_tileset = Tileset_CheckBox.Checked ? LZ77.Compress(graphics) : graphics;
                byte[] data_tsa     = null;

                List <Tuple <string, Pointer, int> > repoints = new List <Tuple <string, Pointer, int> >();
                repoints.Add(Tuple.Create("Palette", Palette_PointerBox.Value, data_palette.Length));
                repoints.Add(Tuple.Create("Tileset", Tileset_PointerBox.Value, data_tileset.Length));
                if (tsa != null)
                {
                    data_tsa = tsa.ToBytes(TSA_CheckBox.Checked, TSA_FlipRows_CheckBox.Checked);
                    repoints.Add(Tuple.Create("TSA", TSA_PointerBox.Value, data_tsa.Length));
                }

                bool cancel = Prompt.ShowRepointDialog(this, "Repoint Graphics",
                                                       "The image and palette to insert might need to be repointed.",
                                                       "Image at " + Tileset_PointerBox.Value + " - ", repoints.ToArray());
                if (cancel)
                {
                    return;
                }

                Core.WriteData(this,
                               Palette_PointerBox.Value,
                               data_palette,
                               "Palette at " + Palette_PointerBox.Value + " changed");

                Core.WriteData(this,
                               Tileset_PointerBox.Value,
                               data_tileset,
                               "Tileset at " + Tileset_PointerBox.Value + " changed");

                if (tsa != null)
                {
                    Core.WriteData(this,
                                   TSA_PointerBox.Value,
                                   data_tsa,
                                   "TSA Array at " + TSA_PointerBox.Value + " changed");
                }
            }
            catch (Exception ex)
            {
                Program.ShowError("Could not insert image.", ex);
            }
            Core.ResumeUpdate();
            Core.PerformUpdate();
        }
Exemplo n.º 2
0
        private void LoadButton_Click(object sender, EventArgs e)
        {
            OpenFileDialog openWindow = new OpenFileDialog();

            openWindow.Filter           = "TSA data (*.tsa)|*.tsa|All files (*.*)|*.*";
            openWindow.FilterIndex      = 1;
            openWindow.RestoreDirectory = true;
            openWindow.Multiselect      = false;

            if (openWindow.ShowDialog() == DialogResult.OK)
            {
                Current = new TSA_Array(Current.Width, Current.Height, File.ReadAllBytes(openWindow.FileName));

                Core.WriteData(this,
                               Address,
                               Current.ToBytes(IsCompressed, FlipRows),
                               Entry + "TSA changed");
            }
        }