mirror of https://github.com/OpenTTD/OpenTTD.git
Fix: [NewGRF] industry variable 66 and object variable 46 clamped the squared-euclidian distance to 16 bit, when they should not.
This commit is contained in:
parent
84aa17cea6
commit
2cf5df2a50
|
@ -286,11 +286,11 @@ static uint32 GetCountAndDistanceOfClosestInstance(byte param_setID, byte layout
|
|||
TileIndex tile = GetNearbyTile(parameter, this->tile, true);
|
||||
return GetTownRadiusGroup(this->industry->town, tile) << 16 | std::min(DistanceManhattan(tile, this->industry->town->xy), 0xFFFFu);
|
||||
}
|
||||
/* Get square of Euclidian distance of closes town */
|
||||
/* Get square of Euclidian distance of closest town */
|
||||
case 0x66: {
|
||||
if (this->tile == INVALID_TILE) break;
|
||||
TileIndex tile = GetNearbyTile(parameter, this->tile, true);
|
||||
return GetTownRadiusGroup(this->industry->town, tile) << 16 | std::min(DistanceSquare(tile, this->industry->town->xy), 0xFFFFu);
|
||||
return DistanceSquare(tile, this->industry->town->xy);
|
||||
}
|
||||
|
||||
/* Count of industry, distance of closest instance
|
||||
|
|
|
@ -303,8 +303,8 @@ static uint32 GetCountAndDistanceOfClosestInstance(byte local_id, uint32 grfid,
|
|||
/* Get town zone and Manhattan distance of closest town */
|
||||
case 0x45: return GetTownRadiusGroup(t, this->tile) << 16 | std::min(DistanceManhattan(this->tile, t->xy), 0xFFFFu);
|
||||
|
||||
/* Get square of Euclidian distance of closes town */
|
||||
case 0x46: return GetTownRadiusGroup(t, this->tile) << 16 | std::min(DistanceSquare(this->tile, t->xy), 0xFFFFu);
|
||||
/* Get square of Euclidian distance of closest town */
|
||||
case 0x46: return DistanceSquare(this->tile, t->xy);
|
||||
|
||||
/* Object colour */
|
||||
case 0x47: return this->obj->colour;
|
||||
|
|
Loading…
Reference in New Issue