From 9b57c3044aad8edbb46d57963fe0151a0b816afa Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Mon, 6 Jan 2014 16:06:41 +0300 Subject: add include support in itemcolors.xml. --- src/resources/db/colordb.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src/resources/db/colordb.cpp') diff --git a/src/resources/db/colordb.cpp b/src/resources/db/colordb.cpp index d4828cc75..d94ac8bce 100644 --- a/src/resources/db/colordb.cpp +++ b/src/resources/db/colordb.cpp @@ -51,7 +51,7 @@ void ColorDB::load() mColorLists["hair"] = colors; if (serverVersion >= 1) - loadColorLists(); + loadColorLists(paths.getStringValue("itemColorsFile")); it = mColorLists.find("hair"); if (it != mColorLists.end()) @@ -86,7 +86,7 @@ void ColorDB::loadHair(const std::string &fileName, loadHair(name, colors); continue; } - if (xmlNameEqual(node, "color")) + else if (xmlNameEqual(node, "color")) { const int id = XML::getProperty(node, "id", 0); @@ -101,10 +101,9 @@ void ColorDB::loadHair(const std::string &fileName, delete doc; } -void ColorDB::loadColorLists() +void ColorDB::loadColorLists(const std::string &fileName) { - XML::Document *doc = new XML::Document( - paths.getStringValue("itemColorsFile")); + XML::Document *doc = new XML::Document(fileName); const XmlNodePtr root = doc->rootNode(); if (!root) { @@ -114,7 +113,14 @@ void ColorDB::loadColorLists() for_each_xml_child_node(node, root) { - if (xmlNameEqual(node, "list")) + if (xmlNameEqual(node, "include")) + { + const std::string name = XML::getProperty(node, "name", ""); + if (!name.empty()) + loadColorLists(name); + continue; + } + else if (xmlNameEqual(node, "list")) { const std::string name = XML::getProperty(node, "name", ""); if (name.empty()) -- cgit v1.2.3-60-g2f50