assault attack board lboard paradrop: Fix defending land unit supply
get_dlist() collects defending land units in a list, and resupplies
them. Bug: it uses a local copy instead of the one in the list. When
att_fight() writes back the list, the commodities supplied get wiped
out, triggering a seqno oops. Broken in commit 62b9399cd
"subs:
Factor lnd_insque() out of lnd_sel(), ask_olist(), ...", v4.3.33.
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
This commit is contained in:
parent
8fc2c0ffa2
commit
e5bccdd52e
1 changed files with 4 additions and 4 deletions
|
@ -29,7 +29,7 @@
|
|||
* Known contributors to this file:
|
||||
* Ken Stevens, 1995
|
||||
* Steve McClure, 1996-2000
|
||||
* Markus Armbruster, 2006-2016
|
||||
* Markus Armbruster, 2006-2021
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
|
@ -1206,13 +1206,13 @@ get_dlist(struct combat *def, struct emp_qelem *list, int a_spy,
|
|||
intelligence_report(player->cnum, &land, a_spy,
|
||||
"Scouts report defending unit:");
|
||||
llp = lnd_insque(&land, list);
|
||||
llp->supplied = lnd_supply_all(&land);
|
||||
llp->supplied = lnd_supply_all(&llp->unit.land);
|
||||
llp->mobil = 0.0;
|
||||
llp->x = llp->unit.land.lnd_x;
|
||||
llp->y = llp->unit.land.lnd_y;
|
||||
llp->eff = llp->unit.land.lnd_effic;
|
||||
if (lnd_spyval(&land) > *d_spyp)
|
||||
*d_spyp = lnd_spyval(&land);
|
||||
if (lnd_spyval(&llp->unit.land) > *d_spyp)
|
||||
*d_spyp = lnd_spyval(&llp->unit.land);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue