File diff r8029:8fa304783822 → r8030:87f5c8990099
src/industry_cmd.cpp
Show inline comments
 
@@ -1163,56 +1163,56 @@ static bool CheckSuitableIndustryPos(Til
 
static const Town *CheckMultipleIndustryInTown(TileIndex tile, int type)
 
{
 
	const Town *t;
 
	const Industry *i;
 

	
 
	t = ClosestTownFromTile(tile, (uint)-1);
 

	
 
	if (_patches.multiple_industry_per_town) return t;
 

	
 
	FOR_ALL_INDUSTRIES(i) {
 
		if (i->type == (byte)type &&
 
				i->town == t) {
 
			_error_message = STR_0287_ONLY_ONE_ALLOWED_PER_TOWN;
 
			return NULL;
 
		}
 
	}
 

	
 
	return t;
 
}
 

	
 
bool IsSlopeRefused(Slope current, Slope refused)
 
{
 
	if (IsSteepSlope(current)) return true;
 
	if (current != SLOPE_FLAT) {
 
		if (refused & SLOPE_STEEP) return true;
 
		if (IsSteepSlope(refused)) return true;
 

	
 
		Slope t = ComplementSlope(current);
 

	
 
		if (refused & 1 && (t & SLOPE_NW)) return false;
 
		if (refused & 2 && (t & SLOPE_NE)) return false;
 
		if (refused & 4 && (t & SLOPE_SW)) return false;
 
		if (refused & 8 && (t & SLOPE_SE)) return false;
 
		if (refused & SLOPE_W && (t & SLOPE_NW)) return true;
 
		if (refused & SLOPE_S && (t & SLOPE_NE)) return true;
 
		if (refused & SLOPE_E && (t & SLOPE_SW)) return true;
 
		if (refused & SLOPE_N && (t & SLOPE_SE)) return true;
 
	}
 

	
 
	return false;
 
}
 

	
 
static bool CheckIfIndustryTilesAreFree(TileIndex tile, const IndustryTileTable *it, uint itspec_index, int type, bool *custom_shape_check = NULL)
 
{
 
	_error_message = STR_0239_SITE_UNSUITABLE;
 
	bool refused_slope = false;
 
	bool custom_shape = false;
 

	
 
	do {
 
		IndustryGfx gfx = GetTranslatedIndustryTileID(it->gfx);
 
		TileIndex cur_tile = tile + ToTileIndexDiff(it->ti);
 

	
 
		if (!IsValidTile(cur_tile)) {
 
			if (gfx == GFX_WATERTILE_SPECIALCHECK) continue;
 
			return false;
 
		}
 

	
 
		if (gfx == GFX_WATERTILE_SPECIALCHECK) {
 
			if (!IsTileType(cur_tile, MP_WATER) ||
 
					GetTileSlope(cur_tile, NULL) != SLOPE_FLAT) {
 
				return false;