diff --git a/src/newgrf_object.cpp b/src/newgrf_object.cpp index 026f77f07c..7cef121d96 100644 --- a/src/newgrf_object.cpp +++ b/src/newgrf_object.cpp @@ -334,10 +334,10 @@ static uint32 GetCountAndDistanceOfClosestInstance(uint32 local_id, uint32 grfid case 0x44: return GetTileOwner(this->tile); /* 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); + case 0x45: return (t == nullptr) ? 0 : (GetTownRadiusGroup(t, this->tile) << 16 | std::min(DistanceManhattan(this->tile, t->xy), 0xFFFFu)); /* Get square of Euclidian distance of closest town */ - case 0x46: return DistanceSquare(this->tile, t->xy); + case 0x46: return (t == nullptr) ? 0 : DistanceSquare(this->tile, t->xy); /* Object colour */ case 0x47: return this->obj->colour;