summaryrefslogtreecommitdiff
path: root/src/newgrf_commons.cpp
diff options
context:
space:
mode:
authorfrosch <frosch@openttd.org>2010-07-11 17:28:19 +0000
committerfrosch <frosch@openttd.org>2010-07-11 17:28:19 +0000
commit72ee11a7c63211a3ffe34c834d7ca579d83af1f4 (patch)
tree6e2d252279d5c894d96fdde8c89d4af7186d4b68 /src/newgrf_commons.cpp
parent19fb8ba6f88d2f684546e93388418f3757d80612 (diff)
downloadopenttd-72ee11a7c63211a3ffe34c834d7ca579d83af1f4.tar.xz
(svn r20126) -Fix [FS#3883]: Make railtype Terrain Type variable aware of RAIL_GROUND_HALF_SNOW. That is, resolve the sprites for upper and lower part of the foundation independently.
Diffstat (limited to 'src/newgrf_commons.cpp')
-rw-r--r--src/newgrf_commons.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/newgrf_commons.cpp b/src/newgrf_commons.cpp
index ec4810461..821d1362d 100644
--- a/src/newgrf_commons.cpp
+++ b/src/newgrf_commons.cpp
@@ -280,9 +280,10 @@ void IndustryTileOverrideManager::SetEntitySpec(const IndustryTileSpec *its)
/** Function used by houses (and soon industries) to get information
* on type of "terrain" the tile it is queries sits on.
* @param tile TileIndex of the tile been queried
+ * @param upper_halftile If true, query upper halftile in case of rail tiles.
* @return value corresponding to the grf expected format:
* Terrain type: 0 normal, 1 desert, 2 rainforest, 4 on or above snowline */
-uint32 GetTerrainType(TileIndex tile)
+uint32 GetTerrainType(TileIndex tile, bool upper_halftile)
{
switch (_settings_game.game_creation.landscape) {
case LT_TROPIC: return GetTropicZone(tile);
@@ -295,7 +296,7 @@ uint32 GetTerrainType(TileIndex tile)
case MP_RAILWAY: {
RailGroundType ground = GetRailGroundType(tile);
- has_snow = (ground == RAIL_GROUND_ICE_DESERT);
+ has_snow = (ground == RAIL_GROUND_ICE_DESERT || (upper_halftile && ground == RAIL_GROUND_HALF_SNOW));
break;
}