mirror of https://github.com/OpenTTD/OpenTTD
(svn r13489) -Fix: first determine where to *exactly* build a house before asking a NewGRF whether the location is good instead of possibly moving the house a tile after the NewGRF said the location is good.
parent
39b397438c
commit
a5486e626d
|
@ -1929,11 +1929,6 @@ static bool BuildTownHouse(Town *t, TileIndex tile)
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((hs->extra_flags & BUILDING_IS_HISTORICAL) && !_generating_world) continue;
|
if ((hs->extra_flags & BUILDING_IS_HISTORICAL) && !_generating_world) continue;
|
||||||
|
|
||||||
if (HasBit(hs->callback_mask, CBM_HOUSE_ALLOW_CONSTRUCTION)) {
|
|
||||||
uint16 callback_res = GetHouseCallback(CBID_HOUSE_ALLOW_CONSTRUCTION, 0, 0, house, t, tile);
|
|
||||||
if (callback_res != CALLBACK_FAILED && GB(callback_res, 0, 8) == 0) continue;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_cur_year < hs->min_year || _cur_year > hs->max_year) continue;
|
if (_cur_year < hs->min_year || _cur_year > hs->max_year) continue;
|
||||||
|
@ -1963,6 +1958,11 @@ static bool BuildTownHouse(Town *t, TileIndex tile)
|
||||||
/* 1x1 house checks are already done */
|
/* 1x1 house checks are already done */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (HasBit(hs->callback_mask, CBM_HOUSE_ALLOW_CONSTRUCTION)) {
|
||||||
|
uint16 callback_res = GetHouseCallback(CBID_HOUSE_ALLOW_CONSTRUCTION, 0, 0, house, t, tile);
|
||||||
|
if (callback_res != CALLBACK_FAILED && GB(callback_res, 0, 8) == 0) continue;
|
||||||
|
}
|
||||||
|
|
||||||
/* build the house */
|
/* build the house */
|
||||||
t->num_houses++;
|
t->num_houses++;
|
||||||
IncreaseBuildingCount(t, house);
|
IncreaseBuildingCount(t, house);
|
||||||
|
|
Loading…
Reference in New Issue