public void Core_UpdateDisplay() { try { byte[] palette = Core.ReadData(PaletteAddress, PaletteLength); byte[] tileset; if (TilesetLength == -1) { int amount = 10; int length = 32 * 2 * Tile.LENGTH; tileset = new byte[amount * length]; Pointer address; byte[] buffer; for (int i = 0; i < amount; i++) { address = Core.ReadPointer(TilesetAddress + i * 4); buffer = Core.ReadData(address, 0); Array.Copy(buffer, 0, tileset, i * length, length); } // assemble BGs that are stored in 32x2 strips } else { tileset = Core.ReadData(TilesetAddress, TilesetLength); } TSA_GridBox.Load(new TSA_Image(palette, tileset, Current)); } catch (Exception ex) { Program.ShowError("There has been an error while trying to load the image.", ex); TSA_GridBox.Reset(); } }
void Core_LoadValues() { TileIndex_NumBox.ValueChanged -= TileIndex_NumBox_ValueChanged; Palette_NumBox.ValueChanged -= Palette_NumBox_ValueChanged; FlipH_CheckBox.CheckedChanged -= FlipH_CheckBox_CheckedChanged; FlipV_CheckBox.CheckedChanged -= FlipV_CheckBox_CheckedChanged; if (TSA_GridBox.SelectionIsEmpty()) { TileIndex_NumBox.Value = 0; Palette_NumBox.Value = 0; TileIndex_NumBox.Text = TileIndex_NumBox.Value.ToString(); Palette_NumBox.Text = Palette_NumBox.Value.ToString(); TileIndex_NumBox.Enabled = false; Palette_NumBox.Enabled = false; FlipH_CheckBox.Enabled = false; FlipV_CheckBox.Enabled = false; Coordinates_Label.Text = "X : None, Y : None"; } else { TileIndex_NumBox.Enabled = true; Palette_NumBox.Enabled = true; FlipH_CheckBox.Enabled = true; FlipV_CheckBox.Enabled = true; if (TSA_GridBox.SelectionIsSingle()) { Point selection = TSA_GridBox.GetSelectionCoords(); TileIndex_NumBox.Value = Current[selection.X, selection.Y].TileIndex; Palette_NumBox.Value = Current[selection.X, selection.Y].Palette; FlipH_CheckBox.Checked = Current[selection.X, selection.Y].FlipH; FlipV_CheckBox.Checked = Current[selection.X, selection.Y].FlipV; TileIndex_NumBox.Text = TileIndex_NumBox.Value.ToString(); Palette_NumBox.Text = Palette_NumBox.Value.ToString(); CurrentValue_Label.Text = "TSA Value : 0x" + Util.UInt16ToHex(Current[selection.X, selection.Y].Value); Coordinates_Label.Text = "X : " + selection.X + ", Y : " + selection.Y; } else { TileIndex_NumBox.Text = ""; Palette_NumBox.Text = ""; FlipH_CheckBox.Checked = false; FlipV_CheckBox.Checked = false; CurrentValue_Label.Text = "TSA Value : [mixed]"; Coordinates_Label.Text = TSA_GridBox.GetSelectionAmount() + " selected tiles"; } } TileIndex_NumBox.ValueChanged += TileIndex_NumBox_ValueChanged; Palette_NumBox.ValueChanged += Palette_NumBox_ValueChanged; FlipH_CheckBox.CheckedChanged += FlipH_CheckBox_CheckedChanged; FlipV_CheckBox.CheckedChanged += FlipV_CheckBox_CheckedChanged; }