| 179 | } |
| 180 | |
| 181 | bool LoadModConfig(Module const & mod, Document& json, ExtensionModConfig & config) |
| 182 | { |
| 183 | auto version = GetConfigInt(json, "RequiredVersion"); |
| 184 | if (version) { |
| 185 | config.MinimumVersion = (uint32_t)*version; |
| 186 | } |
| 187 | |
| 188 | auto modTable = GetConfigString(json, "ModTable"); |
| 189 | if (modTable) { |
| 190 | config.ModTable = *modTable; |
| 191 | } |
| 192 | |
| 193 | auto featureFlags = json.FindMember("FeatureFlags"); |
| 194 | if (featureFlags != json.MemberEnd() && featureFlags->value.IsArray()) { |
| 195 | for (auto const & flag : featureFlags->value.GetArray()) { |
| 196 | if (flag.IsString()) { |
| 197 | auto flagStr = flag.GetString(); |
| 198 | if (ExtensionStateBase::sAllFeatureFlags.find(flagStr) != ExtensionStateBase::sAllFeatureFlags.end()) { |
| 199 | config.FeatureFlags.insert(STDString(flagStr)); |
| 200 | } else { |
| 201 | ERR("Feature flag '%s' not supported!", flagStr); |
| 202 | } |
| 203 | } else { |
| 204 | ERR("Garbage found in FeatureFlags array"); |
| 205 | } |
| 206 | } |
| 207 | } |
| 208 | |
| 209 | return true; |
| 210 | } |
| 211 | |
| 212 | bool ExtensionStateBase::HasFeatureFlag(char const * flag) const |
| 213 | { |
no test coverage detected