Don't store land unit stats in struct lndstr, part 1
New lnd_att(), lnd_def(), lnd_vul(), lnd_spd(), lnd_vis(), lnd_frg(), lnd_acc(), lnd_dam(), lnd_aaf() replace the struct lndstr members with the same names. Make land unit selectors att, def, vul, spd, vis, frg, acc, dam, aaf virtual.
This commit is contained in:
parent
f86d726406
commit
cdf1bcfa22
13 changed files with 185 additions and 68 deletions
|
@ -712,7 +712,7 @@ land_bomb(struct emp_qelem *list, struct sctstr *target)
|
|||
struct lndstr land;
|
||||
struct emp_qelem *qp;
|
||||
int unitno;
|
||||
int ignore, flak, hitchance;
|
||||
int ignore, aaf, flak, hitchance;
|
||||
struct plist *plp;
|
||||
int nukedam;
|
||||
int nunits;
|
||||
|
@ -755,11 +755,12 @@ land_bomb(struct emp_qelem *list, struct sctstr *target)
|
|||
if (unitno < 0)
|
||||
continue;
|
||||
|
||||
flak = (int)(techfact(land.lnd_tech, land.lnd_aaf) * 3.0);
|
||||
aaf = lnd_aaf(&land);
|
||||
flak = (int)(techfact(land.lnd_tech, aaf) * 3.0);
|
||||
if (flak) {
|
||||
PR(land.lnd_own,
|
||||
"Flak! Firing flak guns from unit %s (aa rating %d)\n",
|
||||
prland(&land), land.lnd_aaf);
|
||||
prland(&land), aaf);
|
||||
if (pinflak_planedamage(&plp->plane, plp->pcp, land.lnd_own, flak))
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -394,19 +394,19 @@ ldump(void)
|
|||
pr(" %d", land.lnd_item[I_RAD]);
|
||||
break;
|
||||
case 28:
|
||||
pr(" %1.2f", land.lnd_att);
|
||||
pr(" %1.2f", lnd_att(&land));
|
||||
break;
|
||||
case 29:
|
||||
pr(" %1.2f", land.lnd_def);
|
||||
pr(" %1.2f", lnd_def(&land));
|
||||
break;
|
||||
case 30:
|
||||
pr(" %d", land.lnd_vul);
|
||||
pr(" %d", lnd_vul(&land));
|
||||
break;
|
||||
case 31:
|
||||
pr(" %d", land.lnd_spd);
|
||||
pr(" %d", lnd_spd(&land));
|
||||
break;
|
||||
case 32:
|
||||
pr(" %d", land.lnd_vis);
|
||||
pr(" %d", lnd_vis(&land));
|
||||
break;
|
||||
case 33:
|
||||
pr(" %d", land.lnd_spy);
|
||||
|
@ -415,19 +415,19 @@ ldump(void)
|
|||
pr(" %d", land.lnd_rad);
|
||||
break;
|
||||
case 35:
|
||||
pr(" %d", land.lnd_frg);
|
||||
pr(" %d", lnd_frg(&land));
|
||||
break;
|
||||
case 36:
|
||||
pr(" %d", land.lnd_acc);
|
||||
pr(" %d", lnd_acc(&land));
|
||||
break;
|
||||
case 37:
|
||||
pr(" %d", land.lnd_dam);
|
||||
pr(" %d", lnd_dam(&land));
|
||||
break;
|
||||
case 38:
|
||||
pr(" %d", land.lnd_ammo);
|
||||
break;
|
||||
case 39:
|
||||
pr(" %d", land.lnd_aaf);
|
||||
pr(" %d", lnd_aaf(&land));
|
||||
break;
|
||||
case 40:
|
||||
pr(" %d", land.lnd_item[I_UW]);
|
||||
|
|
|
@ -228,7 +228,7 @@ look_land(struct lndstr *lookland)
|
|||
if (!(chance(LND_SPY_DETECT_CHANCE(lp->lnd_effic))))
|
||||
continue;
|
||||
}
|
||||
vrange = ldround((lp->lnd_vis * range) / 20.0, 1);
|
||||
vrange = ldround((lnd_vis(lp) * range) / 20.0, 1);
|
||||
dist = mapdist(lp->lnd_x, lp->lnd_y,
|
||||
lookland->lnd_x, lookland->lnd_y);
|
||||
if (dist > vrange)
|
||||
|
|
|
@ -60,13 +60,13 @@ lsta(void)
|
|||
pr("%4d %-16.16s ", land.lnd_uid, lchr[(int)land.lnd_type].l_name);
|
||||
prxy("%4d,%-4d", land.lnd_x, land.lnd_y, player->cnum);
|
||||
pr(" %3d%% %3d %1.1f %1.1f %3d ",
|
||||
land.lnd_effic, land.lnd_tech, land.lnd_att, land.lnd_def,
|
||||
land.lnd_vul);
|
||||
land.lnd_effic, land.lnd_tech, lnd_att(&land), lnd_def(&land),
|
||||
lnd_vul(&land));
|
||||
pr("%2d %2d %2d %2d ",
|
||||
land.lnd_spd, land.lnd_vis, land.lnd_spy, land.lnd_rad);
|
||||
lnd_spd(&land), lnd_vis(&land), land.lnd_spy, land.lnd_rad);
|
||||
pr("%2d %2d %2d %2d %2d ",
|
||||
land.lnd_frg,
|
||||
land.lnd_acc, land.lnd_dam, land.lnd_ammo, land.lnd_aaf);
|
||||
lnd_frg(&land),
|
||||
lnd_acc(&land), lnd_dam(&land), land.lnd_ammo, lnd_aaf(&land));
|
||||
pr("\n");
|
||||
}
|
||||
if (nunits == 0) {
|
||||
|
|
|
@ -146,7 +146,7 @@ multifire(void)
|
|||
if (item.land.lnd_own != player->cnum)
|
||||
continue;
|
||||
|
||||
if (fland.lnd_dam == 0) {
|
||||
if (lchr[fland.lnd_type].l_dam == 0) {
|
||||
pr("Unit %d cannot fire!\n", fland.lnd_uid);
|
||||
continue;
|
||||
}
|
||||
|
@ -352,7 +352,7 @@ multifire(void)
|
|||
fx = fland.lnd_x;
|
||||
fy = fland.lnd_y;
|
||||
|
||||
if (fland.lnd_dam == 0) {
|
||||
if (lchr[fland.lnd_type].l_dam == 0) {
|
||||
pr("Unit %d cannot fire!\n", fland.lnd_uid);
|
||||
continue;
|
||||
}
|
||||
|
@ -376,7 +376,7 @@ multifire(void)
|
|||
continue;
|
||||
}
|
||||
if (target == targ_ship) {
|
||||
if (chance(fland.lnd_acc / 100.0))
|
||||
if (chance(lnd_acc(&fland) / 100.0))
|
||||
dam = ldround(dam / 2.0, 1);
|
||||
}
|
||||
} else {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue