nuclear@0: #ifndef LEVEL_H_ nuclear@0: #define LEVEL_H_ nuclear@0: nuclear@2: #include nuclear@2: #include nuclear@2: #include nuclear@0: #include "tinyxml2.h" nuclear@0: nuclear@2: class LevelMap; nuclear@2: nuclear@0: class Level { nuclear@0: private: nuclear@0: tinyxml2::XMLDocument xml; nuclear@2: std::map levelmaps; nuclear@0: nuclear@0: public: nuclear@0: Level(); nuclear@0: ~Level(); nuclear@0: nuclear@0: bool load(const char *fname); nuclear@0: }; nuclear@0: nuclear@2: class LevelMap { nuclear@2: private: nuclear@2: float scale; nuclear@2: img_pixmap img; nuclear@2: char *name; nuclear@2: nuclear@2: void init(); nuclear@2: void destroy(); nuclear@2: nuclear@0: public: nuclear@2: LevelMap(); nuclear@2: ~LevelMap(); nuclear@2: nuclear@2: LevelMap(const LevelMap &map); nuclear@2: LevelMap &operator =(const LevelMap &map); nuclear@2: nuclear@2: // move constructor/op= nuclear@2: LevelMap(LevelMap &&map); nuclear@2: LevelMap &operator =(LevelMap &&map); nuclear@2: nuclear@2: bool load(tinyxml2::XMLElement *xelem); nuclear@2: nuclear@2: float get_scale() const; nuclear@2: const img_pixmap *get_pixmap() const; nuclear@2: const char *get_name() const; nuclear@0: }; nuclear@0: nuclear@0: #endif // LEVEL_H_