ef_verify: Require land unit milit == 0 with capability spy

The rules for spy units make little sense unless spies carry no
military.  For instance, spies die when they take casualties in ground
combat.  There seems to be a tacit assumption that spies have no
military.  I don't trust the code to behave unless this assumption is
met.  Require it before an overly adventurous deity finds out the
painful way that spies with military don't work.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
This commit is contained in:
Markus Armbruster 2016-07-23 09:26:44 +02:00
parent 73e7765981
commit 33800fc732

View file

@ -358,6 +358,24 @@ verify_plane_chr(void)
return retval; return retval;
} }
static int
verify_land_chr(void)
{
int retval = 0;
int i;
for (i = 0; lchr[i].l_name; i++) {
if (!lchr[i].l_name[0])
continue;
if ((lchr[i].l_flags & L_SPY) && lchr[i].l_item[I_MILIT]) {
verify_fail(EF_PLANE_CHR, i, NULL, 0,
"flag %s requires zero milit",
symbol_by_value(L_SPY, land_chr_flags));
retval = -1;
}
}
return retval;
}
static int static int
verify_products(void) verify_products(void)
{ {
@ -395,6 +413,7 @@ ef_verify_config(void)
/* Special checks */ /* Special checks */
retval |= verify_ship_chr(); retval |= verify_ship_chr();
retval |= verify_plane_chr(); retval |= verify_plane_chr();
retval |= verify_land_chr();
retval |= verify_products(); retval |= verify_products();
return retval; return retval;
} }