Use new snxtitem_cargo() to simplify a couple of loops

Change snxtitem_all() loops that skip everything but a carrier's cargo
to use snxtitem_cargo() in scra(), scuttle_ship(), scuttle_land(),
takeover_ship(), takeover_land(), trade_desc(), feed_ship().
This commit is contained in:
Markus Armbruster 2008-09-12 21:22:14 -04:00
parent 3cf29456fe
commit 2a9b89693e
5 changed files with 138 additions and 198 deletions

View file

@ -178,49 +178,41 @@ scra(void)
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, &sect2);
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);
@ -235,50 +227,42 @@ scra(void)
sect.sct_item[I_HCM] += lp->l_hcm * 2 / 3 * eff;
getsect(item.land.lnd_x, item.land.lnd_y, &sect2);
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);

View file

@ -244,41 +244,33 @@ scuttle_ship(struct shpstr *sp)
struct lndstr land;
getsect(sp->shp_x, sp->shp_y, &sect);
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);
@ -293,41 +285,33 @@ scuttle_land(struct lndstr *lp)
struct lndstr land;
getsect(lp->lnd_x, lp->lnd_y, &sect);
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);