OpenEnroth f32f0c9
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
TileGenerator Class Reference

#include <TileGenerator.h>

Public Member Functions

 TileGenerator ()
 
 ~TileGenerator ()
 
void fillTable ()
 
void ensureTile (std::string_view name)
 

Private Member Functions

RgbaImage generateTile (Tileset tileset, TileVariant variant)
 
RgbaImageView loadTile (Tileset tileset, TileVariant variant)
 
TileVariant findSpanningVariant (Directions currentDirections, Directions targetDirections) const
 
void blendTile (RgbaImageView base, RgbaImageView dirt, RgbaImageView layer1, RgbaImage *layer0) const
 

Private Attributes

std::vector< std::pair< TileVariant, Directions > > _standardTiles
 
std::unordered_map< std::pair< Tileset, TileVariant >, RgbaImage_tileByTilesetVariant
 
std::unordered_map< std::string, std::pair< Tileset, TileVariant >, TransparentStringHash, TransparentStringEquals_tilesetVariantByName
 

Detailed Description

This class populates the tile table and generates tiles for tile transitions that were missing in MM7 data.

Actual terrain patching to use the new tiles is done in OutdoorTerrain::recalculateTransitions.

Constructor & Destructor Documentation

◆ TileGenerator()

TileGenerator::TileGenerator ( )

◆ ~TileGenerator()

TileGenerator::~TileGenerator ( )
default

Member Function Documentation

◆ blendTile()

void TileGenerator::blendTile ( RgbaImageView  base,
RgbaImageView  dirt,
RgbaImageView  layer1,
RgbaImage layer0 
) const
private

◆ ensureTile()

void TileGenerator::ensureTile ( std::string_view  name)
Parameters
nameName of the tile to generate if it doesn't exist yet. Name must come from what was generated by a call to fillTable.

◆ fillTable()

void TileGenerator::fillTable ( )

Fills the tile table with the new tiles. Be sure to call ensureTile for each of the tiles you'll actually use.

◆ findSpanningVariant()

TileVariant TileGenerator::findSpanningVariant ( Directions  currentDirections,
Directions  targetDirections 
) const
private

◆ generateTile()

RgbaImage TileGenerator::generateTile ( Tileset  tileset,
TileVariant  variant 
)
private

◆ loadTile()

RgbaImageView TileGenerator::loadTile ( Tileset  tileset,
TileVariant  variant 
)
private

Member Data Documentation

◆ _standardTiles

std::vector<std::pair<TileVariant, Directions> > TileGenerator::_standardTiles
private

All standard transition tiles & their directions.

◆ _tileByTilesetVariant

std::unordered_map<std::pair<Tileset, TileVariant>, RgbaImage> TileGenerator::_tileByTilesetVariant
private

Cached images for standard transition tiles. We can't use images from AssetsManager because they are desaturation-adjusted.

◆ _tilesetVariantByName

std::unordered_map<std::string, std::pair<Tileset, TileVariant>, TransparentStringHash, TransparentStringEquals> TileGenerator::_tilesetVariantByName
private

Name to tileset-variant mapping. Used for figuring out at runtime which tile is requested w/o having to parse the name.


The documentation for this class was generated from the following files: