Skip to content

Commit

Permalink
Add new type of node that allow ignore ruleset
Browse files Browse the repository at this point in the history
  • Loading branch information
Yankes committed Jan 20, 2024
1 parent 3cc5259 commit 25e5545
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 3 deletions.
7 changes: 6 additions & 1 deletion src/Engine/Script.cpp
Expand Up @@ -3684,11 +3684,12 @@ void ScriptParserEventsBase::load(const YAML::Node& scripts)
const auto newNode = getNode(i, "new");
const auto overrideNode = getNode(i, "override");
const auto updateNode = getNode(i, "update");
const auto ignoreNode = getNode(i, "ignore");

{
// check for duplicates
const std::tuple<std::string, YAML::Node, bool>* last = nullptr;
for (auto* p : { &deleteNode, &newNode, &updateNode, &overrideNode })
for (auto* p : { &deleteNode, &newNode, &updateNode, &overrideNode, &ignoreNode })
{
if (haveNode(*p))
{
Expand Down Expand Up @@ -3768,6 +3769,10 @@ void ScriptParserEventsBase::load(const YAML::Node& scripts)
throw Exception("Unknown script name '" + name + "' for " + getDescriptionNode(overrideNode));
}
}
else if (haveNode(ignoreNode))
{
// nothing to see there...
}
else
{
std::string name;
Expand Down
11 changes: 9 additions & 2 deletions src/Mod/Mod.cpp
Expand Up @@ -1566,6 +1566,7 @@ const std::string YamlRuleNodeDelete = "delete";
const std::string YamlRuleNodeNew = "new";
const std::string YamlRuleNodeOverride = "override";
const std::string YamlRuleNodeUpdate = "update";
const std::string YamlRuleNodeIgnore = "ignore";


void loadRuleInfoHelper(const YAML::Node &node, const char* nodeName, const char* type)
Expand All @@ -1578,6 +1579,7 @@ void loadRuleInfoHelper(const YAML::Node &node, const char* nodeName, const char
info.get() << " '" << YamlRuleNodeNew << ":',";
info.get() << " '" << YamlRuleNodeOverride << ":',";
info.get() << " '" << YamlRuleNodeUpdate << ":',";
info.get() << " '" << YamlRuleNodeIgnore << ":',";
info.get() << " '" << type << ":'";
}
}
Expand Down Expand Up @@ -3564,11 +3566,12 @@ T *Mod::loadRule(const YAML::Node &node, std::map<std::string, T*> *map, std::ve
const auto newNode = getNode(node, YamlRuleNodeNew);
const auto overrideNode = getNode(node, YamlRuleNodeOverride);
const auto updateNode = getNode(node, YamlRuleNodeUpdate);
const auto ignoreNode = getNode(node, YamlRuleNodeIgnore);

{
// check for duplicates
const std::tuple<std::string, YAML::Node, bool>* last = nullptr;
for (auto* p : { &defaultNode, &deleteNode, &newNode, &updateNode, &overrideNode })
for (auto* p : { &defaultNode, &deleteNode, &newNode, &updateNode, &overrideNode, &ignoreNode })
{
if (haveNode(*p))
{
Expand Down Expand Up @@ -3690,9 +3693,13 @@ T *Mod::loadRule(const YAML::Node &node, std::map<std::string, T*> *map, std::ve
Log(LOG_INFO) << "Rule named '" << type << "' do not exist for " << getDescriptionNode(updateNode);
}
}
else if (haveNode(ignoreNode))
{
// nothing to see there...
}
else
{
//no correct id throw exception?
checkForObsoleteErrorByYear("Mod", node, "Missing main node", 2024);
}

return rule;
Expand Down

0 comments on commit 25e5545

Please sign in to comment.