From: Markus Armbruster Date: Wed, 10 Mar 2004 13:16:46 +0000 (+0000) Subject: (sd, shp_missile_defense): Replace getvec() by direct, read-only item X-Git-Tag: v4.2.14~50 X-Git-Url: http://git.pond.sub.org/?p=empserver;a=commitdiff_plain;h=522f1cdf9a4e7208ad403560221a6a97857f69bd (sd, shp_missile_defense): Replace getvec() by direct, read-only item access. This is correct, because the old code doesn't use the copy after it changes the original in the unit structure. (dd): Remove call of getvec() that has no effect. --- diff --git a/src/lib/subs/fortdef.c b/src/lib/subs/fortdef.c index 6f33653de..e029f1794 100644 --- a/src/lib/subs/fortdef.c +++ b/src/lib/subs/fortdef.c @@ -73,7 +73,7 @@ sd(natid att, natid own, coord x, coord y, int noisy, int defending, double eff; struct shpstr ship; struct nstr_item ni; - int vec[I_MAX + 1]; + int shell; int dam, rel, rel2; if (own == 0) @@ -102,17 +102,15 @@ sd(natid att, natid own, coord x, coord y, int noisy, int defending, if (range < ni.curdist) continue; /* must have gun, shell, and milit to fire */ - if (getvec(VT_ITEM, vec, (caddr_t)&ship, EF_SHIP) < 3) - continue; - if (vec[I_SHELL] < ship.shp_glim) - vec[I_SHELL] += supply_commod(ship.shp_own, ship.shp_x, - ship.shp_y, I_SHELL, - vec[I_SHELL] - ship.shp_glim); - nshot = min(min(vec[I_GUN], vec[I_SHELL]), vec[I_MILIT]); + shell = ship.shp_item[I_SHELL]; + if (shell < ship.shp_glim) + shell += supply_commod(ship.shp_own, ship.shp_x, ship.shp_y, + I_SHELL, shell - ship.shp_glim); + nshot = min(min(ship.shp_item[I_GUN], shell), ship.shp_item[I_MILIT]); nshot = min(nshot, ship.shp_glim); if (nshot <= 0) continue; - ship.shp_item[I_SHELL] = vec[I_SHELL] - nshot; + ship.shp_item[I_SHELL] = shell - nshot; putship(ship.shp_uid, &ship); if (defending) nreport(ship.shp_own, N_FIRE_BACK, att, 1); @@ -177,7 +175,6 @@ dd(natid att, natid def_own, coord ax, coord ay, int noisy, int defending) double range; struct sctstr firing; struct nstr_sect ns; - int vec[I_MAX + 1]; if (opt_NO_FORT_FIRE) /* Forts can't fire! */ return 0; @@ -200,8 +197,6 @@ dd(natid att, natid def_own, coord ax, coord ay, int noisy, int defending) if ((firing.sct_own != def_own) && ((rel != ALLIED) || (rel2 != AT_WAR))) continue; - if (getvec(VT_ITEM, vec, (caddr_t)&firing, EF_SECTOR) < 0) - continue; range = tfactfire(def_own, 7.0); if (firing.sct_effic > 59) diff --git a/src/lib/subs/shpsub.c b/src/lib/subs/shpsub.c index b0b3b6814..d9030cba7 100644 --- a/src/lib/subs/shpsub.c +++ b/src/lib/subs/shpsub.c @@ -927,7 +927,7 @@ shp_missile_defense(coord dx, coord dy, natid bombown, int hardtarget) struct nstr_item ni; struct shpstr ship; int hitchance; - int vec[I_MAX + 1]; + int shell; double gun, eff, teff; snxtitem_dist(&ni, EF_SHIP, dx, dy, 1); @@ -945,22 +945,20 @@ shp_missile_defense(coord dx, coord dy, natid bombown, int hardtarget) if (ship.shp_effic < 60) continue; - if (getvec(VT_ITEM, vec, (caddr_t)&ship, EF_SHIP) < 0) + shell = ship.shp_item[I_SHELL]; + if (ship.shp_item[I_MILIT] < 1) /* do we have mil? */ continue; - if (vec[I_MILIT] < 1) /* do we have mil? */ - continue; - if (vec[I_SHELL] < 2) { /* do we need shells */ - vec[I_SHELL] += supply_commod(ship.shp_own, - ship.shp_x, ship.shp_y, - I_SHELL, 2); - if (vec[I_SHELL] < 2) + if (shell < 2) { /* do we need shells */ + shell += supply_commod(ship.shp_own, ship.shp_x, ship.shp_y, + I_SHELL, 2); + if (shell < 2) continue; } - if (vec[I_GUN] < 1) /* we need at least 1 gun */ + if (ship.shp_item[I_GUN] < 1) /* we need at least 1 gun */ continue; /* now calculate the odds */ - gun = ((double)min(vec[I_GUN], ship.shp_glim)); + gun = min(ship.shp_item[I_GUN], ship.shp_glim); eff = (double)ship.shp_effic / 100.0; teff = (((double)ship.shp_tech) / (((double)ship.shp_tech) + 200.0)); @@ -977,7 +975,7 @@ shp_missile_defense(coord dx, coord dy, natid bombown, int hardtarget) ship.shp_uid); mpr(ship.shp_own, "%d%% hitchance...", hitchance); /* use ammo */ - ship.shp_item[I_SHELL] = vec[I_SHELL] - 2; + ship.shp_item[I_SHELL] = shell - 2; putship(ship.shp_uid, &ship); if (roll(100) <= hitchance) {