update budget produce: Count loaded civilians for TECH_POP
When option TECH_POP is enabled, the cost of tech increases when civilian population exceeds 50000. Only civilians in old-owned sectors count. This differs from education and happiness, where civilians loaded on ships and land units count, too. The update counts population for TECH_POP with count_pop(). This is an extra pass over all sectors. produce also uses count_pop(), once per tech center examined. Wasteful. budget avoids count_pop(): it uses tax()'s civilian count. More efficient, but the difference to the update is ugly. Change TECH_POP to use the same civilian count as education and happiness, i.e. count civilians on ships and land units, too. This count is available in nat_budget[] in time for produce(): it's computed by tax() and by ship and land unit maintenance. So use it there. This takes care of the update and budget. produce doesn't run enough update code to do the same. Keep calling count_pop() there. Update it to match the update, and give it internal linkage. Duplicating update's workings there is ugly, so mark it FIXME. Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
This commit is contained in:
parent
14f3bd9717
commit
4be4a2c540
6 changed files with 29 additions and 18 deletions
|
@ -73,7 +73,6 @@ struct budget {
|
|||
|
||||
/* main.c */
|
||||
extern struct budget nat_budget[MAXNOC];
|
||||
extern int tpops[MAXNOC];
|
||||
/* nat.c */
|
||||
extern float levels[MAXNOC][4];
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue