/* * Level.h * * Copyright (C) 2008 Matthias Schiffer * * This program is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . */ #ifndef ZOOMEDIT_DATA_LEVEL_H_ #define ZOOMEDIT_DATA_LEVEL_H_ #include "Info.h" #include "Room.h" #include "Gate.h" #include "Texture.h" #include #include namespace ZoomEdit { namespace Data { class Level { private: Info info; std::map rooms; xmlpp::Element *roomsNode; std::map gates; xmlpp::Element *gatesNode; std::map textures; xmlpp::Element *texturesNode; public: Level(xmlpp::Element *levelNode); const std::map& 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& 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& 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); }; } } #endif /*ZOOMEDIT_DATA_LEVEL_H_*/