Changeset - r14870:46fd6b3816ab
[Not reviewed]
master
0 1 0
yexo - 14 years ago 2010-03-19 21:23:54
yexo@openttd.org
(svn r19476) -Codechange: simplify the 'is conflicting industry nearby' check a bit
1 file changed with 7 insertions and 8 deletions:
0 comments (0 inline, 0 general)
src/industry_cmd.cpp
Show inline comments
 
@@ -1527,19 +1527,19 @@ static bool CheckIfCanLevelIndustryPlatf
 
static CommandCost CheckIfFarEnoughFromIndustry(TileIndex tile, int type)
 
{
 
	const IndustrySpec *indspec = GetIndustrySpec(type);
 
	const Industry *i;
 

	
 
	if (_settings_game.economy.same_industry_close && indspec->IsRawIndustry())
 
	if (_settings_game.economy.same_industry_close && indspec->IsRawIndustry()) {
 
		/* Allow primary industries to be placed close to any other industry */
 
		return CommandCost();
 
	}
 

	
 
	const Industry *i;
 
	FOR_ALL_INDUSTRIES(i) {
 
		/* Within 14 tiles from another industry is considered close */
 
		bool in_low_distance = DistanceMax(tile, i->location.tile) <= 14;
 
		if (DistanceMax(tile, i->location.tile) > 14) continue;
 

	
 
		/* check if an industry that accepts the same goods is nearby */
 
		if (in_low_distance &&
 
				!indspec->IsRawIndustry() && // not a primary industry?
 
		if (!indspec->IsRawIndustry() && // not a primary industry?
 
				indspec->accepts_cargo[0] == i->accepts_cargo[0] && (
 
				/* at least one of those options must be true */
 
				_game_mode != GM_EDITOR || // editor must not be stopped
 
@@ -1549,10 +1549,9 @@ static CommandCost CheckIfFarEnoughFromI
 
		}
 

	
 
		/* check if there are any conflicting industry types around */
 
		if ((i->type == indspec->conflicting[0] ||
 
		if (i->type == indspec->conflicting[0] ||
 
				i->type == indspec->conflicting[1] ||
 
				i->type == indspec->conflicting[2]) &&
 
				in_low_distance) {
 
				i->type == indspec->conflicting[2]) {
 
			return_cmd_error(STR_ERROR_INDUSTRY_TOO_CLOSE);
 
		}
 
	}
0 comments (0 inline, 0 general)