Replace getvec() by direct, read-only item access in some cases where
that's obviously correct.
This commit is contained in:
parent
4f6e806975
commit
7d7945c3e9
6 changed files with 28 additions and 51 deletions
|
@ -306,7 +306,6 @@ deity_build_land(int type, coord x, coord y, natid own, int tlev)
|
||||||
struct lchrstr *lp;
|
struct lchrstr *lp;
|
||||||
struct nstr_item nstr;
|
struct nstr_item nstr;
|
||||||
struct natstr *natp;
|
struct natstr *natp;
|
||||||
int lvec[I_MAX + 1];
|
|
||||||
int extend = 1;
|
int extend = 1;
|
||||||
|
|
||||||
natp = getnatp(own);
|
natp = getnatp(own);
|
||||||
|
@ -363,12 +362,7 @@ deity_build_land(int type, coord x, coord y, natid own, int tlev)
|
||||||
land.lnd_fuelu = (int)LND_FU(lp->l_fuelu, tlev - lp->l_tech);
|
land.lnd_fuelu = (int)LND_FU(lp->l_fuelu, tlev - lp->l_tech);
|
||||||
land.lnd_maxlight = (int)LND_XPL(lp->l_nxlight, tlev - lp->l_tech);
|
land.lnd_maxlight = (int)LND_XPL(lp->l_nxlight, tlev - lp->l_tech);
|
||||||
land.lnd_maxland = (int)LND_MXL(lp->l_mxland, tlev - lp->l_tech);
|
land.lnd_maxland = (int)LND_MXL(lp->l_mxland, tlev - lp->l_tech);
|
||||||
|
land.lnd_item[I_FOOD] = vl_find(V_FOOD, lp->l_vtype, lp->l_vamt, lp->l_nv);
|
||||||
getvec(VT_ITEM, lvec, (s_char *)&land, EF_LAND);
|
|
||||||
lvec[I_FOOD] +=
|
|
||||||
vl_find(V_FOOD, lp->l_vtype, lp->l_vamt, (int)lp->l_nv);
|
|
||||||
lvec[I_MILIT] = lp->l_mil;
|
|
||||||
putvec(VT_ITEM, lvec, (s_char *)&land, EF_LAND);
|
|
||||||
|
|
||||||
putland(land.lnd_uid, &land);
|
putland(land.lnd_uid, &land);
|
||||||
makenotlost(EF_LAND, land.lnd_own, land.lnd_uid, land.lnd_x,
|
makenotlost(EF_LAND, land.lnd_own, land.lnd_uid, land.lnd_x,
|
||||||
|
|
|
@ -51,7 +51,6 @@ newe(void)
|
||||||
struct sctstr sect;
|
struct sctstr sect;
|
||||||
struct nstr_sect nstr;
|
struct nstr_sect nstr;
|
||||||
double work, wforce, lcms, hcms;
|
double work, wforce, lcms, hcms;
|
||||||
int items[I_MAX + 1];
|
|
||||||
int nsect;
|
int nsect;
|
||||||
int civs = 0;
|
int civs = 0;
|
||||||
int uws = 0;
|
int uws = 0;
|
||||||
|
@ -70,12 +69,10 @@ newe(void)
|
||||||
if (!player->owner)
|
if (!player->owner)
|
||||||
continue;
|
continue;
|
||||||
if (!sect.sct_off) {
|
if (!sect.sct_off) {
|
||||||
getvec(VT_ITEM, items, (s_char *)§, EF_SECTOR);
|
civs = min(999, (int)((obrate * etu_per_update + 1.0)
|
||||||
|
* sect.sct_item[I_CIVIL]));
|
||||||
civs = min(999, (int)((obrate * (double)etu_per_update + 1.0)
|
uws = min(999, (int)((uwbrate * etu_per_update + 1.0)
|
||||||
* (double)items[I_CIVIL]));
|
* sect.sct_item[I_UW]));
|
||||||
uws = min(999, (int)((uwbrate * (double)etu_per_update + 1.0)
|
|
||||||
* (double)items[I_UW]));
|
|
||||||
natp = getnatp(sect.sct_own);
|
natp = getnatp(sect.sct_own);
|
||||||
maxpop = max_pop((float)natp->nat_level[NAT_RLEV], §);
|
maxpop = max_pop((float)natp->nat_level[NAT_RLEV], §);
|
||||||
civs = min(civs, maxpop);
|
civs = min(civs, maxpop);
|
||||||
|
@ -83,7 +80,7 @@ newe(void)
|
||||||
/* This isn't quite right, since research might rise/fall */
|
/* This isn't quite right, since research might rise/fall */
|
||||||
/* during the update, but it's the best we can really do */
|
/* during the update, but it's the best we can really do */
|
||||||
wforce = (int)((civs * sect.sct_work) / 100.0
|
wforce = (int)((civs * sect.sct_work) / 100.0
|
||||||
+ uws + items[I_MILIT] * 2 / 5.0);
|
+ uws + sect.sct_item[I_MILIT] * 2 / 5.0);
|
||||||
|
|
||||||
work = etu_per_update * wforce / 100.0;
|
work = etu_per_update * wforce / 100.0;
|
||||||
if (opt_ROLLOVER_AVAIL) {
|
if (opt_ROLLOVER_AVAIL) {
|
||||||
|
@ -115,13 +112,13 @@ newe(void)
|
||||||
twork = bwork;
|
twork = bwork;
|
||||||
}
|
}
|
||||||
if (dchr[type].d_lcms > 0) {
|
if (dchr[type].d_lcms > 0) {
|
||||||
lcms = items[I_LCM];
|
lcms = sect.sct_item[I_LCM];
|
||||||
lcms = (int)(lcms / dchr[type].d_lcms);
|
lcms = (int)(lcms / dchr[type].d_lcms);
|
||||||
if (twork > lcms)
|
if (twork > lcms)
|
||||||
twork = lcms;
|
twork = lcms;
|
||||||
}
|
}
|
||||||
if (dchr[type].d_hcms > 0) {
|
if (dchr[type].d_hcms > 0) {
|
||||||
hcms = items[I_HCM];
|
hcms = sect.sct_item[I_HCM];
|
||||||
hcms = (int)(hcms / dchr[type].d_hcms);
|
hcms = (int)(hcms / dchr[type].d_hcms);
|
||||||
if (twork > hcms)
|
if (twork > hcms)
|
||||||
twork = hcms;
|
twork = hcms;
|
||||||
|
@ -134,13 +131,13 @@ newe(void)
|
||||||
twork = bwork;
|
twork = bwork;
|
||||||
}
|
}
|
||||||
if (dchr[type].d_lcms > 0) {
|
if (dchr[type].d_lcms > 0) {
|
||||||
lcms = items[I_LCM];
|
lcms = sect.sct_item[I_LCM];
|
||||||
lcms = (int)(lcms / dchr[type].d_lcms);
|
lcms = (int)(lcms / dchr[type].d_lcms);
|
||||||
if (twork > lcms)
|
if (twork > lcms)
|
||||||
twork = lcms;
|
twork = lcms;
|
||||||
}
|
}
|
||||||
if (dchr[type].d_hcms > 0) {
|
if (dchr[type].d_hcms > 0) {
|
||||||
hcms = items[I_HCM];
|
hcms = sect.sct_item[I_HCM];
|
||||||
hcms = (int)(hcms / dchr[type].d_hcms);
|
hcms = (int)(hcms / dchr[type].d_hcms);
|
||||||
if (twork > hcms)
|
if (twork > hcms)
|
||||||
twork = hcms;
|
twork = hcms;
|
||||||
|
|
|
@ -58,7 +58,6 @@ scra(void)
|
||||||
struct nstr_item ni;
|
struct nstr_item ni;
|
||||||
union item_u item;
|
union item_u item;
|
||||||
int vec[I_MAX + 1];
|
int vec[I_MAX + 1];
|
||||||
int itemvec[I_MAX + 1];
|
|
||||||
int type;
|
int type;
|
||||||
struct sctstr sect;
|
struct sctstr sect;
|
||||||
struct mchrstr *mp;
|
struct mchrstr *mp;
|
||||||
|
@ -189,9 +188,8 @@ scra(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pr("%s", prship(&item.ship));
|
pr("%s", prship(&item.ship));
|
||||||
getvec(VT_ITEM, itemvec, (s_char *)&item.ship, EF_SHIP);
|
|
||||||
for (i = 1; i <= I_MAX; i++) {
|
for (i = 1; i <= I_MAX; i++) {
|
||||||
vec[i] += itemvec[i];
|
vec[i] += item.ship.shp_item[i];
|
||||||
}
|
}
|
||||||
vec[I_LCM] += mp->m_lcm * 2 / 3 * eff;
|
vec[I_LCM] += mp->m_lcm * 2 / 3 * eff;
|
||||||
vec[I_HCM] += mp->m_hcm * 2 / 3 * eff;
|
vec[I_HCM] += mp->m_hcm * 2 / 3 * eff;
|
||||||
|
@ -256,9 +254,8 @@ scra(void)
|
||||||
eff = ((float)item.land.lnd_effic / 100.0);
|
eff = ((float)item.land.lnd_effic / 100.0);
|
||||||
lp = &lchr[(int)item.land.lnd_type];
|
lp = &lchr[(int)item.land.lnd_type];
|
||||||
pr("%s", prland(&item.land));
|
pr("%s", prland(&item.land));
|
||||||
getvec(VT_ITEM, itemvec, (s_char *)&item.land, EF_LAND);
|
|
||||||
for (i = 1; i <= I_MAX; i++) {
|
for (i = 1; i <= I_MAX; i++) {
|
||||||
vec[i] += itemvec[i];
|
vec[i] += item.land.lnd_item[i];
|
||||||
}
|
}
|
||||||
/* Military, guns and shells are not required to build land units */
|
/* Military, guns and shells are not required to build land units */
|
||||||
/* vec[I_MILIT] += total_mil(&item.land);*/
|
/* vec[I_MILIT] += total_mil(&item.land);*/
|
||||||
|
|
|
@ -75,7 +75,6 @@ spy(void)
|
||||||
coord *table; /* sectors already seen */
|
coord *table; /* sectors already seen */
|
||||||
int t_len = 0;
|
int t_len = 0;
|
||||||
int vec[I_MAX + 1];
|
int vec[I_MAX + 1];
|
||||||
int dvec[I_MAX + 1];
|
|
||||||
int nrecon;
|
int nrecon;
|
||||||
int nunits;
|
int nunits;
|
||||||
struct nstr_sect nstr;
|
struct nstr_sect nstr;
|
||||||
|
@ -146,16 +145,16 @@ spy(void)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
getsect(nx, ny, &dsect);
|
getsect(nx, ny, &dsect);
|
||||||
getvec(VT_ITEM, dvec, (s_char *)&dsect, EF_SECTOR);
|
if (player->owner
|
||||||
if (player->owner || (dsect.sct_type == SCT_WATER) ||
|
|| (dsect.sct_type == SCT_WATER)
|
||||||
(!dvec[I_MILIT] && !dvec[I_CIVIL] &&
|
|| (!dsect.sct_item[I_MILIT] && !dsect.sct_item[I_CIVIL]
|
||||||
(num_units(nx, ny) == 0))) {
|
&& num_units(nx, ny) == 0)) {
|
||||||
/* mark sector as seen */
|
/* mark sector as seen */
|
||||||
insert(table, &t_len, nx, ny);
|
insert(table, &t_len, nx, ny);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
/* catch spy N/200 chance, N = # military */
|
/* catch spy N/200 chance, N = # military */
|
||||||
caught = chance((double)dvec[I_MILIT] / 200.0);
|
caught = chance((double)dsect.sct_item[I_MILIT] / 200.0);
|
||||||
own = dsect.sct_own;
|
own = dsect.sct_own;
|
||||||
/* determine spyee relations with spyer */
|
/* determine spyee relations with spyer */
|
||||||
relat = getrel(getnatp(own), player->cnum);
|
relat = getrel(getnatp(own), player->cnum);
|
||||||
|
@ -225,9 +224,6 @@ spy(void)
|
||||||
static void
|
static void
|
||||||
spyline(struct sctstr *sp)
|
spyline(struct sctstr *sp)
|
||||||
{
|
{
|
||||||
int vec[I_MAX + 1];
|
|
||||||
|
|
||||||
getvec(VT_ITEM, vec, (s_char *)sp, EF_SECTOR);
|
|
||||||
prxy("%4d,%-4d", sp->sct_x, sp->sct_y, player->cnum);
|
prxy("%4d,%-4d", sp->sct_x, sp->sct_y, player->cnum);
|
||||||
pr(" %c%c %3d %3d %3d %3d %3d %3d %4d %4d %4d %3d %4d %4d %4d %3d %3d\n",
|
pr(" %c%c %3d %3d %3d %3d %3d %3d %4d %4d %4d %3d %4d %4d %4d %3d %3d\n",
|
||||||
dchr[sp->sct_type].d_mnem,
|
dchr[sp->sct_type].d_mnem,
|
||||||
|
@ -238,13 +234,13 @@ spyline(struct sctstr *sp)
|
||||||
roundintby((int)sp->sct_road, 10),
|
roundintby((int)sp->sct_road, 10),
|
||||||
roundintby((int)sp->sct_rail, 10),
|
roundintby((int)sp->sct_rail, 10),
|
||||||
roundintby((int)sp->sct_defense, 10),
|
roundintby((int)sp->sct_defense, 10),
|
||||||
roundintby(vec[I_CIVIL], 10),
|
roundintby(sp->sct_item[I_CIVIL], 10),
|
||||||
roundintby(vec[I_MILIT], 10),
|
roundintby(sp->sct_item[I_MILIT], 10),
|
||||||
roundintby(vec[I_SHELL], 10),
|
roundintby(sp->sct_item[I_SHELL], 10),
|
||||||
roundintby(vec[I_GUN], 10),
|
roundintby(sp->sct_item[I_GUN], 10),
|
||||||
roundintby(vec[I_PETROL], 10),
|
roundintby(sp->sct_item[I_PETROL], 10),
|
||||||
roundintby(vec[I_FOOD], 10),
|
roundintby(sp->sct_item[I_FOOD], 10),
|
||||||
roundintby(vec[I_BAR], 10),
|
roundintby(sp->sct_item[I_BAR], 10),
|
||||||
count_sect_units(sp),
|
count_sect_units(sp),
|
||||||
count_sect_planes(sp));
|
count_sect_planes(sp));
|
||||||
}
|
}
|
||||||
|
|
|
@ -121,7 +121,6 @@ shp_nav(struct emp_qelem *list, double *minmobp, double *maxmobp,
|
||||||
struct mlist *mlp;
|
struct mlist *mlp;
|
||||||
struct sctstr sect;
|
struct sctstr sect;
|
||||||
struct shpstr ship;
|
struct shpstr ship;
|
||||||
int vec[I_MAX + 1];
|
|
||||||
coord allx;
|
coord allx;
|
||||||
coord ally;
|
coord ally;
|
||||||
int first = 1;
|
int first = 1;
|
||||||
|
@ -148,8 +147,7 @@ shp_nav(struct emp_qelem *list, double *minmobp, double *maxmobp,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* check crew - uws don't count */
|
/* check crew - uws don't count */
|
||||||
getvec(VT_ITEM, vec, (s_char *)&ship, EF_SHIP);
|
if (ship.shp_item[I_MILIT] == 0 && ship.shp_item[I_CIVIL] == 0) {
|
||||||
if (vec[I_MILIT] == 0 && vec[I_CIVIL] == 0) {
|
|
||||||
shp_mess("is crewless", mlp);
|
shp_mess("is crewless", mlp);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -331,7 +329,6 @@ shp_list(struct emp_qelem *ship_list)
|
||||||
struct emp_qelem *next;
|
struct emp_qelem *next;
|
||||||
struct mlist *mlp;
|
struct mlist *mlp;
|
||||||
struct shpstr *shp;
|
struct shpstr *shp;
|
||||||
int vec[I_MAX + 1];
|
|
||||||
|
|
||||||
pr("shp# ship type x,y fl eff mil sh gun pn he xl ln mob tech\n");
|
pr("shp# ship type x,y fl eff mil sh gun pn he xl ln mob tech\n");
|
||||||
|
|
||||||
|
@ -344,10 +341,9 @@ shp_list(struct emp_qelem *ship_list)
|
||||||
prxy("%4d,%-4d ", shp->shp_x, shp->shp_y, mlp->ship.shp_own);
|
prxy("%4d,%-4d ", shp->shp_x, shp->shp_y, mlp->ship.shp_own);
|
||||||
pr("%1c", shp->shp_fleet);
|
pr("%1c", shp->shp_fleet);
|
||||||
pr("%4d%%", shp->shp_effic);
|
pr("%4d%%", shp->shp_effic);
|
||||||
getvec(VT_ITEM, vec, (s_char *)shp, EF_SHIP);
|
pr("%4d", shp->shp_item[I_MILIT]);
|
||||||
pr("%4d", vec[I_MILIT]);
|
pr("%4d", shp->shp_item[I_SHELL]);
|
||||||
pr("%4d", vec[I_SHELL]);
|
pr("%4d", shp->shp_item[I_GUN]);
|
||||||
pr("%4d", vec[I_GUN]);
|
|
||||||
count_planes(shp);
|
count_planes(shp);
|
||||||
pr("%3d", shp->shp_nplane);
|
pr("%3d", shp->shp_nplane);
|
||||||
pr("%3d", shp->shp_nchoppers);
|
pr("%3d", shp->shp_nchoppers);
|
||||||
|
|
|
@ -277,7 +277,6 @@ shiprepair(register struct shpstr *ship, int *vec, struct natstr *np,
|
||||||
int avail;
|
int avail;
|
||||||
int w_p_eff;
|
int w_p_eff;
|
||||||
int mult;
|
int mult;
|
||||||
int svec[I_MAX + 1];
|
|
||||||
int mvec[I_MAX + 1];
|
int mvec[I_MAX + 1];
|
||||||
int rel;
|
int rel;
|
||||||
|
|
||||||
|
@ -348,8 +347,6 @@ shiprepair(register struct shpstr *ship, int *vec, struct natstr *np,
|
||||||
if ((sp->sct_off) && (sp->sct_own == ship->shp_own))
|
if ((sp->sct_off) && (sp->sct_own == ship->shp_own))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
getvec(VT_ITEM, svec, (s_char *)sp, EF_SECTOR);
|
|
||||||
|
|
||||||
mult = 1;
|
mult = 1;
|
||||||
if (np->nat_level[NAT_TLEV] < ship->shp_tech * 0.85)
|
if (np->nat_level[NAT_TLEV] < ship->shp_tech * 0.85)
|
||||||
mult = 2;
|
mult = 2;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue