diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index a79ba45dc8..5b6a06a901 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -98,6 +98,13 @@ Town::~Town() // Local static int _grow_town_result; +/* Describe the possible states */ +enum TownGrowthResult { + GROWTH_SUCCEED = -1, + GROWTH_SEARCH_STOPPED = 0 +// GROWTH_SEARCH_RUNNING >= 1 +}; + static bool BuildTownHouse(Town *t, TileIndex tile); static void DoBuildTownHouse(Town *t, TileIndex tile); @@ -861,7 +868,7 @@ static bool GrowTownWithExtraHouse(Town *t, TileIndex tile) /* If there are enough neighbors stop here */ if (counter >= 3) { if (BuildTownHouse(t, tile)) { - _grow_town_result = -1; + _grow_town_result = GROWTH_SUCCEED; return true; } return false; @@ -881,7 +888,7 @@ static bool GrowTownWithExtraHouse(Town *t, TileIndex tile) static bool GrowTownWithRoad(const Town *t, TileIndex tile, RoadBits rcmd) { if (CmdSucceeded(DoCommand(tile, rcmd, t->index, DC_EXEC | DC_AUTO | DC_NO_WATER, CMD_BUILD_ROAD))) { - _grow_town_result = -1; + _grow_town_result = GROWTH_SUCCEED; return true; } return false; @@ -936,7 +943,7 @@ static bool GrowTownWithBridge(const Town *t, TileIndex tile, RoadBits rcmd) /* Can we actually build the bridge? */ if (CmdSucceeded(DoCommand(tile, bridge_tile, bridge_type | ((0x80 | ROADTYPES_ROAD) << 8), DC_AUTO, CMD_BUILD_BRIDGE))) { DoCommand(tile, bridge_tile, bridge_type | ((0x80 | ROADTYPES_ROAD) << 8), DC_EXEC | DC_AUTO, CMD_BUILD_BRIDGE); - _grow_town_result--; + _grow_town_result = GROWTH_SUCCEED; return true; } } @@ -972,7 +979,7 @@ static void GrowTownInTile(TileIndex *tile_ptr, RoadBits cur_rb, DiagDirection t if (cur_rb == ROAD_NONE) { /* Tile has no road. First reset the status counter * to say that this is the last iteration. */ - _grow_town_result = 0; + _grow_town_result = GROWTH_SEARCH_STOPPED; /* Remove hills etc */ LevelTownLand(tile); @@ -1024,7 +1031,7 @@ static void GrowTownInTile(TileIndex *tile_ptr, RoadBits cur_rb, DiagDirection t /* Continue building on a partial road. * Should be allways OK, so we only generate * the fitting RoadBits */ - _grow_town_result = 0; + _grow_town_result = GROWTH_SEARCH_STOPPED; switch (_patches.town_layout) { default: NOT_REACHED(); @@ -1103,13 +1110,13 @@ static void GrowTownInTile(TileIndex *tile_ptr, RoadBits cur_rb, DiagDirection t /* And build a house. * Set result to -1 if we managed to build it. */ if (BuildTownHouse(t1, house_tile)) { - _grow_town_result = -1; + _grow_town_result = GROWTH_SUCCEED; } } return; } - _grow_town_result = 0; + _grow_town_result = GROWTH_SEARCH_STOPPED; } /* Return if a water tile */ @@ -1176,7 +1183,7 @@ static int GrowTownAtRoad(Town *t, TileIndex tile) if (IsTileType(tile, MP_ROAD)) { /* Don't allow building over roads of other cities */ if (IsTileOwner(tile, OWNER_TOWN) && GetTownByTile(tile) != t) { - _grow_town_result = -1; + _grow_town_result = GROWTH_SUCCEED; } else if (_game_mode == GM_EDITOR) { /* If we are in the SE, and this road-piece has no town owner yet, it just found an * owner :) (happy happy happy road now) */