@@ -32,10 +32,12 @@ source distribution.
3232#include < tmxlite/Layer.hpp>
3333#include < tmxlite/Property.hpp>
3434#include < tmxlite/Types.hpp>
35+ #include < tmxlite/Object.hpp>
3536
3637#include < string>
3738#include < vector>
3839#include < map>
40+ #include < unordered_map>
3941
4042namespace tmx
4143{
@@ -181,6 +183,26 @@ namespace tmx
181183 */
182184 const std::map<std::uint32_t , Tileset::Tile>& getAnimatedTiles () const { return m_animTiles; }
183185
186+ /* !
187+ \brief Returns the current working directory of the map. Images and
188+ other resources are loaded relative to this.
189+ */
190+ const std::string& getWorkingDirectory () const { return m_workingDirectory; }
191+
192+ /* !
193+ \brief Returns an unordered_map of template objects indexed by file name
194+ */
195+ std::unordered_map<std::string, Object>& getTemplateObjects () { return m_templateObjects; }
196+ const std::unordered_map<std::string, Object>& getTemplateObjects () const { return m_templateObjects; }
197+
198+ /* !
199+ \brief Returns an unordered_map of tilesets used by templated objects.
200+ If Object::getTileSetName() is not empty it can be used to retreive a tileset
201+ from this map. Otherwise the object's tileset can be found from in the map's
202+ global tilesets returned by getTilesets().
203+ */
204+ std::unordered_map<std::string, Tileset>& getTemplateTilesets () { return m_templateTilesets; }
205+ const std::unordered_map<std::string, Tileset>& getTemplateTilesets () const { return m_templateTilesets; }
184206
185207 private:
186208 Version m_version;
@@ -203,6 +225,9 @@ namespace tmx
203225 std::vector<Property> m_properties;
204226 std::map<std::uint32_t , Tileset::Tile> m_animTiles;
205227
228+ std::unordered_map<std::string, Object> m_templateObjects;
229+ std::unordered_map<std::string, Tileset> m_templateTilesets;
230+
206231 // always returns false so we can return this
207232 // on load failure
208233 bool reset ();
0 commit comments