summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIra Rice <irarice@gmail.com>2008-12-02 18:08:12 -0700
committerIra Rice <irarice@gmail.com>2008-12-02 18:08:12 -0700
commit7882d3dfcac6b2894d33947d4dca5df375712646 (patch)
tree1d401017d1d43420819398cd4f0004b9de278117 /src
parent84164bd6cb597fe45f54e97cf9c8991e93e9a803 (diff)
downloadmana-7882d3dfcac6b2894d33947d4dca5df375712646.tar.gz
mana-7882d3dfcac6b2894d33947d4dca5df375712646.tar.bz2
mana-7882d3dfcac6b2894d33947d4dca5df375712646.tar.xz
mana-7882d3dfcac6b2894d33947d4dca5df375712646.zip
Added the ability to use external tilesets in the client.
Signed-off-by: Ira Rice <irarice@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/gui/status.h2
-rw-r--r--src/resources/mapreader.cpp15
2 files changed, 13 insertions, 4 deletions
diff --git a/src/gui/status.h b/src/gui/status.h
index 55ed393e..4fbce445 100644
--- a/src/gui/status.h
+++ b/src/gui/status.h
@@ -68,7 +68,7 @@ class StatusWindow : public Window, public gcn::ActionListener
/**
* Status Part
*/
- gcn::Label *mLvlLabel, *mGpLabel, *mHpLabel, *mHpValueLabel;
+ gcn::Label *mLvlLabel, *mJobLvlLabel, *mGpLabel, *mHpLabel, *mHpValueLabel;
gcn::Label *mMpLabel, *mMpValueLabel;
gcn::Label *mXpLabel, *mXpValueLabel, *mJobXpLabel, *mJobValueLabel;
ProgressBar *mHpBar, *mMpBar;
diff --git a/src/resources/mapreader.cpp b/src/resources/mapreader.cpp
index d6154ee0..b1068510 100644
--- a/src/resources/mapreader.cpp
+++ b/src/resources/mapreader.cpp
@@ -446,13 +446,17 @@ MapReader::readTileset(xmlNodePtr node,
const std::string &path,
Map *map)
{
+ int firstGid = XML::getProperty(node, "firstgid", 0);
+ XML::Document* doc = NULL;
+
if (xmlHasProp(node, BAD_CAST "source"))
{
- logger->log("Warning: External tilesets not supported yet.");
- return NULL;
+ std::string filename = XML::getProperty(node, "source", "");
+ doc = new XML::Document(filename);
+ node = doc->rootNode();
+ firstGid += XML::getProperty(node, "firstgid", 0);
}
- const int firstGid = XML::getProperty(node, "firstgid", 0);
const int tw = XML::getProperty(node, "tilewidth", map->getTileWidth());
const int th = XML::getProperty(node, "tileheight", map->getTileHeight());
@@ -475,6 +479,8 @@ MapReader::readTileset(xmlNodePtr node,
{
Tileset *set = new Tileset(tilebmp, tw, th, firstGid);
tilebmp->decRef();
+ if (doc)
+ delete doc;
return set;
}
else {
@@ -486,5 +492,8 @@ MapReader::readTileset(xmlNodePtr node,
break;
}
+ if (doc)
+ delete doc;
+
return NULL;
}