MCPcopy Create free account
hub / github.com/Norbyte/bg3se / LoadModConfig

Function LoadModConfig

BG3Extender/Extender/Shared/ExtensionState.cpp:181–210  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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 {

Callers 1

LoadConfigMethod · 0.85

Calls 6

GetConfigIntFunction · 0.85
GetConfigStringFunction · 0.85
GetStringMethod · 0.80
findMethod · 0.45
endMethod · 0.45
insertMethod · 0.45

Tested by

no test coverage detected