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

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

protected UpdatePalette ( ) : void
Результат void
        void UpdatePalette()
        {
            if (_palDirtyMax == -1)
                return;

            var colors = new Color[256];
            var noir_mode = (Game.GameId == GameId.SamNMax && ReadVariable(0x8000) != 0);
            var first = _palDirtyMin;
            var num = _palDirtyMax - first + 1;

            if (noir_mode)
            {
                for (var i = _palDirtyMin; i <= _palDirtyMax; i++)
                {
                    var color = _currentPalette.Colors[Game.Version < 5 ? _shadowPalette[i] : i];
                    var brightness = (int)((0.299 * color.R + 0.587 * color.G + 0.114 * color.B) + 0.5);
                    colors[i] = Color.FromRgb(brightness, brightness, brightness);
                }
            }
            else
            {
                for (var i = _palDirtyMin; i <= _palDirtyMax; i++)
                {
                    var color = _currentPalette.Colors[_game.Version > 2 && Game.Version < 5 ? _shadowPalette[i] : i];
                    colors[i] = color;
                }
            }

            _palDirtyMax = -1;
            _palDirtyMin = 256;

            if (_game.Platform == Platform.FMTowns)
            {
                for (int i = first; i < first + num; ++i)
                {
                    var c = colors[i];
                    _16BitPalette[i] = ColorHelper.RGBToColor((byte)c.R, (byte)c.G, (byte)c.B);
                }
                return;
            }

            _gfxManager.SetPalette(colors, first, num);
        }
ScummEngine