From 27a6e2197582756f9502edd43e50d84b29bbec1d Mon Sep 17 00:00:00 2001 From: truelight Date: Fri, 22 Jun 2007 23:53:16 +0000 Subject: [PATCH] (svn r10290) -Fix: with smooth_economy, when industry production hit 32, it stayed there for ever. Give it some chance to get out of that uber-lowness (although it is a very slim chance, at least it has one) --- src/industry_cmd.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/industry_cmd.cpp b/src/industry_cmd.cpp index d7f7d0566b..4ae71a1a31 100644 --- a/src/industry_cmd.cpp +++ b/src/industry_cmd.cpp @@ -1643,7 +1643,11 @@ static void ExtChangeIndustryProduction(Industry *i) if (CHANCE16I(20, 1024, r)) new_prod -= ((RandomRange(50) + 10) * old_prod) >> 8; if (CHANCE16I(20 + (i->last_month_pct_transported[j] * 20 >> 8), 1024, r >> 16)) - new_prod += ((RandomRange(50) + 10) * old_prod) >> 8; + /* old_prod gets stuck at '4' because 60 * 4 / 256 < 1, so in that case + * increase the odds a bit for increasing, so at least it can escape + * the production of '4' at some time in the future (instead of being + * stuck there for ever). */ + new_prod += ((RandomRange(old_prod == 4 ? 55 : 50) + 10) * old_prod) >> 8; new_prod = clamp(new_prod, 0, 255); if (new_prod == old_prod) {