navigate march: Fix abort not to wipe out concurrent updates
When the player aborts the command at the movement prompt, we write
back stale ships or land units, triggering a generation oops. Any
updates made by other threads meanwhile are wiped out, triggering a
seqno mismatch oops.
Broken in commit 24000b4
, v4.3.33. Fix by restoring the lost
shp_nav_stay_behind() and lnd_mar_stay_behind() calls.
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
This commit is contained in:
parent
354b6aea3d
commit
42a3c10fd9
2 changed files with 5 additions and 6 deletions
|
@ -407,10 +407,13 @@ unit_move(struct emp_qelem *list)
|
|||
if (!*cp) {
|
||||
cp = unit_move_getpath(list, suppress_map, path);
|
||||
if (!cp) {
|
||||
if (type == EF_SHIP)
|
||||
if (type == EF_SHIP) {
|
||||
shp_nav_stay_behind(list, player->cnum);
|
||||
shp_nav_put(list, player->cnum);
|
||||
else
|
||||
} else {
|
||||
lnd_mar_stay_behind(list, player->cnum);
|
||||
lnd_mar_put(list, player->cnum);
|
||||
}
|
||||
return RET_FAIL;
|
||||
}
|
||||
cp = unit_move_route(leader, path, sizeof(path));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue