From 444ae43aa4e82eae8d9d82bc26fea4e5149a8fce Mon Sep 17 00:00:00 2001 From: Fabian Woltermann Date: Tue, 23 Aug 2016 14:37:43 +0200 Subject: [PATCH] Fixes an issue when parsing the weapon info flagset. --- code/parse/parselo.h | 3 ++- code/weapon/weapons.cpp | 4 ---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/code/parse/parselo.h b/code/parse/parselo.h index 68767428fc..ff5287942f 100644 --- a/code/parse/parselo.h +++ b/code/parse/parselo.h @@ -160,7 +160,8 @@ int parse_string_flag_list(Flagset& dest, flag_def_list_new defs [], size_t n for (size_t j = 0; j < n_defs; j++) { if (!stricmp(slp[i], defs[j].name)) { - dest.set(defs[j].def); + if (defs[j].def != T::NUM_VALUES) //Needed due to a few special cases amongst the weapon info flagset + dest.set(defs[j].def); if (!defs[j].is_special) string_parsed = true; diff --git a/code/weapon/weapons.cpp b/code/weapon/weapons.cpp index 1e462f39e6..13668609fa 100644 --- a/code/weapon/weapons.cpp +++ b/code/weapon/weapons.cpp @@ -569,7 +569,6 @@ void parse_wi_flags(weapon_info *weaponp, flagset wi_flags) weaponp->wi_flags = wi_flags; } - bool set_pierce = false; bool set_nopierce = false; if (unparsed_or_special.size() > 0) { @@ -615,9 +614,6 @@ void parse_wi_flags(weapon_info *weaponp, flagset wi_flags) Warning(LOCATION, "Illegal to have more than %d spawn types for one weapon.\nIgnoring weapon %s", MAX_SPAWN_TYPES_PER_WEAPON, weaponp->name); } } - else if (!stricmp(NOX("pierce shields"), flag_text.c_str())) { - set_pierce = true; - } else if (!stricmp(NOX("no pierce shields"), flag_text.c_str())) { set_nopierce = true; }