(svn r2107) - Codechange: Cleanup (well, mostly tidyup) ExtChangeIndustryProduction(). These randoms are strange.
This commit is contained in:
		| @@ -1681,42 +1681,44 @@ static void ExtChangeIndustryProduction(Industry *i) | |||||||
| 			return; | 			return; | ||||||
|  |  | ||||||
| 		case INDUSTRY_CLOSABLE: | 		case INDUSTRY_CLOSABLE: | ||||||
| 			if ( (byte)(_cur_year - i->last_prod_year) < 5 || !CHANCE16(1,180)) | 			if ((byte)(_cur_year - i->last_prod_year) < 5 || !CHANCE16(1, 180)) | ||||||
| 				closeit = false; | 				closeit = false; | ||||||
| 			break; | 			break; | ||||||
|  |  | ||||||
| 		default: /* INDUSTRY_PRODUCTION */ | 		default: /* INDUSTRY_PRODUCTION */ | ||||||
| 			for (j=0; j != 2 && i->produced_cargo[j]!=255; j++){ | 			for (j = 0; j < 2 && i->produced_cargo[j] != 255; j++){ | ||||||
| 				uint32 r; | 				uint32 r = Random(); | ||||||
| 				int change,percent,old; | 				int old, new, percent; | ||||||
| 				int mag; | 				int mag; | ||||||
|  |  | ||||||
| 				change = old = i->production_rate[j]; | 				new = old = i->production_rate[j]; | ||||||
| 				if (CHANCE16R(20,1024,r))change -= ((RandomRange(50) + 10)*old) >> 8; | 				if (CHANCE16I(20, 1024, r)) | ||||||
| 				if (CHANCE16I(20+(i->pct_transported[j]*20>>8),1024,r>>16)) change += ((RandomRange(50) + 10)*old) >> 8; | 					new -= ((RandomRange(50) + 10) * old) >> 8; | ||||||
|  | 				if (CHANCE16I(20 + (i->pct_transported[j] * 20 >> 8), 1024, r >> 16)) | ||||||
|  | 					new += ((RandomRange(50) + 10) * old) >> 8; | ||||||
|  |  | ||||||
| 				// make sure it doesn't exceed 255 or goes below 0 | 				// make sure it doesn't exceed 255 or goes below 0 | ||||||
| 				change = clamp(change, 0, 255); | 				new = clamp(new, 0, 255); | ||||||
| 				if (change == old) { | 				if (new == old) { | ||||||
| 					closeit = false; | 					closeit = false; | ||||||
| 					continue; | 					continue; | ||||||
| 				} | 				} | ||||||
|  |  | ||||||
| 				percent = change*100/old - 100; | 				percent = new * 100 / old - 100; | ||||||
| 				i->production_rate[j] = change; | 				i->production_rate[j] = new; | ||||||
|  |  | ||||||
| 				if (change >= _industry_spec[i->type].production_rate[j]/4) | 				if (new >= _industry_spec[i->type].production_rate[j] / 4) | ||||||
| 					closeit = false; | 					closeit = false; | ||||||
|  |  | ||||||
| 				mag = abs(percent); | 				mag = abs(percent); | ||||||
| 				if (mag >= 10) { | 				if (mag >= 10) { | ||||||
| 					SetDParam(3, mag); | 					SetDParam(3, mag); | ||||||
| 					SetDParam(0,_cargoc.names_s[i->produced_cargo[j]]); | 					SetDParam(0, _cargoc.names_s[i->produced_cargo[j]]); | ||||||
| 					SetDParam(1, i->town->index); | 					SetDParam(1, i->town->index); | ||||||
| 					SetDParam(2, i->type + STR_4802_COAL_MINE); | 					SetDParam(2, i->type + STR_4802_COAL_MINE); | ||||||
| 					AddNewsItem(percent>=0 ? STR_INDUSTRY_PROD_GOUP : STR_INDUSTRY_PROD_GODOWN, | 					AddNewsItem(percent >= 0 ? STR_INDUSTRY_PROD_GOUP : STR_INDUSTRY_PROD_GODOWN, | ||||||
| 							NEWS_FLAGS(NM_THIN, NF_VIEWPORT|NF_TILE, NT_ECONOMY, 0), | 					            NEWS_FLAGS(NM_THIN, NF_VIEWPORT|NF_TILE, NT_ECONOMY, 0), | ||||||
| 							i->xy + TILE_XY(1,1), 0); | 					            i->xy + TILE_XY(1,1), 0); | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 			break; | 			break; | ||||||
| @@ -1726,7 +1728,9 @@ static void ExtChangeIndustryProduction(Industry *i) | |||||||
| 		i->prod_level = 0; | 		i->prod_level = 0; | ||||||
| 		SetDParam(1, i->type + STR_4802_COAL_MINE); | 		SetDParam(1, i->type + STR_4802_COAL_MINE); | ||||||
| 		SetDParam(0, i->town->index); | 		SetDParam(0, i->town->index); | ||||||
| 		AddNewsItem(_industry_close_strings[i->type], NEWS_FLAGS(NM_THIN, NF_VIEWPORT|NF_TILE, NT_ECONOMY, 0), i->xy + TILE_XY(1,1), 0); | 		AddNewsItem(_industry_close_strings[i->type], | ||||||
|  | 		            NEWS_FLAGS(NM_THIN, NF_VIEWPORT|NF_TILE, NT_ECONOMY, 0), | ||||||
|  | 		            i->xy + TILE_XY(1,1), 0); | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 pasky
					pasky