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>
Sat, 20 Mar 2010 13:57:05 +0000 (14:57 +0100)
commit28cc236e1264d57a06dfb89cf43a600ba88d271c
tree10318919596e629fd6d84cd73696b6d0140f2456
parent45106ab91ffe6193bc90a725e8a07a7a3997f54c
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.
src/lib/commands/navi.c