(svn r11301) -Fix: water check when building industries didn't work
authorglx
Fri, 19 Oct 2007 21:05:25 +0000
changeset 7756 646255a72a89
parent 7755 7038d5001e0a
child 7757 3e63b119a5bf
(svn r11301) -Fix: water check when building industries didn't work
src/industry_cmd.cpp
--- a/src/industry_cmd.cpp	Thu Oct 18 20:35:59 2007 +0000
+++ b/src/industry_cmd.cpp	Fri Oct 19 21:05:25 2007 +0000
@@ -1228,24 +1228,15 @@
 
 			IndustyBehaviour 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->callback_flags, CBM_INDT_SHAPE_CHECK)) {
 				custom_shape = true;
 				if (!PerformIndustryTileSlopeCheck(tile, cur_tile, its, type, gfx, itspec_index)) return false;
 			} else {
-				if (ind_behav & INDUSTRYBEH_BUILT_ONWATER) {
-					/* As soon as the tile is not water, bail out.
-					* But that does not mean the search is over.  You have
-					* to make sure every tile of the industry will be only water*/
-					if (!IsWaterTile(cur_tile)) return false;
-				} else {
-					Slope tileh;
-
-					if (IsWaterTile(cur_tile)) return false;
-
-					tileh = GetTileSlope(cur_tile, NULL);
-
-					refused_slope |= IsSlopeRefused(tileh, its->slopes_refused);
-				}
+				Slope tileh = GetTileSlope(cur_tile, NULL);
+				refused_slope |= IsSlopeRefused(tileh, its->slopes_refused);
 			}
 
 			if (ind_behav & INDUSTRYBEH_ONLY_INTOWN) {