From 5ed8cf4555496ff5636c09ac12be91fb67a2a283 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Tue, 28 May 2013 20:08:11 +0300 Subject: Add support for include in npcs.xml --- src/resources/npcdb.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'src/resources/npcdb.cpp') diff --git a/src/resources/npcdb.cpp b/src/resources/npcdb.cpp index 7b991e7d8..fe10370a5 100644 --- a/src/resources/npcdb.cpp +++ b/src/resources/npcdb.cpp @@ -46,7 +46,13 @@ void NPCDB::load() logger->log1("Initializing NPC database..."); - XML::Document doc(paths.getStringValue("npcsFile")); + loadXmlFile(paths.getStringValue("npcsFile")); + mLoaded = true; +} + +void NPCDB::loadXmlFile(const std::string &fileName) +{ + XML::Document doc(fileName); const XmlNodePtr rootNode = doc.rootNode(); if (!rootNode || !xmlNameEqual(rootNode, "npcs")) @@ -60,6 +66,14 @@ void NPCDB::load() // iterate s for_each_xml_child_node(npcNode, rootNode) { + if (xmlNameEqual(npcNode, "include")) + { + const std::string name = XML::getProperty(npcNode, "name", ""); + if (!name.empty()) + loadXmlFile(name); + continue; + } + if (!xmlNameEqual(npcNode, "npc")) continue; @@ -123,7 +137,6 @@ void NPCDB::load() mNPCInfos[id] = currentInfo; } - mLoaded = true; } void NPCDB::unload() -- cgit v1.2.3-60-g2f50