Fix a bug in attack that could wipe out land unit updates

A victorious attacker can move attacking land units into the newly
conquered sector or leave them behind.  Normally, the player is asked
what to do, but when the land unit's army has already been told to
stay behind, or the command has been aborted, the land unit stays
behind without asking.  In that case, a copy of the land unit made
right after the victory was written back.  Any updates since the
victory were wiped out, triggering a seqno mismatch oops.

Fix by moving the re-read of the land unit in ask_move_in() out of the
prompt conditional.
This commit is contained in:
Markus Armbruster 2009-03-08 11:54:04 +01:00
parent 6b75c21e3c
commit e03eaeae23

View file

@ -2288,9 +2288,9 @@ ask_move_in(struct combat *off, struct emp_qelem *olist,
*answerp = 'N'; *answerp = 'N';
if (*answerp == 'Y') if (*answerp == 'Y')
continue; continue;
if (!get_land(A_ATTACK, def, llp->unit.land.lnd_uid, llp, 0))
continue;
if (*answerp != 'N') { if (*answerp != 'N') {
if (!get_land(A_ATTACK, def, llp->unit.land.lnd_uid, llp, 0))
continue;
sprintf(prompt, "Move in with %s (%c %d%%) [ynYNq?] ", sprintf(prompt, "Move in with %s (%c %d%%) [ynYNq?] ",
prland(&llp->unit.land), prland(&llp->unit.land),
llp->unit.land.lnd_army ? llp->unit.land.lnd_army : '~', llp->unit.land.lnd_army ? llp->unit.land.lnd_army : '~',