diff options
author | rubidium <rubidium@openttd.org> | 2007-09-04 12:06:38 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2007-09-04 12:06:38 +0000 |
commit | c5cfb281ad92397784e81204f4679942e5463c45 (patch) | |
tree | e6b5e96fc5db5b625057e1eab560f1a6bb9c3e2a | |
parent | a0559dd89eae25d6ba12721b0240f869da97cc26 (diff) | |
download | openttd-c5cfb281ad92397784e81204f4679942e5463c45.tar.xz |
(svn r11042) -Fix [FS#1196]: so newgrf callbacks returned slightly wrong heights (height of nothern corner instead of height of lowest corner). Patch by frosch.
-rw-r--r-- | src/newgrf_canal.cpp | 2 | ||||
-rw-r--r-- | src/newgrf_house.cpp | 4 | ||||
-rw-r--r-- | src/newgrf_industrytiles.cpp | 4 |
3 files changed, 7 insertions, 3 deletions
diff --git a/src/newgrf_canal.cpp b/src/newgrf_canal.cpp index 9a8fe7ea1..b49191de6 100644 --- a/src/newgrf_canal.cpp +++ b/src/newgrf_canal.cpp @@ -42,7 +42,7 @@ static uint32 CanalGetVariable(const ResolverObject *object, byte variable, byte switch (variable) { case 0x80: - return TileHeight(tile); + return GetTileZ(tile) / TILE_HEIGHT; case 0x81: return GetTerrainType(tile); diff --git a/src/newgrf_house.cpp b/src/newgrf_house.cpp index b66d1be38..921c0dc10 100644 --- a/src/newgrf_house.cpp +++ b/src/newgrf_house.cpp @@ -185,7 +185,9 @@ uint32 GetNearbyTileInformation(byte parameter, TileIndex tile) tile = GetNearbyTile(parameter, tile); tile_type = GetTerrainType(tile) << 2 | (IsTileType(tile, MP_WATER) ? 1 : 0) << 1; - return GetTileType(tile) << 24 | (TileHeight(tile) * 8) << 16 | tile_type << 8 | GetTileSlope(tile, NULL); + uint z; + Slope tileh = GetTileSlope(tile, &z); + return GetTileType(tile) << 24 | z << 16 | tile_type << 8 | tileh; } /** diff --git a/src/newgrf_industrytiles.cpp b/src/newgrf_industrytiles.cpp index f3391c214..0fb78bf49 100644 --- a/src/newgrf_industrytiles.cpp +++ b/src/newgrf_industrytiles.cpp @@ -39,7 +39,9 @@ uint32 GetNearbyIndustryTileInformation(byte parameter, TileIndex tile, Industry is_same_industry = (IsTileType(tile, MP_INDUSTRY) && GetIndustryIndex(tile) == index); tile_type = GetTerrainType(tile) << 2 | (IsTileType(tile, MP_WATER) ? 1 : 0) << 1 | (is_same_industry ? 1 : 0); - return GetTileType(tile) << 24 | (TileHeight(tile) * 8) << 16 | tile_type << 8 | GetTileSlope(tile, NULL); + uint z; + Slope tileh = GetTileSlope(tile, &z); + return GetTileType(tile) << 24 | z << 16 | tile_type << 8 | tileh; } /** This is the position of the tile relative to the northernmost tile of the industry. |