Codechange: unify creation of diagonal/orthogonal iterator using smart pointers

This commit is contained in:
Rubidium
2023-01-13 17:19:25 +01:00
committed by rubidium42
parent 6a0d1c7c19
commit f667a831a5
7 changed files with 22 additions and 17 deletions

View File

@@ -1548,7 +1548,7 @@ CommandCost CmdConvertRail(DoCommandFlag flags, TileIndex tile, TileIndex area_s
CommandCost error = CommandCost(STR_ERROR_NO_SUITABLE_RAILROAD_TRACK); // by default, there is no track to convert.
bool found_convertible_track = false; // whether we actually did convert some track (see bug #7633)
TileIterator *iter = diagonal ? (TileIterator *)new DiagonalTileIterator(area_start, area_end) : new OrthogonalTileIterator(area_start, area_end);
std::unique_ptr<TileIterator> iter = TileIterator::Create(area_start, area_end, diagonal);
for (; (tile = *iter) != INVALID_TILE; ++(*iter)) {
TileType tt = GetTileType(tile);
@@ -1745,7 +1745,6 @@ CommandCost CmdConvertRail(DoCommandFlag flags, TileIndex tile, TileIndex area_s
}
}
delete iter;
return found_convertible_track ? cost : error;
}