Replace getvec() by direct, read-only item access in some cases where

that's obviously correct.
This commit is contained in:
Markus Armbruster 2004-03-05 10:38:58 +00:00
parent 99bfa19a92
commit b1461faea5
23 changed files with 164 additions and 222 deletions

View file

@ -56,11 +56,9 @@ gt_bg_nmbr(int *bp, struct sctstr *sp, int comm)
{
int *wp;
int cm;
int svec[I_MAX + 1];
if ((cm = bud_key[comm]) == 0) {
getvec(VT_ITEM, svec, (s_char *)sp, EF_SECTOR);
return svec[comm];
return sp->sct_item[comm];
} else {
wp = get_wp(bp, sp, cm);
return *wp;
@ -82,16 +80,13 @@ pt_bg_nmbr(int *bp, struct sctstr *sp, int comm, int amount)
void
fill_update_array(int *bp, struct sctstr *sp)
{
int vec[I_MAX + 1];
int i, k;
int *wp;
if (getvec(VT_ITEM, vec, (s_char *)sp, EF_SECTOR) <= 0)
return;
for (i = 1; i <= I_MAX; i++)
if ((k = bud_key[i]) != 0) {
wp = get_wp(bp, sp, k);
*wp = vec[i];
*wp = sp->sct_item[i];
}
wp = get_wp(bp, sp, bud_key[I_MAX + 1]);
*wp = sp->sct_avail;

View file

@ -66,7 +66,6 @@ prod_plane(int etus, int natnum, int *bp, int buildem)
int left, build;
int lcm_needed, hcm_needed;
int mil_needed;
int svec[I_MAX + 1];
int mvec[I_MAX + 1];
int n, k = 0;
struct shpstr *shp;
@ -126,7 +125,6 @@ prod_plane(int etus, int natnum, int *bp, int buildem)
np = getnatp(pp->pln_own);
desc = &plchr[(int)pp->pln_type];
sp = getsectp(pp->pln_x, pp->pln_y);
getvec(VT_ITEM, svec, (s_char *)sp, EF_SECTOR);
mult = 1;
if (np->nat_level[NAT_TLEV] < pp->pln_tech * 0.85)
mult = 2;
@ -178,10 +176,8 @@ prod_plane(int etus, int natnum, int *bp, int buildem)
avail = gt_bg_nmbr(bp, sp, I_MAX + 1) * 100;
if (pp->pln_ship >= 0) {
int vec[I_MAX + 1];
shp = getshipp(pp->pln_ship);
getvec(VT_ITEM, vec, (s_char *)shp, EF_SHIP);
avail += (etus * vec[I_MILIT] / 2);
avail += (etus * shp->shp_item[I_MILIT] / 2);
}
w_p_eff = 20 + (desc->pl_lcm + 2 * desc->pl_hcm);
delta = roundavg((double)avail / w_p_eff);

View file

@ -170,10 +170,5 @@ upd_slmilcosts(natid n, int etu)
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);
}

View file

@ -148,7 +148,6 @@ guerrilla(struct sctstr *sp)
int convert;
natid actor;
natid victim;
int vec[I_MAX + 1];
int tmp;
int min_mil;
int val;
@ -162,16 +161,13 @@ guerrilla(struct sctstr *sp)
move = 0;
if (!sp->sct_che)
return;
if (getvec(VT_ITEM, vec, (s_char *)sp, EF_SECTOR) <= 0)
return;
civ = vec[I_CIVIL];
uw = vec[I_UW];
civ = sp->sct_item[I_CIVIL];
uw = sp->sct_item[I_UW];
victim = sp->sct_own;
actor = sp->sct_oldown;
che = sp->sct_che;
mil = sp->sct_item[I_MILIT];
mil = vec[I_MILIT];
snxtitem_xy(&ni, EF_LAND, sp->sct_x, sp->sct_y);
while (NULL != (lp = (struct lndstr *)nxtitemp(&ni, 0))) {

View file

@ -211,7 +211,6 @@ sail_nav_fleet(struct fltheadstr *fltp)
{
struct fltelemstr *fe;
struct shpstr *sp, ship;
int vec[I_MAX + 1];
struct sctstr *sectp;
int error = 0;
s_char *s, *p;
@ -253,8 +252,7 @@ sail_nav_fleet(struct fltheadstr *fltp)
}
for (fe = fltp->head; fe; fe = fe->next) {
sp = getshipp(fe->num);
getvec(VT_ITEM, vec, (s_char *)sp, EF_SHIP);
if (vec[I_MILIT] == 0 && vec[I_CIVIL] == 0) {
if (sp->shp_item[I_MILIT] == 0 && sp->shp_item[I_CIVIL] == 0) {
wu(0, fltp->own,
" ship #%d (%s) is crewless and can't go on\n",
fe->num, cname(fe->own));