Пример #1
0
static void loadDB(const std::string &name, WeaponsInfos &arr)
{
    readXmlIntVector("weapons.xml",
        "weapons",
        name,
        "item",
        "id",
        arr);
}
Пример #2
0
static void loadDB(const std::string &name, WeaponsInfos &arr)
{
    readXmlIntVector(paths.getStringValue("weaponsFile"),
        "weapons",
        name,
        "item",
        "id",
        arr);
}
Пример #3
0
void readXmlIntVector(const std::string &fileName,
                      const std::string &rootName,
                      const std::string &sectionName,
                      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);
                }
            }
        }
    }
}
Пример #4
0
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);
}