summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorfrosch <frosch@openttd.org>2011-01-09 13:53:05 +0000
committerfrosch <frosch@openttd.org>2011-01-09 13:53:05 +0000
commit8ffc288901163dd49e69938bb49930a5db6a2d34 (patch)
treeaaa30ef880ef37941109df50be3a09fadc3b77a1 /src
parent716f4e924e0d361cfcc01045ab5b78a0f6ca38cc (diff)
downloadopenttd-8ffc288901163dd49e69938bb49930a5db6a2d34.tar.xz
(svn r21745) -Fix: [NewGRF] Canal variable 80 shall return consistent heights within a lock.
Diffstat (limited to 'src')
-rw-r--r--src/newgrf_canal.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/newgrf_canal.cpp b/src/newgrf_canal.cpp
index 2b17fcb5e..4d28d3cef 100644
--- a/src/newgrf_canal.cpp
+++ b/src/newgrf_canal.cpp
@@ -47,7 +47,12 @@ static uint32 CanalGetVariable(const ResolverObject *object, byte variable, byte
switch (variable) {
/* Height of tile */
- case 0x80: return GetTileZ(tile) / TILE_HEIGHT;
+ case 0x80: {
+ uint z = GetTileZ(tile) / TILE_HEIGHT;
+ /* Return consistent height within locks */
+ if (IsTileType(tile, MP_WATER) && IsLock(tile) && GetSection(tile) == LOCK_UPPER) z--;
+ return z;
+ }
/* Terrain type */
case 0x81: return GetTerrainType(tile);