コード例 #1
0
		//public void SetPalette(NesPalette pal, int paltable) {
		//    ColorPalette p = tiles.Palette;

		//    pal.ApplyTable(p.Entries, 0, paltable * 4, 4);
		//}
		public void SetPalette(NesPalette pal) {
			ColorPalette p = tiles.Palette;
			pal.ApplyTable(p.Entries);
			tiles.Palette = p;

			this.DoubleBuffered = true;
		}
コード例 #2
0
ファイル: PatternTable.cs プロジェクト: snarfblam/editroid
        public void LoadColors(NesPalette palette, int palIndex)
        {
            Color[] palColors = new Color[16];
            palette.ApplyTable(palColors);

            Color[] pal4 = new Color[4];
            pal4[0] = palColors[4 * palIndex];
            pal4[1] = palColors[4 * palIndex + 1];
            pal4[2] = palColors[4 * palIndex + 2];
            pal4[3] = palColors[4 * palIndex + 3];
            Palette = pal4;
        }
コード例 #3
0
ファイル: Level.cs プロジェクト: snarfblam/editroid
        private void LoadPalette()
        {
            PalettePointers = new PointerTable(
                rom,
                (pRom)(NesPalette.LevelPalettePointerTableOffset + Bank.Offset),
                0x1c);

            _SpritePalette = NesPalette.FromLevel_SPR(this);
            _BgPalette     = NesPalette.FromLevel_BG(this);
            if (Format.SupportsAltBgPalette)
            {
                _BgAltPalette = NesPalette.FromLevel_BG_Alt(this);
            }
            else
            {
                _BgAltPalette = _BgPalette;
            }
            if (Format.SupportsAltSpritePalette)
            {
                _SpriteAltPalette = NesPalette.FromLevel_SPR_Alt(this);
            }
            else
            {
                _SpriteAltPalette = _SpritePalette;
            }


            switch (this.index)
            {
            case LevelIndex.Brinstar:
                enemyPalettes = new int[] { 0, 0, 0, 0, 2, 3, 2, 0, 2, 3, 2, 0, 2, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
                break;

            case LevelIndex.Norfair:
                enemyPalettes = new int[] { 2, 3, 2, 0, 2, 3, 2, 0, 2, 3, 2, 0, 2, 3, 2, 0, 2, 3, 2, 0, 2, 3, 2, 0, 2, 3, 2, 3, 2, 3, 2, 0 };
                break;

            case LevelIndex.Tourian:
                enemyPalettes = new int[] { 0, 3, 3, 0, 2, 3, 2, 0, 2, 3, 2, 0, 2, 3, 2, 0, 2, 3, 2, 0, 2, 3, 2, 0, 2, 3, 2, 0, 2, 3, 2, 0 };
                break;

            case LevelIndex.Kraid:
                enemyPalettes = new int[] { 2, 3, 2, 0, 2, 3, 2, 0, 2, 3, 2, 0, 2, 3, 2, 0, 2, 3, 2, 0, 2, 3, 2, 0, 2, 3, 2, 0, 2, 3, 2, 0 };
                break;

            case LevelIndex.Ridley:
                enemyPalettes = new int[] { 2, 3, 2, 0, 2, 3, 2, 0, 2, 3, 2, 0, 2, 3, 2, 0, 2, 3, 2, 3, 2, 3, 2, 0, 2, 3, 2, 0, 2, 3, 2, 0 };
                break;
            }
        }
コード例 #4
0
        private void ApplyPalette(LevelIndex level)
        {
            NesPalette bgPal  = rom.Levels[LevelIndex.Brinstar].BgPalette;
            NesPalette sprPal = rom.Levels[LevelIndex.Brinstar].SpritePalette;

            if (level != LevelIndex.None)
            {
                bgPal  = rom.Levels[level].BgPalette;
                sprPal = rom.Levels[level].SpritePalette;
            }

            spritePatterns.LoadColors(sprPal, 2);
            bgPatterns.LoadColors(bgPal, 1);
        }
コード例 #5
0
ファイル: Screen.cs プロジェクト: snarfblam/editroid
        public void ApplyLevelPalette(System.Drawing.Bitmap image)
        {
            System.Drawing.Imaging.ColorPalette bitmapPalette = image.Palette; // Get brush paletteIndex

            NesPalette bgPalette     = Level.BgPalette;                        // Get ROM palettes
            NesPalette spritePalette = Level.SpritePalette;

            bgPalette.ApplyTable(bitmapPalette.Entries); // Apply to brush paletteIndex
            bgPalette.ApplyTable(bitmapPalette.Entries, 16);
            spritePalette.ApplyTable(bitmapPalette.Entries, 32);
            spritePalette.ApplyTable(bitmapPalette.Entries, 48);

            image.Palette = bitmapPalette; // Apply back to brush paletteIndex
        }
コード例 #6
0
        public void SetPalette(NesPalette pal, int table)
        {
            if (Image == null)
            {
                queuedPalette = pal;
                queuedTable   = table;
                return;
            }

            ColorPalette p = Image.Palette;

            pal.ApplyTable(p.Entries, 0, table * 4, 4);
            Image.Palette = p;
            Invalidate();
        }
コード例 #7
0
            public void LoadLevel(Level lvl)
            {
                levelData  = lvl;
                Patterns   = (Bitmap)lvl.Patterns.PatternImage.Clone();
                Palette    = lvl.BgPalette;
                altPalette = lvl.BgAltPalette;

                var buffpal = buffer.Palette;

                Palette.ApplyTable(buffpal.Entries);
                altPalette.ApplyTable(buffpal.Entries, 16);
                Palette.ApplyTable(buffpal.Entries, 32, 0, 16, invertColor);
                altPalette.ApplyTable(buffpal.Entries, 48, 0, 16, invertColor);
                buffer.Palette = buffpal;

                readyToRender = true;
            }
コード例 #8
0
        public void LoadLevelData()
        {
            switch (palType)
            {
            case PaletteType.Background:
                palData = levelData.BgPalette;
                break;

            case PaletteType.AltBackground:
                palData = levelData.BgAltPalette;
                break;

            case PaletteType.Sprite:
                palData = levelData.SpritePalette;
                break;

            case PaletteType.AltSprite:
                palData = levelData.SpriteAltPalette;
                break;
            }

            RedrawAll();
        }
コード例 #9
0
 public void SetPalette(NesPalette palette)
 {
     _Palette = palette ?? _Palette;
 }