Merge branch 'master' into jgrpp

# Conflicts:
#	src/industry_cmd.cpp
#	src/landscape.cpp
#	src/object_cmd.cpp
#	src/rail_cmd.cpp
#	src/script/api/script_tile.cpp
#	src/table/settings/difficulty_settings.ini
#	src/table/settings/world_settings.ini
#	src/terraform_cmd.cpp
#	src/tilearea_type.h
#	src/tree_cmd.cpp
#	src/tree_cmd.h
#	src/tree_gui.cpp
#	src/water_cmd.cpp
This commit is contained in:
Jonathan G Rennison
2023-01-14 16:40:24 +00:00
16 changed files with 62 additions and 53 deletions

View File

@@ -280,3 +280,18 @@ TileIterator &DiagonalTileIterator::operator++()
if (this->b_max == this->b_cur) this->tile = INVALID_TILE;
return *this;
}
/**
* Create either an OrthogonalTileIterator or DiagonalTileIterator given the diagonal parameter.
* @param corner1 Tile from where to begin iterating.
* @param corner2 Tile where to end the iterating.
* @param diagonal Whether to create a DiagonalTileIterator or OrthogonalTileIterator.
* @return unique_ptr to the allocated TileIterator.
*/
/* static */ std::unique_ptr<TileIterator> TileIterator::Create(TileIndex corner1, TileIndex corner2, bool diagonal)
{
if (diagonal) {
return std::make_unique<DiagonalTileIterator>(corner1, corner2);
}
return std::make_unique<OrthogonalTileIterator>(corner1, corner2);
}