(svn r27574) -Fix [FS#6432]: The house id as returned by house variable 66 was incorrect when querying neighboured tiles. (adf88)

pull/8/head
frosch 8 years ago
parent 6fafa3d93a
commit 1124c15ccd

@ -399,7 +399,8 @@ static uint32 GetDistanceFromNearbyHouse(uint8 parameter, TileIndex tile, HouseI
case 0x66: { case 0x66: {
TileIndex testtile = GetNearbyTile(parameter, this->tile); TileIndex testtile = GetNearbyTile(parameter, this->tile);
if (!IsTileType(testtile, MP_HOUSE)) return 0xFFFFFFFF; if (!IsTileType(testtile, MP_HOUSE)) return 0xFFFFFFFF;
HouseSpec *hs = HouseSpec::Get(GetHouseType(testtile)); HouseID nearby_house_id = GetHouseType(testtile);
HouseSpec *hs = HouseSpec::Get(nearby_house_id);
/* Information about the grf local classid if the house has a class */ /* Information about the grf local classid if the house has a class */
uint houseclass = 0; uint houseclass = 0;
if (hs->class_id != HOUSE_NO_CLASS) { if (hs->class_id != HOUSE_NO_CLASS) {
@ -408,8 +409,8 @@ static uint32 GetDistanceFromNearbyHouse(uint8 parameter, TileIndex tile, HouseI
} }
/* old house type or grf-local houseid */ /* old house type or grf-local houseid */
uint local_houseid = 0; uint local_houseid = 0;
if (this->house_id < NEW_HOUSE_OFFSET) { if (nearby_house_id < NEW_HOUSE_OFFSET) {
local_houseid = this->house_id; local_houseid = nearby_house_id;
} else { } else {
local_houseid = (hs->grf_prop.grffile == this->ro.grffile ? 1 : 2) << 8; local_houseid = (hs->grf_prop.grffile == this->ro.grffile ? 1 : 2) << 8;
local_houseid |= hs->grf_prop.local_id; local_houseid |= hs->grf_prop.local_id;

Loading…
Cancel
Save