diff --git a/src/landscape.cpp b/src/landscape.cpp
index 6bad6e8a49..957f7b1857 100644
--- a/src/landscape.cpp
+++ b/src/landscape.cpp
@@ -919,8 +919,3 @@ TileIndex AdjustTileCoordRandomly(TileIndex a, byte rng)
 		TileY(a) + (GB(r, 8, 8) * rn * 2 >> 8) - rn
 	));
 }
-
-bool IsValidTile(TileIndex tile)
-{
-	return (tile < MapSizeX() * MapMaxY() && TileX(tile) != MapMaxX());
-}
diff --git a/src/landscape.h b/src/landscape.h
index 178579efb2..00fe99706f 100644
--- a/src/landscape.h
+++ b/src/landscape.h
@@ -26,8 +26,6 @@ byte GetSnowLine(void);
 byte HighestSnowLine(void);
 void ClearSnowLine(void);
 
-bool IsValidTile(TileIndex tile);
-
 uint GetPartialZ(int x, int y, Slope corners);
 uint GetSlopeZ(int x, int y);
 void GetSlopeZOnEdge(Slope tileh, DiagDirection edge, int *z1, int *z2);
diff --git a/src/tile_map.h b/src/tile_map.h
index 2723443fb9..108cc5adba 100644
--- a/src/tile_map.h
+++ b/src/tile_map.h
@@ -106,6 +106,17 @@ static inline bool IsTileType(TileIndex tile, TileType type)
 	return GetTileType(tile) == type;
 }
 
+/**
+ * Checks if a tile is valid
+ *
+ * @param tile The tile to check
+ * @return True if the tile is on the map and not one of MP_VOID.
+ */
+static inline bool IsValidTile(TileIndex tile)
+{
+	return tile < MapSize() && !IsTileType(tile, MP_VOID);
+}
+
 /**
  * Returns the owner of a tile
  *
@@ -115,14 +126,13 @@ static inline bool IsTileType(TileIndex tile, TileType type)
  *
  * @param tile The tile to check
  * @return The owner of the tile
- * @pre tile < MapSize()
- * @pre The type of the tile must not be MP_HOUSE, MP_VOID and MP_INDUSTRY
+ * @pre IsValidTile(tile)
+ * @pre The type of the tile must not be MP_HOUSE and MP_INDUSTRY
  */
 static inline Owner GetTileOwner(TileIndex tile)
 {
-	assert(tile < MapSize());
+	assert(IsValidTile(tile));
 	assert(!IsTileType(tile, MP_HOUSE));
-	assert(!IsTileType(tile, MP_VOID));
 	assert(!IsTileType(tile, MP_INDUSTRY));
 
 	return (Owner)_m[tile].m1;
@@ -136,14 +146,13 @@ static inline Owner GetTileOwner(TileIndex tile)
  *
  * @param tile The tile to change the owner status.
  * @param owner The new owner.
- * @pre tile < MapSize()
- * @pre The type of the tile must not be MP_HOUSE, MP_VOID and MP_INDUSTRY
+ * @pre IsValidTile(tile)
+ * @pre The type of the tile must not be MP_HOUSE and MP_INDUSTRY
  */
 static inline void SetTileOwner(TileIndex tile, Owner owner)
 {
-	assert(tile < MapSize());
+	assert(IsValidTile(tile));
 	assert(!IsTileType(tile, MP_HOUSE));
-	assert(!IsTileType(tile, MP_VOID));
 	assert(!IsTileType(tile, MP_INDUSTRY));
 
 	_m[tile].m1 = owner;
@@ -165,7 +174,7 @@ static inline bool IsTileOwner(TileIndex tile, Owner owner)
  * Set the tropic zone
  * @param tile the tile to set the zone of
  * @param type the new type
- * @pre assert(tile < MapSize());
+ * @pre tile < MapSize()
  */
 static inline void SetTropicZone(TileIndex tile, TropicZone type)
 {
@@ -176,7 +185,7 @@ static inline void SetTropicZone(TileIndex tile, TropicZone type)
 /**
  * Get the tropic zone
  * @param tile the tile to get the zone of
- * @pre assert(tile < MapSize());
+ * @pre tile < MapSize()
  * @return the zone type
  */
 static inline TropicZone GetTropicZone(TileIndex tile)