update: Track oldowned civilians in nat_budget[]

Replace pops[] by nat_budget[].oldowned_civs.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
This commit is contained in:
Markus Armbruster 2016-06-19 12:31:16 +02:00
parent 4a714a37da
commit 6eb4fd3cbf
6 changed files with 13 additions and 22 deletions

View file

@ -47,7 +47,6 @@
#include "update.h"
struct budget nat_budget[MAXNOC];
int pops[MAXNOC];
int tpops[MAXNOC];
void
@ -84,7 +83,6 @@ update_main(void)
* happiness, and printing out the state of the nation)
*/
memset(nat_budget, 0, sizeof(nat_budget));
memset(pops, 0, sizeof(pops));
for (n = 0; n < MAXNOC; n++) {
if (!(np = getnatp(n)))
continue;

View file

@ -149,7 +149,7 @@ prod_nat(int etu)
*/
hap_edu = np->nat_level[NAT_ELEV];
hap_edu = 1.5 - ((hap_edu + 10.0) / (hap_edu + 20.0));
pop = pops[n] + 1;
pop = nat_budget[n].oldowned_civs + 1;
/*
* get per-population happiness and education
* see what the total per-civilian production is

View file

@ -94,7 +94,7 @@ prepare_sects(int etu)
guerrilla(sp);
do_plague(sp, etu);
populace(sp, etu);
tax(sp, etu, &pops[sp->sct_own]);
tax(sp, etu);
if (sp->sct_type == SCT_BANK)
bank_income(sp, etu);
}
@ -105,17 +105,16 @@ prepare_sects(int etu)
}
void
tax(struct sctstr *sp, int etu, int *pop)
tax(struct sctstr *sp, int etu)
{
struct budget *budget = &nat_budget[sp->sct_own];
double civ_tax, uw_tax, mil_pay;
civ_tax = sp->sct_item[I_CIVIL] * etu * money_civ * sp->sct_effic / 100;
/*
* captured civs only pay 1/4 taxes
*/
if (sp->sct_own != sp->sct_oldown)
civ_tax /= 4;
if (sp->sct_own == sp->sct_oldown)
budget->oldowned_civs += sp->sct_item[I_CIVIL];
else
civ_tax /= 4; /* captured civs pay less */
budget->civ.count += sp->sct_item[I_CIVIL];
budget->civ.money += civ_tax;
budget->money += civ_tax;
@ -129,12 +128,6 @@ tax(struct sctstr *sp, int etu, int *pop)
budget->mil.count += sp->sct_item[I_MILIT];
budget->mil.money += mil_pay;
budget->money += mil_pay;
/*
* only non-captured civs add to census for nation
*/
if (sp->sct_oldown == sp->sct_own)
*pop += sp->sct_item[I_CIVIL];
}
void

View file

@ -224,7 +224,7 @@ upd_ship(struct shpstr *sp, int etus, struct bp *bp, int build)
sp->shp_pstage = pstage;
sp->shp_ptime = ptime;
}
pops[sp->shp_own] += sp->shp_item[I_CIVIL];
budget->oldowned_civs += sp->shp_item[I_CIVIL];
}
}
}