Fix navigate and march not to lay mines free of charge
authorMarkus Armbruster <armbru@pond.sub.org>
Sat, 13 Mar 2010 21:47:13 +0000 (22:47 +0100)
committerMarkus Armbruster <armbru@pond.sub.org>
Sun, 21 Mar 2010 08:34:29 +0000 (09:34 +0100)
commit03a9ab2cf6cbe3221c43a8f24836848a422b1735
tree8ff4e6d4d144122fbcf46f608f5dfb25876b96e1
parent89992611193563b722e08b3e2faa38666c1e1ecf
Fix navigate and march not to lay mines free of charge

do_unit_move() reads the ships into a list.  It re-reads them when it
prompts for sub-commands.  shp_nav_one_sector() writes them back when
it moves ships.

Mine-laying (sub-command 'd') updates the minelayer, invalidating the
copy in the list.  Any movement sub-command before the next prompt for
sub-commands wiped out this update, triggering a seno mismatch oops.

Happens only if 'd' is used without arguments, because remaining
sub-commands are discarded when there are arguments.

Broken when mine-laying was added in commits 2438fe7c, v4.3.7.

Same for march, commit 274c8e42, v4.3.7.

Fix by stopping after 'd' regardless of arguments.
(cherry picked from commit 28cc236e1264d57a06dfb89cf43a600ba88d271c)
src/lib/commands/navi.c