void Core_WriteBattleScreenTSA(TSA_Array tsa) { bool[,] selection = Screen_GridBox.Selection; Core.WriteData(this, Core.GetPointer("Battle Screen TSA"), BattleScreen.GetInsertableTSA(CurrentScreen.Tiling).ToBytes(false, false), BattleScreenEntry + "TSA changed"); Screen_GridBox.Selection = selection; }
void Core_Insert(BattleScreen insert) { Core.SuspendUpdate(); Tileset tileset = new Tileset(insert.Graphics.Count); for (int i = 0; i < insert.Graphics.Count; i++) { if (i >= BattleScreen.TILE_LIMIT && i < BattleScreen.TILE_LIMIT_END) { tileset.Add(Tile.Empty); } else { tileset.Add(insert.Graphics[i]); } } byte[] data_tileset = tileset.ToBytes(true); byte[] data_palette = Palette.Merge(insert.Palettes).ToBytes(false); byte[] data_tsa = BattleScreen.GetInsertableTSA(insert.Tiling).ToBytes(false, false); byte[] data_L_name = insert.L_Name.ToBytes(true); byte[] data_L_weapon = insert.L_Weapon.ToBytes(true); byte[] data_R_name = insert.R_Name.ToBytes(true); byte[] data_R_weapon = insert.R_Weapon.ToBytes(true); try { bool cancel = Prompt.ShowRepointDialog(this, "Repoint Battle Screen", "The battle screen to insert might need some of its parts to be repointed.", BattleScreenEntry, new Tuple <string, Pointer, int>[] { Tuple.Create("Tileset", Core.GetPointer("Battle Screen Tileset"), data_tileset.Length), Tuple.Create("Palette", Core.GetPointer("Battle Screen Palettes"), data_palette.Length), // Tuple.Create("TSA", Core.GetPointer("Battle Screen TSA"), data_tsa.Length), // repointing this TSA f***s everything up, shouldn't be too accessible Tuple.Create("L Name", Core.GetPointer("Battle Screen L Name"), data_L_name.Length), Tuple.Create("L Weapon", Core.GetPointer("Battle Screen L Weapon"), data_L_weapon.Length), Tuple.Create("R Name", Core.GetPointer("Battle Screen R Name"), data_R_name.Length), Tuple.Create("R Weapon", Core.GetPointer("Battle Screen R Weapon"), data_R_weapon.Length) }); if (cancel) { return; } Core.WriteData(this, Core.GetPointer("Battle Screen Tileset"), data_tileset, CurrentEntry + "Tileset changed"); Core.WriteData(this, Core.GetPointer("Battle Screen Palettes"), data_palette, CurrentEntry + "Palettes changed"); Core.WriteData(this, Core.GetPointer("Battle Screen TSA"), data_tsa, CurrentEntry + "TSA changed"); Core.WriteData(this, Core.GetPointer("Battle Screen L Name"), data_L_name, CurrentEntry + "L Name changed"); Core.WriteData(this, Core.GetPointer("Battle Screen L Weapon"), data_L_weapon, CurrentEntry + "L Weapon changed"); Core.WriteData(this, Core.GetPointer("Battle Screen R Name"), data_R_name, CurrentEntry + "R Name changed"); Core.WriteData(this, Core.GetPointer("Battle Screen R Weapon"), data_R_weapon, CurrentEntry + "R Weapon changed"); } catch (Exception ex) { Program.ShowError("Could not insert the Battle Screen Frame.", ex); Core_Update(); } Core.ResumeUpdate(); Core.PerformUpdate(); }