NScumm.Scumm.ScummEngine.DoCycleIndirectPalette C# (CSharp) Метод

DoCycleIndirectPalette() статический приватный Метод

static private DoCycleIndirectPalette ( byte palette, byte cycleStart, byte cycleEnd, bool forward, int palIndex ) : void
palette byte
cycleStart byte
cycleEnd byte
forward bool
palIndex int
Результат void
        static void DoCycleIndirectPalette(byte[] palette, byte cycleStart, byte cycleEnd, bool forward, int palIndex)
        {
            var num = cycleEnd - cycleStart + 1;
            var offset = forward ? 1 : num - 1;
            var palOffset = palIndex * 256;

            for (var i = palOffset; i < (palOffset + 256); i++)
            {
                if (cycleStart <= palette[i] && palette[i] <= cycleEnd)
                {
                    palette[i] = (byte)((palette[i] - cycleStart + offset) % num + cycleStart);
                }
            }

            DoCyclePalette(palette, cycleStart, cycleEnd, forward);
        }
ScummEngine