Changeset - r9074:e25e3bf09f46
[Not reviewed]
master
0 1 0
glx - 16 years ago 2008-05-01 22:51:53
glx@openttd.org
(svn r12933) -Fix: minor errors related to industries accepted/produced cargo
1 file changed with 8 insertions and 5 deletions:
0 comments (0 inline, 0 general)
src/industry_cmd.cpp
Show inline comments
 
@@ -1391,7 +1391,7 @@ static bool CheckIfFarEnoughFromIndustry
 
	const IndustrySpec *indspec = GetIndustrySpec(type);
 
	const Industry *i;
 

	
 
	if (_patches.same_industry_close && indspec->accepts_cargo[0] == CT_INVALID)
 
	if (_patches.same_industry_close && indspec->IsRawIndustry())
 
		/* Allow primary industries to be placed close to any other industry */
 
		return true;
 

	
 
@@ -1401,7 +1401,7 @@ static bool CheckIfFarEnoughFromIndustry
 

	
 
		/* check if an industry that accepts the same goods is nearby */
 
		if (in_low_distance &&
 
				indspec->accepts_cargo[0] != CT_INVALID && // not a primary industry?
 
				!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
 
@@ -1904,7 +1904,8 @@ static void CanCargoServiceIndustry(Carg
 
	const IndustrySpec *indspec = GetIndustrySpec(ind->type);
 

	
 
	/* Check for acceptance of cargo */
 
	for (uint j = 0; j < lengthof(ind->accepts_cargo) && ind->accepts_cargo[j] != CT_INVALID; j++) {
 
	for (byte j = 0; j < lengthof(ind->accepts_cargo); j++) {
 
		if (ind->accepts_cargo[j] == CT_INVALID) continue;
 
		if (cargo == ind->accepts_cargo[j]) {
 
			if (HasBit(indspec->callback_flags, CBM_IND_REFUSE_CARGO)) {
 
				uint16 res = GetIndustryCallback(CBID_INDUSTRY_REFUSE_CARGO,
 
@@ -1918,7 +1919,8 @@ static void CanCargoServiceIndustry(Carg
 
	}
 

	
 
	/* Check for produced cargo */
 
	for (uint j = 0; j < lengthof(ind->produced_cargo) && ind->produced_cargo[j] != CT_INVALID; j++) {
 
	for (byte j = 0; j < lengthof(ind->produced_cargo); j++) {
 
		if (ind->produced_cargo[j] == CT_INVALID) continue;
 
		if (cargo == ind->produced_cargo[j]) {
 
			*c_produces = true;
 
			break;
 
@@ -2080,7 +2082,8 @@ static void ChangeIndustryProduction(Ind
 

	
 
		if (smooth_economy) {
 
			closeit = true;
 
			for (byte j = 0; j < 2 && i->produced_cargo[j] != CT_INVALID; j++){
 
			for (byte j = 0; j < lengthof(i->produced_cargo); j++) {
 
				if (i->produced_cargo[j] == CT_INVALID) continue;
 
				uint32 r = Random();
 
				int old_prod, new_prod, percent;
 
				/* If over 60% is transported, mult is 1, else mult is -1. */
0 comments (0 inline, 0 general)