(svn r23458) -Fix: don't assume all industries that cut trees have tile 0,0

-Fix: wait until all tiles of an industry are completed before starting to cut trees
This commit is contained in:
yexo 2011-12-09 16:12:38 +00:00
parent 6aae285b72
commit 2b1a380902

View File

@ -1076,10 +1076,14 @@ static bool SearchLumberMillTrees(TileIndex tile, void *user_data)
*/
static void ChopLumberMillTrees(Industry *i)
{
/* We only want to cut trees if all tiles are completed. */
TILE_AREA_LOOP(tile_cur, i->location) {
if (i->TileBelongsToIndustry(tile_cur)) {
if (!IsIndustryCompleted(tile_cur)) return;
}
}
TileIndex tile = i->location.tile;
if (!IsIndustryCompleted(tile)) return; // Can't proceed if not completed.
if (CircularTileSearch(&tile, 40, SearchLumberMillTrees, NULL)) { // 40x40 tiles to search.
i->produced_cargo_waiting[0] = min(0xffff, i->produced_cargo_waiting[0] + 45); // Found a tree, add according value to waiting cargo.
}