From c876d183203aa658c8a591cfc0bd928276c40f6b Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 8 Apr 2012 17:26:59 +0000 Subject: (svn r24102) -Codechange: Refactor tile clearability test out of the statue callback. --- src/town_cmd.cpp | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index 99b58f3e6..031e37a70 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -2704,6 +2704,19 @@ static CommandCost TownActionRoadRebuild(Town *t, DoCommandFlag flags) return CommandCost(); } +/** + * Check whether the land can be cleared. + * @param tile Tile to check. + * @return The tile can be cleared. + */ +static bool TryClearTile(TileIndex tile) +{ + Backup cur_company(_current_company, OWNER_NONE, FILE_LINE); + CommandCost r = DoCommand(tile, 0, 0, DC_NONE, CMD_LANDSCAPE_CLEAR); + cur_company.Restore(); + return r.Succeeded(); +} + /** * Search callback function for TownActionBuildStatue. * @param tile Tile on which to perform the search. @@ -2723,13 +2736,7 @@ static bool SearchTileForStatue(TileIndex tile, void *user_data) return false; } - Backup cur_company(_current_company, OWNER_NONE, FILE_LINE); - CommandCost r = DoCommand(tile, 0, 0, DC_NONE, CMD_LANDSCAPE_CLEAR); - cur_company.Restore(); - - if (r.Failed()) return false; - - return true; + return TryClearTile(tile); } /** -- cgit v1.2.3-70-g09d2