NScumm.Scumm.ScummEngine7.SetShadowPalette C# (CSharp) Метод

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

protected SetShadowPalette ( int slot, int redScale, int greenScale, int blueScale, int startColor, int endColor ) : void
slot int
redScale int
greenScale int
blueScale int
startColor int
endColor int
Результат void
        protected void SetShadowPalette(int slot, int redScale, int greenScale, int blueScale, int startColor, int endColor)
        {
            if (slot < 0 || slot >= NumShadowPalette)
                throw new ArgumentException(string.Format("setShadowPalette: invalid slot {0}", slot), "slot");

            if (startColor < 0 || startColor > 255 || endColor < 0 || endColor > 255 || endColor < startColor)
                throw new ArgumentException(string.Format("setShadowPalette: invalid range from {0} to {1}", startColor, endColor), "startColor");

            var offs = slot * 256;
            for (var i = 0; i < 256; i++)
                _shadowPalette[offs + i] = (byte)i;

            for (var i = startColor; i <= endColor; i++)
            {
                var curColor = CurrentPalette.Colors[i];
                _shadowPalette[offs + i] = (byte)RemapPaletteColor(
                    (curColor.R * redScale) >> 8, 
                    (curColor.G * greenScale) >> 8,
                    (curColor.B * blueScale) >> 8, -1);
            }
        }