(svn r10066) -Codechange: Expose function GetNearbyTile by moving it to newgrf_commons.[cpp|h]. Will be used by industries in a few.
authorbelugas
Fri, 08 Jun 2007 17:54:18 +0000
changeset 7323 b2871568db92
parent 7322 e018c792e9b9
child 7324 c1ef383b5d12
(svn r10066) -Codechange: Expose function GetNearbyTile by moving it to newgrf_commons.[cpp|h]. Will be used by industries in a few.
src/newgrf_commons.cpp
src/newgrf_commons.h
src/newgrf_house.cpp
--- a/src/newgrf_commons.cpp	Fri Jun 08 16:53:21 2007 +0000
+++ b/src/newgrf_commons.cpp	Fri Jun 08 17:54:18 2007 +0000
@@ -165,3 +165,13 @@
 	}
 }
 
+TileIndex GetNearbyTile(byte parameter, TileIndex tile)
+{
+	int8 x = GB(parameter, 0, 4);
+	int8 y = GB(parameter, 4, 4);
+
+	if (x >= 8) x -= 16;
+	if (y >= 8) y -= 16;
+
+	return tile + TileDiffXY(x, y);
+}
--- a/src/newgrf_commons.h	Fri Jun 08 16:53:21 2007 +0000
+++ b/src/newgrf_commons.h	Fri Jun 08 17:54:18 2007 +0000
@@ -67,5 +67,6 @@
 extern HouseOverrideManager _house_mngr;
 
 uint32 GetTerrainType(TileIndex tile);
+TileIndex GetNearbyTile(byte parameter, TileIndex tile);
 
 #endif /* NEWGRF_COMMONS_H */
--- a/src/newgrf_house.cpp	Fri Jun 08 16:53:21 2007 +0000
+++ b/src/newgrf_house.cpp	Fri Jun 08 17:54:18 2007 +0000
@@ -178,6 +178,16 @@
 	return file->param[parameter];
 }
 
+uint32 GetNearbyTileInformation(byte parameter, TileIndex tile)
+{
+	uint32 tile_type;
+
+	tile = GetNearbyTile(parameter, tile);
+	tile_type = GetTerrainType(tile) << 2 | (IsTileType(tile, MP_WATER) ? 1 : 0) << 1;
+
+	return GetTileType(tile) << 24 | (TileHeight(tile) * 8) << 16 | tile_type << 8 | GetTileSlope(tile, NULL);
+}
+
 /**
  * HouseGetVariable():
  *
@@ -229,20 +239,7 @@
 		}
 
 		/* Land info for nearby tiles. */
-		case 0x62: {
-			int8 x = GB(parameter, 0, 4);
-			int8 y = GB(parameter, 4, 4);
-			byte tile_type;
-
-			if (x >= 8) x -= 16;
-			if (y >= 8) y -= 16;
-
-			tile += TileDiffXY(x, y);
-
-			tile_type = GetTerrainType(tile) << 2 | (IsTileType(tile, MP_WATER) ? 1 : 0) << 1;
-
-			return GetTileType(tile) << 24 | (TileHeight(tile) * 8) << 16 | tile_type << 8 | GetTileSlope(tile, NULL);
-		}
+		case 0x62: return GetNearbyTileInformation(parameter, tile);
 
 		/* Read GRF parameter */
 		case 0x7F: return GetGRFParameter(object->u.house.house_id, parameter);