stratgame
annotate level/src/level.h @ 3:8d95187cb3ee
foo
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Wed, 23 May 2012 17:10:46 +0300 |
parents | 369b51c9e4a8 |
children | 2e38715de41b |
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@3 | 21 |
nuclear@3 | 22 void draw() const; |
nuclear@0 | 23 }; |
nuclear@0 | 24 |
nuclear@2 | 25 class LevelMap { |
nuclear@2 | 26 private: |
nuclear@2 | 27 float scale; |
nuclear@2 | 28 img_pixmap img; |
nuclear@2 | 29 char *name; |
nuclear@2 | 30 |
nuclear@2 | 31 void init(); |
nuclear@2 | 32 void destroy(); |
nuclear@2 | 33 |
nuclear@0 | 34 public: |
nuclear@2 | 35 LevelMap(); |
nuclear@2 | 36 ~LevelMap(); |
nuclear@2 | 37 |
nuclear@2 | 38 LevelMap(const LevelMap &map); |
nuclear@2 | 39 LevelMap &operator =(const LevelMap &map); |
nuclear@2 | 40 |
nuclear@2 | 41 // move constructor/op= |
nuclear@2 | 42 LevelMap(LevelMap &&map); |
nuclear@2 | 43 LevelMap &operator =(LevelMap &&map); |
nuclear@2 | 44 |
nuclear@2 | 45 bool load(tinyxml2::XMLElement *xelem); |
nuclear@2 | 46 |
nuclear@2 | 47 float get_scale() const; |
nuclear@2 | 48 const img_pixmap *get_pixmap() const; |
nuclear@2 | 49 const char *get_name() const; |
nuclear@0 | 50 }; |
nuclear@0 | 51 |
nuclear@0 | 52 #endif // LEVEL_H_ |