/*
* Empire - A multi-player, client/server Internet based war game.
- * Copyright (C) 1986-2000, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ * Copyright (C) 1986-2004, Dave Pare, Jeff Bailey, Thomas Ruschak,
* Ken Stevens, Steve McClure
*
* This program is free software; you can redistribute it and/or modify
#include "gen.h"
#include "common.h"
-extern float levels[MAXNOC][4];
-
void
prepare_sects(int etu, int *bp)
{
- extern long pops[];
register struct sctstr *sp;
struct natstr *np;
int n, civ_tax, uw_tax, mil_pay;
if (opt_FALLOUT) {
if (!player->simulation) {
/* First, we determine which sectors to process fallout in */
- for (n = 0; NULL != (sp = getsectid(n)); n++) {
- if (getvar(V_FALLOUT, (s_char *)sp, EF_SECTOR))
- sp->sct_updated = 1;
- else
- sp->sct_updated = 0;
- }
+ for (n = 0; NULL != (sp = getsectid(n)); n++)
+ sp->sct_updated = sp->sct_fallout != 0;
/* Next, we process the fallout there */
for (n = 0; NULL != (sp = getsectid(n)); n++)
if (sp->sct_updated)
spread_fallout(sp, etu);
/* Next, we decay the fallout */
for (n = 0; NULL != (sp = getsectid(n)); n++)
- if (getvar(V_FALLOUT, (s_char *)sp, EF_SECTOR))
+ if (sp->sct_fallout)
decay_fallout(sp, etu);
}
}
tax(struct sctstr *sp, struct natstr *np, int etu, long *pop, int *civ_tax,
int *uw_tax, int *mil_pay)
{
- int vec[I_MAX + 1];
-
*civ_tax = 0;
*uw_tax = 0;
*mil_pay = 0;
- if (getvec(VT_ITEM, vec, (s_char *)sp, EF_SECTOR) <= 0)
- return;
if (!player->simulation)
- populace(np, sp, vec, etu);
- *civ_tax = (int)(0.5 + vec[I_CIVIL] * sp->sct_effic *
+ populace(np, sp, etu);
+ *civ_tax = (int)(0.5 + sp->sct_item[I_CIVIL] * sp->sct_effic *
etu * money_civ / 100);
/*
* captured civs only pay 1/4 taxes
*/
if (sp->sct_own != sp->sct_oldown)
*civ_tax = *civ_tax / 4;
- *uw_tax = (int)(0.5 + vec[I_UW] * sp->sct_effic *
+ *uw_tax = (int)(0.5 + sp->sct_item[I_UW] * sp->sct_effic *
etu * money_uw / 100);
- *mil_pay = vec[I_MILIT] * etu * money_mil;
+ *mil_pay = sp->sct_item[I_MILIT] * etu * money_mil;
/*
* only non-captured civs add to census for nation
*/
if (sp->sct_oldown == sp->sct_own)
- *pop += vec[I_CIVIL];
+ *pop += sp->sct_item[I_CIVIL];
}
int
for (i = 0; NULL != (sp = getshipp(i)); i++) {
if (!sp->shp_own || sp->shp_own != n)
continue;
- if ((mil = getvar(V_MILIT, (s_char *)sp, EF_SHIP)) > 0)
+ if ((mil = sp->shp_item[I_MILIT]) > 0)
totalmil += mil;
}
for (i = 0; NULL != (lp = getlandp(i)); i++) {
if (!lp->lnd_own || lp->lnd_own != n)
continue;
- if ((mil = getvar(V_MILIT, (s_char *)lp, EF_LAND)) > 0)
+ if ((mil = lp->lnd_item[I_MILIT]) > 0)
totalmil += mil;
}
mil_pay = totalmil * etu * money_mil;
int
bank_income(struct sctstr *sp, int etu)
{
- int vec[I_MAX + 1];
-
- if (getvec(VT_ITEM, vec, (s_char *)sp, EF_SECTOR) <= 0)
- return 0;
- else
- return (int)(vec[I_BAR] * etu * bankint * sp->sct_effic / 100);
+ return (int)(sp->sct_item[I_BAR] * etu * bankint * sp->sct_effic / 100);
}