init ef_verify: Don't monkey-patch capability VTOL, require it

A plane with capability missile must have capability VTOL.  When it's
missing, global_init() silently adds it.

Drop that.  Check for it in ef_verify_config() instead.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
This commit is contained in:
Markus Armbruster 2015-02-21 18:56:32 +01:00
parent c0c58222bc
commit a4a25df2f4
2 changed files with 21 additions and 15 deletions

View file

@ -340,6 +340,26 @@ verify_ship_chr(void)
return retval; return retval;
} }
static int
verify_plane_chr(void)
{
int retval = 0;
int i;
for (i = 0; plchr[i].pl_name; i++) {
if (!plchr[i].pl_name[0])
continue;
if ((plchr[i].pl_flags & (P_M | P_V)) == P_M) {
verify_fail(EF_PLANE_CHR, i, NULL, 0,
"flag %s requires flag %s",
symbol_by_value(P_M, plane_chr_flags),
symbol_by_value(P_V, plane_chr_flags));
retval = -1;
}
}
return retval;
}
static int static int
verify_products(void) verify_products(void)
{ {
@ -377,6 +397,7 @@ ef_verify_config(void)
/* Special checks */ /* Special checks */
retval |= verify_ship_chr(); retval |= verify_ship_chr();
retval |= verify_plane_chr();
retval |= verify_products(); retval |= verify_products();
return retval; return retval;
} }

View file

@ -41,7 +41,6 @@
#include "ship.h" #include "ship.h"
static void init_pchr(void); static void init_pchr(void);
static void init_plchr(void);
void void
global_init(void) global_init(void)
@ -49,20 +48,6 @@ global_init(void)
if (opt_RAILWAYS) if (opt_RAILWAYS)
intrchr[INT_RAIL].in_enable = 0; intrchr[INT_RAIL].in_enable = 0;
init_pchr(); init_pchr();
init_plchr();
}
static void
init_plchr(void)
{
struct plchrstr *pp;
for (pp = plchr; pp->pl_name; pp++) {
if (!pp->pl_name[0])
continue;
if (pp->pl_flags & P_M)
pp->pl_flags |= P_V;
}
} }
static void static void