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(); }
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"); } }