1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-06-29 00:41:38 +02:00

Extract "inherit node" function

This commit is contained in:
AlexVinS
2014-05-19 02:28:44 +04:00
parent e90fae9638
commit eff801f39a
3 changed files with 23 additions and 14 deletions

View File

@ -871,19 +871,14 @@ void CSpellHandler::beforeValidate(JsonNode & object)
JsonNode& levels = object["levels"];
JsonNode& base = levels["base"];
auto inheritNode = [&](JsonNode & dest){
//merging destination node into copy of base node implements inheritance semantic
//detail configuration is priority
//this allows more simplification
JsonNode inheritedNode(base);
JsonUtils::merge(inheritedNode,dest);
dest.swap(inheritedNode);
auto inheritNode = [&](const std::string & name){
JsonUtils::inherit(levels[name],base);
};
inheritNode(levels["none"]);
inheritNode(levels["basic"]);
inheritNode(levels["advanced"]);
inheritNode(levels["expert"]);
inheritNode("none");
inheritNode("basic");
inheritNode("advanced");
inheritNode("expert");
}