# HG changeset patch # User belugas # Date 1181325258 0 # Node ID b2871568db926ac25dbbd9d2b3aab22538804960 # Parent e018c792e9b918500035119daf3d48bc17eb77ab (svn r10066) -Codechange: Expose function GetNearbyTile by moving it to newgrf_commons.[cpp|h]. Will be used by industries in a few. diff -r e018c792e9b9 -r b2871568db92 src/newgrf_commons.cpp --- a/src/newgrf_commons.cpp Fri Jun 08 16:53:21 2007 +0000 +++ b/src/newgrf_commons.cpp Fri Jun 08 17:54:18 2007 +0000 @@ -165,3 +165,13 @@ } } +TileIndex GetNearbyTile(byte parameter, TileIndex tile) +{ + int8 x = GB(parameter, 0, 4); + int8 y = GB(parameter, 4, 4); + + if (x >= 8) x -= 16; + if (y >= 8) y -= 16; + + return tile + TileDiffXY(x, y); +} diff -r e018c792e9b9 -r b2871568db92 src/newgrf_commons.h --- a/src/newgrf_commons.h Fri Jun 08 16:53:21 2007 +0000 +++ b/src/newgrf_commons.h Fri Jun 08 17:54:18 2007 +0000 @@ -67,5 +67,6 @@ extern HouseOverrideManager _house_mngr; uint32 GetTerrainType(TileIndex tile); +TileIndex GetNearbyTile(byte parameter, TileIndex tile); #endif /* NEWGRF_COMMONS_H */ diff -r e018c792e9b9 -r b2871568db92 src/newgrf_house.cpp --- a/src/newgrf_house.cpp Fri Jun 08 16:53:21 2007 +0000 +++ b/src/newgrf_house.cpp Fri Jun 08 17:54:18 2007 +0000 @@ -178,6 +178,16 @@ return file->param[parameter]; } +uint32 GetNearbyTileInformation(byte parameter, TileIndex tile) +{ + uint32 tile_type; + + 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); +} + /** * HouseGetVariable(): * @@ -229,20 +239,7 @@ } /* Land info for nearby tiles. */ - case 0x62: { - int8 x = GB(parameter, 0, 4); - int8 y = GB(parameter, 4, 4); - byte tile_type; - - if (x >= 8) x -= 16; - if (y >= 8) y -= 16; - - tile += TileDiffXY(x, y); - - 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); - } + case 0x62: return GetNearbyTileInformation(parameter, tile); /* Read GRF parameter */ case 0x7F: return GetGRFParameter(object->u.house.house_id, parameter);