public void SetPalette()
{
var levelPalette = Animation.Manager.SonicManager.SonicLevel.Palette;
clonePalette(levelPalette);
var pal = Animation.AnimatedPaletteData;
for (int index = 0; index < pal.Pieces.Count; index++)
{
var palettePiece = pal.Pieces[index];
int colorIndex = FrameIndex + (pal.Pieces.Count * index)/*+ 0 + (palettePiece.PaletteMultiply)*/;
//todo ^^^this calc is suspected to be wrong
//could be: int colorIndex = FrameIndex * index + (pal.Pieces.Count)/*+ 0 + (palettePiece.PaletteMultiply)*/;
int replaceIndex = (palettePiece.PaletteOffset) / 2;
var color = pal.Palette[colorIndex];
if (color != null)
levelPalette[palettePiece.PaletteIndex][replaceIndex] = color;
else//bug, shouldnt hit
levelPalette[palettePiece.PaletteIndex][replaceIndex] = "#000000";
}
}