X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCockpit%2FNavDisplay.cxx;h=4c96c3ddea44e28b78e390634ea4a5cf20b5ec20;hb=239a0007631da53c68ca9c8e7989957c567acac9;hp=efd2c30a33b88008da83f4b816dd5c2342493c8f;hpb=851029143e20fcfdac96253a63e3d07fd267d95f;p=flightgear.git diff --git a/src/Cockpit/NavDisplay.cxx b/src/Cockpit/NavDisplay.cxx index efd2c30a3..4c96c3dde 100644 --- a/src/Cockpit/NavDisplay.cxx +++ b/src/Cockpit/NavDisplay.cxx @@ -46,6 +46,7 @@ #include #include +#include #include #include #include // for cout, endl @@ -69,7 +70,7 @@ using std::string; #include #include #include -#include +#include #include #include "od_gauge.hxx" @@ -476,28 +477,23 @@ NavDisplay::NavDisplay(SGPropertyNode *node) : _definitions.push_back(def); } // of symbol definition parsing - SGPropertyNode* rulesNode = node->getNode("rules"); - if (rulesNode) { - SGPropertyNode* rule; + BOOST_FOREACH(SGPropertyNode* rule, symbolsNode->getChildren("rule")) { + SymbolRule* r = new SymbolRule; + if (!r->initFromNode(rule, this)) { + delete r; + continue; + } - for (int i = 0; (rule = rulesNode->getChild("rule", i)) != NULL; ++i) { - SymbolRule* r = new SymbolRule; - if (!r->initFromNode(rule, this)) { - delete r; - continue; - } - - const char* id = symbol->getStringValue("symbol"); - if (id && strlen(id) && (definitionDict.find(id) != definitionDict.end())) { - r->setDefinition(definitionDict[id]); - } else { - SG_LOG(SG_INSTR, SG_WARN, "symbol rule has missing/unknown definition id:" << id); - delete r; - continue; - } - - addRule(r); - } // of symbol rule parsing + const char* id = rule->getStringValue("symbol"); + if (id && strlen(id) && (definitionDict.find(id) != definitionDict.end())) { + r->setDefinition(definitionDict[id]); + } else { + SG_LOG(SG_INSTR, SG_WARN, "symbol rule has missing/unknown definition id:" << id); + delete r; + continue; + } + + addRule(r); } }