sect.sct_item[I_LCM] += mp->m_lcm * 2 / 3 * eff;
sect.sct_item[I_HCM] += mp->m_hcm * 2 / 3 * eff;
getsect(item.ship.shp_x, item.ship.shp_y, §2);
- snxtitem_all(&ni2, EF_PLANE);
+ snxtitem_cargo(&ni2, EF_PLANE, EF_SHIP, item.ship.shp_uid);
while (nxtitem(&ni2, &plane)) {
- if (plane.pln_own == 0)
- continue;
- if (plane.pln_ship == item.ship.shp_uid) {
+ wu(0, plane.pln_own,
+ "Plane %d transferred off ship %d to %s\n",
+ ni2.cur, item.ship.shp_uid,
+ xyas(plane.pln_x, plane.pln_y, player->cnum));
+ plane.pln_ship = -1;
+ if (sect2.sct_own != plane.pln_own) {
wu(0, plane.pln_own,
- "Plane %d transferred off ship %d to %s\n",
- ni2.cur, item.ship.shp_uid,
- xyas(plane.pln_x, plane.pln_y, player->cnum));
- plane.pln_ship = -1;
- if (sect2.sct_own != plane.pln_own) {
- wu(0, plane.pln_own,
- "%s given to %s\n", prplane(&plane),
- cname(sect2.sct_own));
- wu(0, sect2.sct_own,
- "%s given to you by %s\n", prplane(&plane),
- cname(player->cnum));
- }
- plane.pln_own = sect2.sct_own;
- putplane(plane.pln_uid, &plane);
+ "%s given to %s\n", prplane(&plane),
+ cname(sect2.sct_own));
+ wu(0, sect2.sct_own,
+ "%s given to you by %s\n", prplane(&plane),
+ cname(player->cnum));
}
+ plane.pln_own = sect2.sct_own;
+ putplane(plane.pln_uid, &plane);
}
- snxtitem_all(&ni2, EF_LAND);
+ snxtitem_cargo(&ni2, EF_LAND, EF_SHIP, item.ship.shp_uid);
while (nxtitem(&ni2, &land)) {
- if (land.lnd_own == 0)
- continue;
- if (land.lnd_ship == item.ship.shp_uid) {
+ wu(0, land.lnd_own,
+ "Land unit %d transferred off ship %d to %s\n",
+ ni2.cur, item.ship.shp_uid,
+ xyas(land.lnd_x, land.lnd_y, player->cnum));
+ land.lnd_ship = -1;
+ if (sect2.sct_own != land.lnd_own) {
wu(0, land.lnd_own,
- "Land unit %d transferred off ship %d to %s\n",
- ni2.cur, item.ship.shp_uid,
- xyas(land.lnd_x, land.lnd_y, player->cnum));
- land.lnd_ship = -1;
- if (sect2.sct_own != land.lnd_own) {
- wu(0, land.lnd_own,
- "%s given to %s\n", prland(&land),
- cname(sect2.sct_own));
- wu(0, sect2.sct_own,
- "%s given to you by %s\n", prland(&land),
- cname(player->cnum));
- }
- land.lnd_own = sect2.sct_own;
- putland(land.lnd_uid, &land);
+ "%s given to %s\n", prland(&land),
+ cname(sect2.sct_own));
+ wu(0, sect2.sct_own,
+ "%s given to you by %s\n", prland(&land),
+ cname(player->cnum));
}
+ land.lnd_own = sect2.sct_own;
+ putland(land.lnd_uid, &land);
}
item.ship.shp_effic = 0;
putship(item.ship.shp_uid, &item.ship);
sect.sct_item[I_HCM] += lp->l_hcm * 2 / 3 * eff;
getsect(item.land.lnd_x, item.land.lnd_y, §2);
- snxtitem_all(&ni2, EF_LAND);
+ snxtitem_cargo(&ni2, EF_LAND, EF_LAND, item.land.lnd_uid);
while (nxtitem(&ni2, &land)) {
- if (land.lnd_own == 0)
- continue;
- if (land.lnd_land == item.land.lnd_uid) {
+ wu(0, land.lnd_own,
+ "Land unit %d transferred off land unit %d to %s\n",
+ land.lnd_uid, item.land.lnd_uid,
+ xyas(land.lnd_x, land.lnd_y, player->cnum));
+ land.lnd_land = -1;
+ if (sect2.sct_own != land.lnd_own) {
wu(0, land.lnd_own,
- "Land unit %d transferred off land unit %d to %s\n",
- land.lnd_uid, item.land.lnd_uid,
- xyas(land.lnd_x, land.lnd_y, player->cnum));
- land.lnd_land = -1;
- if (sect2.sct_own != land.lnd_own) {
- wu(0, land.lnd_own,
- "%s given to %s\n", prland(&land),
- cname(sect2.sct_own));
- wu(0, sect2.sct_own,
- "%s given to you by %s\n", prland(&land),
- cname(player->cnum));
- }
- land.lnd_own = sect2.sct_own;
- putland(land.lnd_uid, &land);
+ "%s given to %s\n", prland(&land),
+ cname(sect2.sct_own));
+ wu(0, sect2.sct_own,
+ "%s given to you by %s\n", prland(&land),
+ cname(player->cnum));
}
+ land.lnd_own = sect2.sct_own;
+ putland(land.lnd_uid, &land);
}
- snxtitem_all(&ni2, EF_PLANE);
+ snxtitem_cargo(&ni2, EF_PLANE, EF_LAND, item.land.lnd_uid);
while (nxtitem(&ni2, &plane)) {
- if (plane.pln_own == 0)
- continue;
- if (plane.pln_land == item.land.lnd_uid) {
+ wu(0, plane.pln_own,
+ "Plane %d transferred off land unit %d to %s\n",
+ ni2.cur, item.land.lnd_uid,
+ xyas(plane.pln_x, plane.pln_y, player->cnum));
+ plane.pln_land = -1;
+ if (sect2.sct_own != plane.pln_own) {
wu(0, plane.pln_own,
- "Plane %d transferred off land unit %d to %s\n",
- ni2.cur, item.land.lnd_uid,
- xyas(plane.pln_x, plane.pln_y, player->cnum));
- plane.pln_land = -1;
- if (sect2.sct_own != plane.pln_own) {
- wu(0, plane.pln_own,
- "%s given to %s\n", prplane(&plane),
- cname(sect2.sct_own));
- wu(0, sect2.sct_own,
- "%s given to you by %s\n", prplane(&plane),
- cname(player->cnum));
- }
- plane.pln_own = sect2.sct_own;
- putplane(plane.pln_uid, &plane);
+ "%s given to %s\n", prplane(&plane),
+ cname(sect2.sct_own));
+ wu(0, sect2.sct_own,
+ "%s given to you by %s\n", prplane(&plane),
+ cname(player->cnum));
}
+ plane.pln_own = sect2.sct_own;
+ putplane(plane.pln_uid, &plane);
}
item.land.lnd_effic = 0;
putland(item.land.lnd_uid, &item.land);
struct lndstr land;
getsect(sp->shp_x, sp->shp_y, §);
- snxtitem_all(&ni, EF_PLANE);
+ snxtitem_cargo(&ni, EF_PLANE, EF_SHIP, sp->shp_uid);
while (nxtitem(&ni, &plane)) {
- if (plane.pln_own == 0)
- continue;
- if (plane.pln_ship == sp->shp_uid) {
- plane.pln_ship = -1;
- if (sect.sct_own != sp->shp_own) {
- wu(0, plane.pln_own, "Plane %d scuttled in %s\n",
- plane.pln_uid,
- xyas(plane.pln_x, plane.pln_y, plane.pln_own));
- plane.pln_effic = 0;
- } else {
- wu(0, plane.pln_own,
- "Plane %d transferred off ship %d to %s\n",
- plane.pln_uid, sp->shp_uid,
- xyas(plane.pln_x, plane.pln_y, plane.pln_own));
- }
- putplane(plane.pln_uid, &plane);
+ plane.pln_ship = -1;
+ if (sect.sct_own != sp->shp_own) {
+ wu(0, plane.pln_own, "Plane %d scuttled in %s\n",
+ plane.pln_uid,
+ xyas(plane.pln_x, plane.pln_y, plane.pln_own));
+ plane.pln_effic = 0;
+ } else {
+ wu(0, plane.pln_own,
+ "Plane %d transferred off ship %d to %s\n",
+ plane.pln_uid, sp->shp_uid,
+ xyas(plane.pln_x, plane.pln_y, plane.pln_own));
}
+ putplane(plane.pln_uid, &plane);
}
- snxtitem_all(&ni, EF_LAND);
+ snxtitem_cargo(&ni, EF_LAND, EF_SHIP, sp->shp_uid);
while (nxtitem(&ni, &land)) {
- if (land.lnd_own == 0)
- continue;
- if (land.lnd_ship == sp->shp_uid) {
- land.lnd_ship = -1;
- if (sect.sct_own == sp->shp_own) {
- wu(0, land.lnd_own,
- "Land unit %d transferred off ship %d to %s\n",
- land.lnd_uid, sp->shp_uid,
- xyas(land.lnd_x, land.lnd_y, land.lnd_own));
- putland(land.lnd_uid, &land);
- } else
- scuttle_land(&land);
- }
+ land.lnd_ship = -1;
+ if (sect.sct_own == sp->shp_own) {
+ wu(0, land.lnd_own,
+ "Land unit %d transferred off ship %d to %s\n",
+ land.lnd_uid, sp->shp_uid,
+ xyas(land.lnd_x, land.lnd_y, land.lnd_own));
+ putland(land.lnd_uid, &land);
+ } else
+ scuttle_land(&land);
}
sp->shp_effic = 0;
putship(sp->shp_uid, sp);
struct lndstr land;
getsect(lp->lnd_x, lp->lnd_y, §);
- snxtitem_all(&ni, EF_PLANE);
+ snxtitem_cargo(&ni, EF_PLANE, EF_LAND, lp->lnd_uid);
while (nxtitem(&ni, &plane)) {
- if (plane.pln_own == 0)
- continue;
- if (plane.pln_land == lp->lnd_uid) {
- plane.pln_land = -1;
- if (sect.sct_own != lp->lnd_own) {
- wu(0, plane.pln_own, "Plane %d scuttled in %s\n",
- plane.pln_uid,
- xyas(plane.pln_x, plane.pln_y, plane.pln_own));
- plane.pln_effic = 0;
- } else {
- wu(0, plane.pln_own,
- "Plane %d transferred off unit %d to %s\n",
- plane.pln_uid, lp->lnd_uid,
- xyas(plane.pln_x, plane.pln_y, plane.pln_own));
- }
- putplane(plane.pln_uid, &plane);
+ plane.pln_land = -1;
+ if (sect.sct_own != lp->lnd_own) {
+ wu(0, plane.pln_own, "Plane %d scuttled in %s\n",
+ plane.pln_uid,
+ xyas(plane.pln_x, plane.pln_y, plane.pln_own));
+ plane.pln_effic = 0;
+ } else {
+ wu(0, plane.pln_own,
+ "Plane %d transferred off unit %d to %s\n",
+ plane.pln_uid, lp->lnd_uid,
+ xyas(plane.pln_x, plane.pln_y, plane.pln_own));
}
+ putplane(plane.pln_uid, &plane);
}
- snxtitem_all(&ni, EF_LAND);
+ snxtitem_cargo(&ni, EF_LAND, EF_LAND, lp->lnd_uid);
while (nxtitem(&ni, &land)) {
- if (land.lnd_own == 0)
- continue;
- if (land.lnd_land == lp->lnd_uid) {
- land.lnd_land = -1;
- if (sect.sct_own == lp->lnd_own) {
- wu(0, land.lnd_own,
- "Land unit %d transferred off unit %d to %s\n",
- land.lnd_uid, lp->lnd_uid,
- xyas(land.lnd_x, land.lnd_y, land.lnd_own));
- putland(land.lnd_uid, &land);
- } else
- scuttle_land(&land);
- }
+ land.lnd_land = -1;
+ if (sect.sct_own == lp->lnd_own) {
+ wu(0, land.lnd_own,
+ "Land unit %d transferred off unit %d to %s\n",
+ land.lnd_uid, lp->lnd_uid,
+ xyas(land.lnd_x, land.lnd_y, land.lnd_own));
+ putland(land.lnd_uid, &land);
+ } else
+ scuttle_land(&land);
}
lp->lnd_effic = 0;
putland(lp->lnd_uid, lp);
pp = &p;
lp = &llp;
/* Take over planes */
- snxtitem_all(&ni, EF_PLANE);
+ snxtitem_cargo(&ni, EF_PLANE, EF_SHIP, sp->shp_uid);
while (nxtitem(&ni, pp)) {
- if (pp->pln_ship != sp->shp_uid)
- continue;
- if (pp->pln_own == 0)
- continue;
if (hostile) {
if (pp->pln_effic > PLANE_MINEFF)
pp->pln_effic = PLANE_MINEFF;
putplane(pp->pln_uid, pp);
}
/* Take over land units */
- snxtitem_all(&ni, EF_LAND);
- while (nxtitem(&ni, lp)) {
- if (lp->lnd_ship != sp->shp_uid)
- continue;
- if (lp->lnd_own == 0)
- continue;
+ snxtitem_cargo(&ni, EF_LAND, EF_SHIP, sp->shp_uid);
+ while (nxtitem(&ni, lp))
takeover_land(lp, newown, hostile);
- }
putship(sp->shp_uid, sp);
}
pp = &p;
lp = &llp;
/* Take over planes */
- snxtitem_all(&ni, EF_PLANE);
+ snxtitem_cargo(&ni, EF_PLANE, EF_LAND, landp->lnd_uid);
while (nxtitem(&ni, pp)) {
- if (pp->pln_land != landp->lnd_uid)
- continue;
- if (pp->pln_own == 0)
- continue;
if (hostile) {
if (pp->pln_effic > PLANE_MINEFF)
pp->pln_effic = PLANE_MINEFF;
putplane(pp->pln_uid, pp);
}
/* Take over land units */
- snxtitem_all(&ni, EF_LAND);
- while (nxtitem(&ni, lp)) {
- if (lp->lnd_land != landp->lnd_uid)
- continue;
- if (lp->lnd_own == 0)
- continue;
+ snxtitem_cargo(&ni, EF_LAND, EF_LAND, landp->lnd_uid);
+ while (nxtitem(&ni, lp))
takeover_land(lp, newown, hostile);
- }
putland(landp->lnd_uid, landp);
}
}
pr("] #%d", tp->trd_unitid);
if (opt_SHOWPLANE) {
- snxtitem_all(&ni, EF_PLANE);
+ snxtitem_cargo(&ni, EF_PLANE, EF_SHIP, sp->shp_uid);
while (nxtitem(&ni, &plane)) {
- if (plane.pln_ship == sp->shp_uid && plane.pln_own != 0) {
- pr("\n\t\t\t\t tech %3d %3d%% %s #%d",
- plane.pln_tech,
- plane.pln_effic,
- plchr[(int)plane.pln_type].pl_name, plane.pln_uid);
- if (getnuke(nuk_on_plane(&plane), &nuke))
- pr("(%s)", nchr[nuke.nuk_type].n_name);
- }
+ pr("\n\t\t\t\t tech %3d %3d%% %s #%d",
+ plane.pln_tech,
+ plane.pln_effic,
+ plchr[(int)plane.pln_type].pl_name, plane.pln_uid);
+ if (getnuke(nuk_on_plane(&plane), &nuke))
+ pr("(%s)", nchr[nuke.nuk_type].n_name);
}
- snxtitem_all(&ni, EF_LAND);
+ snxtitem_cargo(&ni, EF_LAND, EF_SHIP, sp->shp_uid);
while (nxtitem(&ni, &land)) {
- if (land.lnd_ship == sp->shp_uid && land.lnd_own != 0) {
- pr("\n\t\t\t\t tech %3d %3d%% %s #%d",
- land.lnd_tech,
- land.lnd_effic,
- lchr[(int)land.lnd_type].l_name, land.lnd_uid);
- if (pln_first_on_land(&land) >= 0) {
- snxtitem_all(&ni, EF_PLANE);
- while (nxtitem(&ni, &plane)) {
- if (plane.pln_land == land.lnd_uid) {
- pr("\n\t\t\t\t tech %3d %3d%% %s #%d",
- plane.pln_tech,
- plane.pln_effic,
- plchr[(int)plane.pln_type].pl_name,
- plane.pln_uid);
- if (getnuke(nuk_on_plane(&plane), &nuke))
- pr("(%s)", nchr[nuke.nuk_type].n_name);
- }
- }
+ pr("\n\t\t\t\t tech %3d %3d%% %s #%d",
+ land.lnd_tech,
+ land.lnd_effic,
+ lchr[(int)land.lnd_type].l_name, land.lnd_uid);
+ if (pln_first_on_land(&land) >= 0) {
+ snxtitem_cargo(&ni, EF_PLANE, EF_LAND, land.lnd_uid);
+ while (nxtitem(&ni, &plane)) {
+ pr("\n\t\t\t\t tech %3d %3d%% %s #%d",
+ plane.pln_tech,
+ plane.pln_effic,
+ plchr[(int)plane.pln_type].pl_name,
+ plane.pln_uid);
+ if (getnuke(nuk_on_plane(&plane), &nuke))
+ pr("(%s)", nchr[nuke.nuk_type].n_name);
}
}
}
}
pr("] #%d", tp->trd_unitid);
if (opt_SHOWPLANE) {
- snxtitem_all(&ni, EF_PLANE);
+ snxtitem_cargo(&ni, EF_PLANE, EF_LAND, lp->lnd_uid);
while (nxtitem(&ni, &plane)) {
- if (plane.pln_land == lp->lnd_uid && plane.pln_own != 0) {
- pr("\n\t\t\t\t tech %3d %3d%% %s #%d",
- plane.pln_tech,
- plane.pln_effic,
- plchr[(int)plane.pln_type].pl_name, plane.pln_uid);
- if (getnuke(nuk_on_plane(&plane), &nuke))
- pr("(%s)", nchr[nuke.nuk_type].n_name);
- }
+ pr("\n\t\t\t\t tech %3d %3d%% %s #%d",
+ plane.pln_tech,
+ plane.pln_effic,
+ plchr[(int)plane.pln_type].pl_name, plane.pln_uid);
+ if (getnuke(nuk_on_plane(&plane), &nuke))
+ pr("(%s)", nchr[nuke.nuk_type].n_name);
}
}
getsect(lp->lnd_x, lp->lnd_y, §);
needed - sp->shp_item[I_FOOD]);
if (needed > sp->shp_item[I_FOOD]) {
/* take from embarked land units, but don't starve them */
- snxtitem_all(&ni, EF_LAND);
+ snxtitem_cargo(&ni, EF_LAND, EF_SHIP, sp->shp_uid);
while ((lp = nxtitemp(&ni)) && needed > sp->shp_item[I_FOOD]) {
- if (lp->lnd_ship != sp->shp_uid)
- continue;
give = lp->lnd_item[I_FOOD] - food_needed(lp->lnd_item, etus);
if (give < 1.0)
continue;