summaryrefslogtreecommitdiff
path: root/ItemConfiguration.cpp
diff options
context:
space:
mode:
authorJapa Illo2012-03-26 22:03:09 +0200
committerJapa Illo2012-03-26 22:03:09 +0200
commit4d146bbbba642b08465d8ee275612f29bfbbe7ed (patch)
treeb7721d2d64d338ee5b57be967ade98f0b9740c8c /ItemConfiguration.cpp
parentdf37cc7e59b3cf5fadfa680a68793b91810a30ff (diff)
downloadstonesense-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.cpp78
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;