static void loadDB(const std::string &name, WeaponsInfos &arr) { readXmlIntVector("weapons.xml", "weapons", name, "item", "id", arr); }
static void loadDB(const std::string &name, WeaponsInfos &arr) { readXmlIntVector(paths.getStringValue("weaponsFile"), "weapons", name, "item", "id", arr); }
void readXmlIntVector(const std::string &fileName, const std::string &rootName, const std::string §ionName, const std::string &itemName, const std::string &attributeName, STD_VECTOR<int> &arr, const SkipError skipError) { XML::Document doc(fileName, UseVirtFs_true, skipError); XmlNodeConstPtrConst rootNode = doc.rootNode(); if (rootNode == nullptr || !xmlNameEqual(rootNode, rootName.c_str())) { logger->log("Error while loading %s!", fileName.c_str()); return; } for_each_xml_child_node(sectionNode, rootNode) { if (!xmlNameEqual(sectionNode, sectionName.c_str())) continue; for_each_xml_child_node(childNode, sectionNode) { if (xmlNameEqual(childNode, itemName.c_str())) { const int val = XML::getProperty(childNode, attributeName.c_str(), -1); if (val == -1) continue; arr.push_back(val); } else if (xmlNameEqual(childNode, "include")) { const std::string name = XML::getProperty( childNode, "name", ""); if (!name.empty()) { readXmlIntVector(name, rootName, sectionName, itemName, attributeName, arr, skipError); } } } } }
void NetworkDb::loadXmlFile(const std::string &fileName, const SkipError skipError) { readXmlIntMap(fileName, "network", "inpackets", "fakepacket", "id", "len", mInPackets, skipError); readXmlIntVector(fileName, "network", "inpackets", "removepacket", "id", mRemovePackets, skipError); }