diff options
author | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2008-04-07 08:37:23 +0000 |
---|---|---|
committer | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2008-04-07 08:37:23 +0000 |
commit | 64d58b9a7e057e6d829107678b1570082be1093f (patch) | |
tree | f95a940521150e8f5bbab1bba520c956c8b2aed9 /src/resources/itemdb.cpp | |
parent | 36a53a1d5e3b558dafe200a6929948e7730c94f0 (diff) | |
download | mana-64d58b9a7e057e6d829107678b1570082be1093f.tar.gz mana-64d58b9a7e057e6d829107678b1570082be1093f.tar.bz2 mana-64d58b9a7e057e6d829107678b1570082be1093f.tar.xz mana-64d58b9a7e057e6d829107678b1570082be1093f.zip |
Added XML::Document class which simplifies parsing an XML document and
automatically cleans it up again.
Diffstat (limited to 'src/resources/itemdb.cpp')
-rw-r--r-- | src/resources/itemdb.cpp | 22 |
1 files changed, 3 insertions, 19 deletions
diff --git a/src/resources/itemdb.cpp b/src/resources/itemdb.cpp index d507987a..ada9482f 100644 --- a/src/resources/itemdb.cpp +++ b/src/resources/itemdb.cpp @@ -103,26 +103,12 @@ void ItemDB::load() mUnknown->setSprite("error.xml", GENDER_MALE); mUnknown->setSprite("error.xml", GENDER_FEMALE); - ResourceManager *resman = ResourceManager::getInstance(); - int size; - char *data = (char*) resman->loadFile("items.xml", size); + XML::Document doc("items.xml"); + xmlNodePtr rootNode = doc.rootNode(); - if (!data) { - logger->error("ItemDB: Could not find items.xml!"); - } - - xmlDocPtr doc = xmlParseMemory(data, size); - free(data); - - if (!doc) - { - logger->error("ItemDB: Error while parsing item database (items.xml)!"); - } - - xmlNodePtr rootNode = xmlDocGetRootElement(doc); if (!rootNode || !xmlStrEqual(rootNode->name, BAD_CAST "items")) { - logger->error("ItemDB: items.xml is not a valid database file!"); + logger->error("ItemDB: Error while loading items.xml!"); } for_each_xml_child_node(node, rootNode) @@ -200,8 +186,6 @@ void ItemDB::load() #undef CHECK_PARAM } - xmlFreeDoc(doc); - mLoaded = true; } |