summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorfrosch <frosch@openttd.org>2010-09-05 19:46:04 +0000
committerfrosch <frosch@openttd.org>2010-09-05 19:46:04 +0000
commite4091f16d0dcc1bcd7330d8fe117bf4019c5304f (patch)
tree8cde0f2b699040e39536bb5a81c0a4811df69c2b /src
parent86a553f01fd3058deef22cb587c9c91bbf9758dc (diff)
downloadopenttd-e4091f16d0dcc1bcd7330d8fe117bf4019c5304f.tar.xz
(svn r20751) -Fix: IndustryCargoesWindow::HousesCanAccept() did not check climate-availability of houses.
Diffstat (limited to 'src')
-rw-r--r--src/industry_gui.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/industry_gui.cpp b/src/industry_gui.cpp
index 3720a7c5c..b29f1186d 100644
--- a/src/industry_gui.cpp
+++ b/src/industry_gui.cpp
@@ -2034,12 +2034,20 @@ struct IndustryCargoesWindow : public Window {
*/
static bool HousesCanAccept(const CargoID *cargoes, uint length)
{
+ HouseZones climate_mask;
+ switch (_settings_game.game_creation.landscape) {
+ case LT_TEMPERATE: climate_mask = HZ_TEMP; break;
+ case LT_ARCTIC: climate_mask = HZ_SUBARTC_ABOVE | HZ_SUBARTC_BELOW; break;
+ case LT_TROPIC: climate_mask = HZ_SUBTROPIC; break;
+ case LT_TOYLAND: climate_mask = HZ_TOYLND; break;
+ default: NOT_REACHED();
+ }
for (uint i = 0; i < length; i++) {
if (cargoes[i] == INVALID_CARGO) continue;
for (uint h = 0; h < HOUSE_MAX; h++) {
HouseSpec *hs = HouseSpec::Get(h);
- if (!hs->enabled) continue;
+ if (!hs->enabled || !(hs->building_availability & climate_mask)) continue;
for (uint j = 0; j < lengthof(hs->accepts_cargo); j++) {
if (cargoes[i] == hs->accepts_cargo[j]) return true;