From 8ffc288901163dd49e69938bb49930a5db6a2d34 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 9 Jan 2011 13:53:05 +0000 Subject: (svn r21745) -Fix: [NewGRF] Canal variable 80 shall return consistent heights within a lock. --- src/newgrf_canal.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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); -- cgit v1.2.3-54-g00ecf