diff options
author | Philipp Sehmisch <tmw@crushnet.org> | 2008-05-21 21:44:27 +0000 |
---|---|---|
committer | Philipp Sehmisch <tmw@crushnet.org> | 2008-05-21 21:44:27 +0000 |
commit | 0ac3b58c4c5079f22e6bf4b0efba7f5fe99565cd (patch) | |
tree | 6b2a208fac407cf5cf4ddcab2c5e1ebc2b9723dc /src/resources/monsterdb.cpp | |
parent | 0c869fc47a30616967cb8b69af9ec772566d7076 (diff) | |
download | mana-0ac3b58c4c5079f22e6bf4b0efba7f5fe99565cd.tar.gz mana-0ac3b58c4c5079f22e6bf4b0efba7f5fe99565cd.tar.bz2 mana-0ac3b58c4c5079f22e6bf4b0efba7f5fe99565cd.tar.xz mana-0ac3b58c4c5079f22e6bf4b0efba7f5fe99565cd.zip |
Merged revisions 4013,4027,4043,4174,4250,4254 via svnmerge from
https://themanaworld.svn.sourceforge.net/svnroot/themanaworld/tmw/trunk
........
r4013 | crush_tmw | 2008-04-01 01:18:19 +0200 (Di, 01 Apr 2008) | 1 line
Implemented NPC XML database which maps NPC IDs to one or more animation files and thus enables animated NPCs.
........
r4027 | crush_tmw | 2008-04-02 01:34:14 +0200 (Mi, 02 Apr 2008) | 1 line
misspelled filename
........
r4043 | b_lindeijer | 2008-04-07 10:37:23 +0200 (Mo, 07 Apr 2008) | 3 lines
Added XML::Document class which simplifies parsing an XML document and
automatically cleans it up again.
........
r4174 | b_lindeijer | 2008-04-23 14:57:45 +0200 (Mi, 23 Apr 2008) | 2 lines
Fixed svn:keywords properties and added header to guild.h.
........
r4250 | crush_tmw | 2008-05-19 18:18:38 +0200 (Mo, 19 Mai 2008) | 1 line
Added the possibility to add particle effects to NPCs in npcs.xml.
........
r4254 | crush_tmw | 2008-05-20 15:58:26 +0200 (Di, 20 Mai 2008) | 1 line
fixed some filename confusion messup in the last commit.
........
NOTE: This was my first commit using svnmerge. Please check if I did everything correctly.
Diffstat (limited to 'src/resources/monsterdb.cpp')
-rw-r--r-- | src/resources/monsterdb.cpp | 29 |
1 files changed, 6 insertions, 23 deletions
diff --git a/src/resources/monsterdb.cpp b/src/resources/monsterdb.cpp index e007eda0..0a98762f 100644 --- a/src/resources/monsterdb.cpp +++ b/src/resources/monsterdb.cpp @@ -50,27 +50,12 @@ MonsterDB::load() logger->log("Initializing monster database..."); - ResourceManager *resman = ResourceManager::getInstance(); - int size; - char *data = (char*)resman->loadFile("monsters.xml", size); + XML::Document doc("monsters.xml"); + xmlNodePtr rootNode = doc.rootNode(); - if (!data) - { - logger->error("Monster Database: Could not find monsters.xml!"); - } - - xmlDocPtr doc = xmlParseMemory(data, size); - free(data); - - if (!doc) - { - logger->error("Monster Database: Error while parsing monster database (monsters.xml)!"); - } - - xmlNodePtr rootNode = xmlDocGetRootElement(doc); if (!rootNode || !xmlStrEqual(rootNode->name, BAD_CAST "monsters")) { - logger->error("Monster Database: monster.xml is not a valid database file!"); + logger->error("Monster Database: Error while loading monster.xml!"); } //iterate <monster>s @@ -152,16 +137,14 @@ MonsterDB::load() mMonsterInfos[XML::getProperty(monsterNode, "id", 0)] = currentInfo; } - xmlFreeDoc(doc); - mLoaded = true; } void MonsterDB::unload() { - for_each ( mMonsterInfos.begin(), mMonsterInfos.end(), - make_dtor(mMonsterInfos)); + for_each(mMonsterInfos.begin(), mMonsterInfos.end(), + make_dtor(mMonsterInfos)); mMonsterInfos.clear(); mLoaded = false; @@ -169,7 +152,7 @@ MonsterDB::unload() const MonsterInfo& -MonsterDB::get (int id) +MonsterDB::get(int id) { MonsterInfoIterator i = mMonsterInfos.find(id); |