static void DoCyclePalette(Palette palette, int cycleStart, int cycleEnd, bool forward) { int num = cycleEnd - cycleStart; if (forward) { var tmp = palette.Colors[cycleEnd]; Array.Copy(palette.Colors, cycleStart, palette.Colors, cycleStart + 1, num); palette.Colors[cycleStart] = tmp; } else { var tmp = palette.Colors[cycleStart]; Array.Copy(palette.Colors, cycleStart + 1, palette.Colors, cycleStart, num); palette.Colors[cycleEnd] = tmp; } }