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); }
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); }
public Bitmap GetImage(ItemType type, Palettes palettes) { Tile[] tiles = this.GetTiles(type); return(ItemIconGraphics.GetImage(tiles, palettes)); }