diff options
author | frosch <frosch@openttd.org> | 2011-01-09 13:53:05 +0000 |
---|---|---|
committer | frosch <frosch@openttd.org> | 2011-01-09 13:53:05 +0000 |
commit | 8ffc288901163dd49e69938bb49930a5db6a2d34 (patch) | |
tree | aaa30ef880ef37941109df50be3a09fadc3b77a1 | |
parent | 716f4e924e0d361cfcc01045ab5b78a0f6ca38cc (diff) | |
download | openttd-8ffc288901163dd49e69938bb49930a5db6a2d34.tar.xz |
(svn r21745) -Fix: [NewGRF] Canal variable 80 shall return consistent heights within a lock.
-rw-r--r-- | src/newgrf_canal.cpp | 7 |
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); |