commands: Always put ship or land unit before retreating it

boar() puts before retreating, the other callers afterwards.  Subtle
difference, because putting resets the owner of the dead to POGO.

Until the commit before previous, retreat didn't fully work after put.
Now it does.  The subtle difference between boar() and the other
callers still exists.  It's better to do it the same everywhere, as
subtle differences invite bugs.  Since changing boar() is not
practical, change the others.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
This commit is contained in:
Markus Armbruster 2015-01-12 22:19:32 +01:00
parent 32b611eb8d
commit f4d8d64bb3
4 changed files with 5 additions and 5 deletions

View file

@ -480,11 +480,11 @@ ship_bomb(struct emp_qelem *list, struct sctstr *target)
pr("%s at %s sunk!\n",
prship(&ship),
xyas(target->sct_x, target->sct_y, player->cnum));
putship(ship.shp_uid, &ship);
if (dam && (ship.shp_rflags & RET_INJURED))
retreat_ship(&ship, ship.shp_own, 'i');
else if (ship.shp_rflags & RET_BOMBED)
retreat_ship(&ship, ship.shp_own, 'b');
putship(ship.shp_uid, &ship);
collateral_damage(target->sct_x, target->sct_y, dam / 2);
}
out:
@ -670,12 +670,12 @@ land_bomb(struct emp_qelem *list, struct sctstr *target)
cname(player->cnum), dam, prland(&land),
xyas(target->sct_x, target->sct_y, own));
landdamage(&land, dam);
putland(land.lnd_uid, &land);
if (dam && (land.lnd_rflags & RET_INJURED))
retreat_land(&land, own, 'i');
else if (land.lnd_rflags & RET_BOMBED)
retreat_land(&land, own, 'b');
nreport(player->cnum, N_UNIT_BOMB, own, 1);
putland(land.lnd_uid, &land);
collateral_damage(target->sct_x, target->sct_y, dam);
}
}

View file

@ -276,9 +276,9 @@ launch_missile(struct plnstr *pp)
shipdamage(&target_ship, dam);
if (target_ship.shp_effic < SHIP_MINEFF)
pr("%s sunk!\n", prship(&target_ship));
putship(target_ship.shp_uid, &target_ship);
if (dam && (target_ship.shp_rflags & RET_INJURED))
retreat_ship(&target_ship, target_ship.shp_own, 'i');
putship(target_ship.shp_uid, &target_ship);
}
return RET_OK;
}

View file

@ -426,13 +426,13 @@ multifire(void)
shipdamage(&vship, dam);
if (vship.shp_effic < SHIP_MINEFF)
pr("%s sunk!\n", prsub(&vship));
putship(vship.shp_uid, &vship);
if (dam && (vship.shp_rflags & RET_INJURED))
retreat_ship(&vship, vict, 'i');
else if (target == targ_sub && (vship.shp_rflags & RET_DCHRGED))
retreat_ship(&vship, vict, 'd');
else if (totaldefdam == 0 && (vship.shp_rflags & RET_HELPLESS))
retreat_ship(&vship, vict, 'h');
putship(vship.shp_uid, &vship);
break;
}
switch (attgp->ef_type) {

View file

@ -188,9 +188,9 @@ torp(void)
shipdamage(&vship, dam);
if (vship.shp_effic < SHIP_MINEFF)
pr("%s sunk!\n", prsub(&vship));
putship(vship.shp_uid, &vship);
if (vship.shp_rflags & RET_TORPED)
retreat_ship(&vship, vshipown, 't');
putship(vship.shp_uid, &vship);
} else {
pr("Missed\n");
if (vshipown != 0)