diff options
| author | Japa Illo | 2012-03-26 22:03:09 +0200 |
|---|---|---|
| committer | Japa Illo | 2012-03-26 22:03:09 +0200 |
| commit | 4d146bbbba642b08465d8ee275612f29bfbbe7ed (patch) | |
| tree | b7721d2d64d338ee5b57be967ade98f0b9740c8c /ItemConfiguration.cpp | |
| parent | df37cc7e59b3cf5fadfa680a68793b91810a30ff (diff) | |
| download | stonesense-4d146bbbba642b08465d8ee275612f29bfbbe7ed.tar.gz stonesense-4d146bbbba642b08465d8ee275612f29bfbbe7ed.tar.bz2 stonesense-4d146bbbba642b08465d8ee275612f29bfbbe7ed.tar.xz | |
Put in sprites for all the items, also made errors go to the console.
Signed-off-by: Japa Illo <japa.mala.illo@gmail.com>
Diffstat (limited to 'ItemConfiguration.cpp')
| -rw-r--r-- | ItemConfiguration.cpp | 78 |
1 files changed, 44 insertions, 34 deletions
diff --git a/ItemConfiguration.cpp b/ItemConfiguration.cpp index 49553c0..ebdeedb 100644 --- a/ItemConfiguration.cpp +++ b/ItemConfiguration.cpp @@ -16,34 +16,53 @@ ItemConfiguration::~ItemConfiguration() subItems.clear(); } - bool addSingleItemConfig( TiXmlElement* elemRoot) { - const char* strGameID = elemRoot->Attribute("game_type"); - const char* strGameSub = elemRoot->Attribute("game_subtype"); - - if (strGameID == NULL || strGameID[0] == 0) - { - contentError("<item> node must game_type attribute",elemRoot); - return false; - } + int basefile = INVALID_INDEX; + const char* filename = elemRoot->Attribute("file"); + if (filename != NULL && filename[0] != 0) + { + basefile = loadConfigImgFile((char*)filename,elemRoot); + if(basefile == -1) return false; + } + + + TiXmlElement* elemFloor = elemRoot->FirstChildElement("item"); + while( elemFloor ) + { + parseItemElement( elemFloor, basefile); + elemFloor = elemFloor->NextSiblingElement("item"); + } + return true; +} + +bool parseItemElement( TiXmlElement* elemRoot, int basefile) +{ + const char* strGameID = elemRoot->Attribute("game_type"); + const char* strGameSub = elemRoot->Attribute("game_subtype"); + + if (strGameID == NULL || strGameID[0] == 0) + { + contentError("<item> node must game_type attribute",elemRoot); + return false; + } item_type::item_type main_type = (item_type::item_type) INVALID_INDEX; - int subtype = INVALID_INDEX; - string game_type_s; - FOR_ENUM_ITEMS(item_type,i) - { - game_type_s = strGameID; - if (game_type_s == ENUM_KEY_STR(item_type,i)) - { - main_type = i; - break; - } - } - if(main_type == (item_type::item_type) INVALID_INDEX) - { - contentError("<item> unknown game_type value",elemRoot); - return false; - } + int subtype = INVALID_INDEX; + string game_type_s; + FOR_ENUM_ITEMS(item_type,i) + { + game_type_s = strGameID; + if (game_type_s == ENUM_KEY_STR(item_type,i)) + { + main_type = i; + break; + } + } + if(main_type == (item_type::item_type) INVALID_INDEX) + { + contentError("<item> unknown game_type value",elemRoot); + return false; + } if(strGameSub && strGameSub[0] != 0) { @@ -62,15 +81,6 @@ bool addSingleItemConfig( TiXmlElement* elemRoot) else subtype = itemdef.subtype; } - int basefile = -1; - - const char* filename = elemRoot->Attribute("file"); - if (filename != NULL && filename[0] != 0) - { - basefile = loadConfigImgFile((char*)filename, elemRoot); - if(basefile == -1) return false; - } - c_sprite sprite; |
