public Bitmap GetImage(GPTrack track) { Tile[] tiles = this.GetTiles(track.Objects.Tileset); Palette palette = track.Objects.Palette; return(TrackObjectGraphics.GetImage(tiles, palette)); }
/// <summary> /// Gets the Match Race object image. /// </summary> /// <param name="theme">The track theme.</param> /// <param name="moving">True for moving Match Race object, false for still Match Race object.</param> /// <returns></returns> public Bitmap GetMatchRaceObjectImage(Theme theme, bool moving) { Tile[] tiles = this.tiles[this.GetMatchRaceTileIndex(moving)]; Palette palette = moving ? theme.Palettes[12] : theme.Palettes[14]; return(TrackObjectGraphics.GetImage(tiles, palette)); }
public TrackObjectGraphics(byte[] romBuffer, Offsets offsets) { int typeCount = Enum.GetValues(typeof(TrackObjectType)).Length; int count = typeCount + 2; // + 2 to account for moving Match Race object and items this.tiles = new TrackObjectTile[count][]; int offsetLocation = offsets[Offset.TrackObjectGraphics]; byte[] tilesetGfx; int[] tileIndexes; for (int i = 0; i < typeCount; i++) { TrackObjectType type = (TrackObjectType)i; int offset = TrackObjectGraphics.GetGraphicsOffset(type, romBuffer, offsetLocation); tilesetGfx = Codec.Decompress(romBuffer, offset); tileIndexes = TrackObjectGraphics.GetTileIndexes(type); this.tiles[i] = TrackObjectGraphics.GetTiles(tilesetGfx, tileIndexes); } tileIndexes = TrackObjectGraphics.GetMatchRaceTileIndexes(); tilesetGfx = Codec.Decompress(romBuffer, offsets[Offset.MatchRaceObjectGraphics]); this.tiles[this.tiles.Length - 2] = TrackObjectGraphics.GetTiles(tilesetGfx, tileIndexes); tilesetGfx = Codec.Decompress(romBuffer, offsets[Offset.ItemGraphics]); this.tiles[this.tiles.Length - 1] = TrackObjectGraphics.GetTiles(tilesetGfx, tileIndexes); }