From 55dcbaa8da4c14b124092ff109a912c8e7e5563e Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Sun, 5 Jun 2016 12:15:58 +0200 Subject: [PATCH] budget: Fix level prod. forecast when required level is too low When the required level is too low for production, produce() returns early. Except when simulating. Messed up when Empire 3 made the update code work for budget. This can make budget show level production even when it's not actually possible. In the stock game, this can happen for tech and research, which require education > 5.0. Signed-off-by: Markus Armbruster --- src/lib/update/produce.c | 9 +++++---- tests/update/04-4 | 1 - tests/update/journal.log | 7 +++---- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/lib/update/produce.c b/src/lib/update/produce.c index 38fafef1..632668f8 100644 --- a/src/lib/update/produce.c +++ b/src/lib/update/produce.c @@ -96,10 +96,11 @@ produce(struct natstr *np, struct sctstr *sp, int *cost) return 0; prodeff = prod_eff(sp->sct_type, np->nat_level[product->p_nlndx]); - if (prodeff <= 0.0 && !player->simulation) { - wu(0, sp->sct_own, - "%s level too low to produce in %s (need %d)\n", - levelnames[product->p_nlndx], ownxy(sp), product->p_nlmin); + if (prodeff <= 0.0) { + if (!player->simulation) + wu(0, sp->sct_own, + "%s level too low to produce in %s (need %d)\n", + levelnames[product->p_nlndx], ownxy(sp), product->p_nlmin); return 0; } /* diff --git a/tests/update/04-4 b/tests/update/04-4 index d6493994..1fae53cf 100644 --- a/tests/update/04-4 +++ b/tests/update/04-4 @@ -1,6 +1,5 @@ budget | BUG: stopped city pays no maintenance -| BUG: tech despite insufficient edu | TODO is it accurate? production * | TODO is it accurate? diff --git a/tests/update/journal.log b/tests/update/journal.log index 093d04e1..245744dc 100644 --- a/tests/update/journal.log +++ b/tests/update/journal.log @@ -317,18 +317,17 @@ Play#4 input budget Play#4 command budget Play#4 output Play#4 1 Sector Type Production Cost - Play#4 output Play#4 1 technical center 0 tech 300 Play#4 output Play#4 1 bank 4 bars 40 Play#4 output Play#4 1 Ship maintenance 10 ships 300 Play#4 output Play#4 1 Unit maintenance 10 units 600 Play#4 output Play#4 1 Military payroll 1110 mil, 0 res 5552 - Play#4 output Play#4 1 Total expenses......................................................6792 + Play#4 output Play#4 1 Total expenses......................................................6492 Play#4 output Play#4 1 Income from taxes 23604 civs, 4100 uws +212 Play#4 output Play#4 1 Income from bars 100 bars +1500 Play#4 output Play#4 1 Total income.......................................................+1712 Play#4 output Play#4 1 Balance forward 25000 - Play#4 output Play#4 1 Estimated delta -5080 - Play#4 output Play#4 1 Estimated new treasury.............................................19920 + Play#4 output Play#4 1 Estimated delta -4780 + Play#4 output Play#4 1 Estimated new treasury.............................................20220 Play#4 output Play#4 6 0 99 Play#4 input production * Play#4 command production