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

@@ -402,7 +402,7 @@ CommandCost CmdBuildObjectArea(DoCommandFlag flags, TileIndex tile, TileIndex st
const Company *c = Company::GetIfValid(_current_company);
int limit = (c == nullptr ? INT32_MAX : GB(c->build_object_limit, 16, 16));
TileIterator *iter = diagonal ? (TileIterator *)new DiagonalTileIterator(tile, start_tile) : new OrthogonalTileIterator(tile, start_tile);
std::unique_ptr<TileIterator> iter = TileIterator::Create(tile, start_tile, diagonal);
for (; *iter != INVALID_TILE; ++(*iter)) {
TileIndex t = *iter;
CommandCost ret = Command<CMD_BUILD_OBJECT>::Do(flags & ~DC_EXEC, t, type, view);
@@ -426,7 +426,6 @@ CommandCost CmdBuildObjectArea(DoCommandFlag flags, TileIndex tile, TileIndex st
cost.AddCost(ret);
}
delete iter;
return had_success ? cost : last_error;
}