stratgame

annotate level/src/level.h @ 2:369b51c9e4a8

foo
author John Tsiombikas <nuclear@member.fsf.org>
date Wed, 23 May 2012 07:25:43 +0300
parents 86b53f76899f
children 8d95187cb3ee
rev   line source
nuclear@0 1 #ifndef LEVEL_H_
nuclear@0 2 #define LEVEL_H_
nuclear@0 3
nuclear@2 4 #include <string>
nuclear@2 5 #include <map>
nuclear@2 6 #include <imago2.h>
nuclear@0 7 #include "tinyxml2.h"
nuclear@0 8
nuclear@2 9 class LevelMap;
nuclear@2 10
nuclear@0 11 class Level {
nuclear@0 12 private:
nuclear@0 13 tinyxml2::XMLDocument xml;
nuclear@2 14 std::map<std::string, LevelMap> levelmaps;
nuclear@0 15
nuclear@0 16 public:
nuclear@0 17 Level();
nuclear@0 18 ~Level();
nuclear@0 19
nuclear@0 20 bool load(const char *fname);
nuclear@0 21 };
nuclear@0 22
nuclear@2 23 class LevelMap {
nuclear@2 24 private:
nuclear@2 25 float scale;
nuclear@2 26 img_pixmap img;
nuclear@2 27 char *name;
nuclear@2 28
nuclear@2 29 void init();
nuclear@2 30 void destroy();
nuclear@2 31
nuclear@0 32 public:
nuclear@2 33 LevelMap();
nuclear@2 34 ~LevelMap();
nuclear@2 35
nuclear@2 36 LevelMap(const LevelMap &map);
nuclear@2 37 LevelMap &operator =(const LevelMap &map);
nuclear@2 38
nuclear@2 39 // move constructor/op=
nuclear@2 40 LevelMap(LevelMap &&map);
nuclear@2 41 LevelMap &operator =(LevelMap &&map);
nuclear@2 42
nuclear@2 43 bool load(tinyxml2::XMLElement *xelem);
nuclear@2 44
nuclear@2 45 float get_scale() const;
nuclear@2 46 const img_pixmap *get_pixmap() const;
nuclear@2 47 const char *get_name() const;
nuclear@0 48 };
nuclear@0 49
nuclear@0 50 #endif // LEVEL_H_