示例#1
0
        private static Tile[] GetTiles(byte[] romBuffer, int offset, byte[] itemGfx)
        {
            byte tileIndex  = (byte)(romBuffer[offset] & 0x7F);
            byte properties = romBuffer[offset + 1];

            Tile[] tiles = new Tile2bpp[4];

            for (int i = 0; i < tiles.Length; i++)
            {
                tiles[i] = ItemIconGraphics.GetTile((byte)(tileIndex + i), properties, itemGfx);
            }

            return(tiles);
        }
示例#2
0
        public ItemIconGraphics(byte[] romBuffer, Offsets offsets)
        {
            byte[] itemGfx     = Codec.Decompress(romBuffer, offsets[Offset.ItemIconGraphics]);
            int    itemCount   = Enum.GetValues(typeof(ItemType)).Length;
            int    startOffset = offsets[Offset.ItemIconTileLayout];

            this.tiles = new Tile2bpp[itemCount][];

            for (int i = 0; i < itemCount; i++)
            {
                int offset = startOffset + i * 2;
                this.tiles[i] = ItemIconGraphics.GetTiles(romBuffer, offset, itemGfx);
            }

            int  topBorderOffset = offsets[Offset.TopBorderTileLayout];
            byte tileIndex       = (byte)(romBuffer[topBorderOffset] & 0x7F);
            byte properties      = romBuffer[topBorderOffset + 1];

            this.topBorder = ItemIconGraphics.GetTile(tileIndex, properties, itemGfx);
        }
示例#3
0
        public Bitmap GetImage(ItemType type, Palettes palettes)
        {
            Tile[] tiles = this.GetTiles(type);

            return(ItemIconGraphics.GetImage(tiles, palettes));
        }