protected void RebuildPaletteData() { if (this.Palette.Length != 60) { paletteData = new byte[this.Palette.Length * 2]; } else { paletteData = new byte[this.Palette.Length * 2 + 4]; // F652 7603 paletteData[120] = 0xF6; paletteData[121] = 0x52; paletteData[122] = 0x76; paletteData[123] = 0x03; } this.PaletteDataLength = (ushort)paletteData.Length; for (int i = 0; i < this.Palette.Length; i++) { var bytes = SpriteUtilities.GetBytesFromColor(this.Palette[i]); paletteData[i * 2] = bytes[0]; paletteData[i * 2 + 1] = bytes[1]; } if (this.Palette.Length == 62 && this.Palette[60] == Color.Black) { paletteData[120] = 0xF6; paletteData[121] = 0x52; paletteData[122] = 0x76; paletteData[123] = 0x03; } }
protected virtual void RebuildPalette() { int numberOfPalettes = PaletteData.Length / 2; Palette = new Color[numberOfPalettes]; for (int i = 0; i < numberOfPalettes; i++) { Palette[i] = SpriteUtilities.GetColorFromBytes(PaletteData[i * 2], PaletteData[i * 2 + 1]); } }
void UpdateRawFromPalette() { this.rawPalette = new byte[this.palette.Length * 2]; for (int i = 0; i < this.palette.Length; i++) { var rawBytes = SpriteUtilities.GetBytesFromColor(this.palette[i]); this.rawPalette[i * 2] = rawBytes[0]; this.rawPalette[i * 2 + 1] = rawBytes[1]; } }
void UpdatePaletteFromRaw() { int startIndex = 0; int length = rawPalette.Length == 30 ? 16 : rawPalette.Length / 2; this.palette = new Color[length]; if (rawPalette.Length == 30) { this.palette[0] = Color.FromArgb(0, 0, 0); startIndex = 1; } for (int i = startIndex; i < this.palette.Length; i++) { this.palette[i] = SpriteUtilities.GetColorFromBytes(this.rawPalette[(i - startIndex) * 2], this.rawPalette[(i - startIndex) * 2 + 1]); } }