(produce): Randomly flushed level production below 1.0 to zero. Fix.

(produce): Assign rounded level production to *ACTUAL instead of
randomly rounded one.
This commit is contained in:
Ron Koenderink 2006-12-26 19:15:41 +00:00
parent f4667a9457
commit 3e2cc8b746

View file

@ -103,16 +103,17 @@ produce(struct natstr *np, struct sctstr *sp, short *vec, int work,
* Adjust produced amount by commodity production ratio * Adjust produced amount by commodity production ratio
*/ */
output = material_consume * prodeff; output = material_consume * prodeff;
actual = roundavg(output);
if (actual <= 0)
return 0;
if (item == I_NONE) { if (item == I_NONE) {
actual = ldround(output, 1);
if (!player->simulation) { if (!player->simulation) {
levels[sp->sct_own][product->p_level] += output; levels[sp->sct_own][product->p_level] += output;
wu((natid)0, sp->sct_own, "%s (%.2f) produced in %s\n", wu((natid)0, sp->sct_own, "%s (%.2f) produced in %s\n",
product->p_name, output, ownxy(sp)); product->p_name, output, ownxy(sp));
} }
} else { } else {
actual = roundavg(output);
if (actual <= 0)
return 0;
if (product->p_nrdep != 0) { if (product->p_nrdep != 0) {
if (*resource * 100 < product->p_nrdep * actual) if (*resource * 100 < product->p_nrdep * actual)
actual = *resource * 100 / product->p_nrdep; actual = *resource * 100 / product->p_nrdep;