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

CyclePalette() защищенный Метод

protected CyclePalette ( ) : void
Результат void
        void CyclePalette()
        {
            if (_game.Platform == Platform.FMTowns && ((TownsPaletteFlags & 1) == 0))
                return;

            var valueToAdd = _variables[VariableTimer.Value];
            if (valueToAdd < _variables[VariableTimerNext.Value])
                valueToAdd = _variables[VariableTimerNext.Value];

            for (var i = 0; i < 16; i++)
            {
                var cycl = _colorCycle[i];
                if (cycl.Delay == 0 || cycl.Start > cycl.End)
                    continue;
                cycl.Counter = (ushort)(cycl.Counter + valueToAdd);
                if (cycl.Counter >= cycl.Delay)
                {
                    cycl.Counter %= cycl.Delay;

                    SetDirtyColors(cycl.Start, cycl.End);
                    MoveMemInPalRes(cycl.Start, cycl.End, (cycl.Flags & 2) != 0);

                    DoCyclePalette(_currentPalette, cycl.Start, cycl.End, (cycl.Flags & 2) == 0);

                    if (_shadowPalette != null)
                    {
                        if (_game.Version >= 7)
                        {
                            for (var j = 0; j < NumShadowPalette; j++)
                            {
                                DoCycleIndirectPalette(_shadowPalette, cycl.Start, cycl.End, (cycl.Flags & 2) == 0, j);
                            }
                        }
                        else
                        {
                            DoCycleIndirectPalette(_shadowPalette, cycl.Start, cycl.End, (cycl.Flags & 2) == 0, 0);
                        }
                    }
                }
            }
        }
ScummEngine