diff options
Diffstat (limited to 'src/Data/Level.h')
-rw-r--r-- | src/Data/Level.h | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/src/Data/Level.h b/src/Data/Level.h index ab660a2..c72b503 100644 --- a/src/Data/Level.h +++ b/src/Data/Level.h @@ -25,6 +25,7 @@ #include "Gate.h" #include "Texture.h" #include <list> +#include <map> namespace ZoomEdit { namespace Data { @@ -33,17 +34,41 @@ class Level { private: Info info; - std::list<Room> rooms; + std::map<Glib::ustring,Room> rooms; xmlpp::Element *roomsNode; - std::list<Gate> gates; + std::map<Glib::ustring,Gate> gates; xmlpp::Element *gatesNode; - std::list<Texture> textures; + std::map<Glib::ustring,Texture> textures; xmlpp::Element *texturesNode; public: Level(xmlpp::Element *levelNode); + + const std::map<Glib::ustring,Room>& getRooms() const {return rooms;} + + Room* getRoom(const Glib::ustring &id); + const Room* getRoom(const Glib::ustring &id) const; + + Room* addRoom(const Glib::ustring &id); + void removeRoom(const Glib::ustring &id); + + const std::map<Glib::ustring,Gate>& getGates() const {return gates;} + + Gate* getGate(const Glib::ustring &id); + const Gate* getGate(const Glib::ustring &id) const; + + Gate* addGate(const Glib::ustring &id); + void removeGate(const Glib::ustring &id); + + const std::map<Glib::ustring,Texture>& getTextures() const {return textures;} + + Texture* getTexture(const Glib::ustring &id); + const Texture* getTexture(const Glib::ustring &id) const; + + Texture* addTexture(const Glib::ustring &id); + void removeTexture(const Glib::ustring &id); }; } |