diff options
author | peter1138 <peter1138@openttd.org> | 2008-01-22 22:17:28 +0000 |
---|---|---|
committer | peter1138 <peter1138@openttd.org> | 2008-01-22 22:17:28 +0000 |
commit | da53070a38eae085f70fee28aecd67f22df1c9f2 (patch) | |
tree | 14109ed3e9bb1cccb49d11a1a960f2d9ff8d66a6 | |
parent | 3a423a8747408d63343cca83b06675dd927c0ae6 (diff) | |
download | openttd-da53070a38eae085f70fee28aecd67f22df1c9f2.tar.xz |
(svn r11952) -Fix (r11926): Prevent industries from being built on rivers, unless they require water.
-rw-r--r-- | src/industry_cmd.cpp | 2 | ||||
-rw-r--r-- | src/water_map.h | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/industry_cmd.cpp b/src/industry_cmd.cpp index 6d7eda55c..967c1d385 100644 --- a/src/industry_cmd.cpp +++ b/src/industry_cmd.cpp @@ -1226,7 +1226,7 @@ static bool CheckIfIndustryTilesAreFree(TileIndex tile, const IndustryTileTable IndustryBehaviour ind_behav = GetIndustrySpec(type)->behaviour; /* Perform land/water check if not disabled */ - if (!HasBit(its->slopes_refused, 5) && (IsWaterTile(cur_tile) == !(ind_behav & INDUSTRYBEH_BUILT_ONWATER))) return false; + if (!HasBit(its->slopes_refused, 5) && ((IsWaterTile(cur_tile) || IsRiverTile(cur_tile)) == !(ind_behav & INDUSTRYBEH_BUILT_ONWATER))) return false; if (HasBit(its->callback_flags, CBM_INDT_SHAPE_CHECK)) { custom_shape = true; diff --git a/src/water_map.h b/src/water_map.h index 93ec67a9d..d7d0b0ba8 100644 --- a/src/water_map.h +++ b/src/water_map.h @@ -72,6 +72,11 @@ static inline bool IsWaterTile(TileIndex t) return IsTileType(t, MP_WATER) && IsWater(t); } +static inline bool IsRiverTile(TileIndex t) +{ + return IsTileType(t, MP_WATER) && IsRiver(t); +} + static inline TileIndex GetOtherShipDepotTile(TileIndex t) { return t + (HasBit(_m[t].m5, 0) ? -1 : 1) * (HasBit(_m[t].m5, 1) ? TileDiffXY(0, 1) : TileDiffXY(1, 0)); |