From: Markus Armbruster Date: Sat, 21 Feb 2015 17:56:32 +0000 (+0100) Subject: init ef_verify: Don't monkey-patch capability VTOL, require it X-Git-Tag: v4.3.33~32 X-Git-Url: http://git.pond.sub.org/?p=empserver;a=commitdiff_plain;h=a4a25df2f4a08cc98a72bfbe3b557e090289b69b;hp=c0c58222bc77e96cadbea5901e713202a5f0ccb4 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 --- diff --git a/src/lib/common/ef_verify.c b/src/lib/common/ef_verify.c index ad62de5b2..dfcacd4a8 100644 --- a/src/lib/common/ef_verify.c +++ b/src/lib/common/ef_verify.c @@ -340,6 +340,26 @@ verify_ship_chr(void) 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 verify_products(void) { @@ -377,6 +397,7 @@ ef_verify_config(void) /* Special checks */ retval |= verify_ship_chr(); + retval |= verify_plane_chr(); retval |= verify_products(); return retval; } diff --git a/src/lib/global/init.c b/src/lib/global/init.c index 736942483..fb17a10be 100644 --- a/src/lib/global/init.c +++ b/src/lib/global/init.c @@ -41,7 +41,6 @@ #include "ship.h" static void init_pchr(void); -static void init_plchr(void); void global_init(void) @@ -49,20 +48,6 @@ global_init(void) if (opt_RAILWAYS) intrchr[INT_RAIL].in_enable = 0; 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