(svn r4027) Remove another call to FindLandscapeHeightByTile()
authortron
Wed, 22 Mar 2006 19:04:04 +0000
changeset 3296 34064bbe27a5
parent 3295 39a2c60c23e9
child 3297 b2b8cf7364c9
(svn r4027) Remove another call to FindLandscapeHeightByTile()
industry_cmd.c
--- a/industry_cmd.c	Wed Mar 22 16:37:59 2006 +0000
+++ b/industry_cmd.c	Wed Mar 22 19:04:04 2006 +0000
@@ -1283,8 +1283,6 @@
 
 static bool CheckIfIndustryTilesAreFree(TileIndex tile, const IndustryTileTable* it, int type, const Town* t)
 {
-	TileInfo ti;
-
 	_error_message = STR_0239_SITE_UNSUITABLE;
 
 	do {
@@ -1295,27 +1293,31 @@
 			return false;
 		}
 
-		FindLandscapeHeightByTile(&ti, cur_tile);
-
 		if (it->map5 == 0xFF) {
-			if (ti.type != MP_WATER || ti.tileh != 0) return false;
+			if (!IsTileType(cur_tile, MP_WATER) ||
+					GetTileSlope(cur_tile, NULL) != 0) {
+				return false;
+			}
 		} else {
 			if (!EnsureNoVehicle(cur_tile)) return false;
 
 			if (type == IT_OIL_RIG)  {
-				if (ti.type != MP_WATER || ti.map5 != 0) return false;
+				if (!IsTileType(cur_tile, MP_WATER) || _m[cur_tile].m5 != 0) return false;
 			} else {
-				if (ti.type == MP_WATER && ti.map5 == 0) return false;
-				if (IsSteepTileh(ti.tileh))
-					return false;
+				uint tileh;
 
-				if (ti.tileh != 0) {
+				if (IsTileType(cur_tile, MP_WATER) && _m[cur_tile].m5 == 0) return false;
+
+				tileh = GetTileSlope(cur_tile, NULL);
+				if (IsSteepTileh(tileh)) return false;
+
+				if (tileh != 0) {
 					int t;
 					byte bits = _industry_map5_bits[it->map5];
 
 					if (bits & 0x10) return false;
 
-					t = ~ti.tileh;
+					t = ~tileh;
 
 					if (bits & 1 && (t & (1 + 8))) return false;
 					if (bits & 2 && (t & (4 + 8))) return false;
@@ -1324,20 +1326,20 @@
 				}
 
 				if (type == IT_BANK) {
-					if (ti.type != MP_HOUSE || t->population < 1200) {
+					if (!IsTileType(cur_tile, MP_HOUSE) || t->population < 1200) {
 						_error_message = STR_029D_CAN_ONLY_BE_BUILT_IN_TOWNS;
 						return false;
 					}
 				} else if (type == IT_BANK_2) {
-					if (ti.type != MP_HOUSE) {
+					if (!IsTileType(cur_tile, MP_HOUSE)) {
 						_error_message = STR_030D_CAN_ONLY_BE_BUILT_IN_TOWNS;
 						return false;
 					}
 				} else if (type == IT_TOY_SHOP) {
 					if (DistanceMax(t->xy, cur_tile) > 9) return false;
-					if (ti.type != MP_HOUSE) goto do_clear;
+					if (!IsTileType(cur_tile, MP_HOUSE)) goto do_clear;
 				} else if (type == IT_WATER_TOWER) {
-					if (ti.type != MP_HOUSE) {
+					if (!IsTileType(cur_tile, MP_HOUSE)) {
 						_error_message = STR_0316_CAN_ONLY_BE_BUILT_IN_TOWNS;
 						return false;
 					}