dungeon_crawler
annotate prototype/src/level.h @ 19:8a0ae6b4aa9b
trying to make MRT work
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Tue, 21 Aug 2012 04:29:49 +0300 |
parents | 96de911d05d4 |
children | fa8f89d06f6f |
rev | line source |
---|---|
nuclear@1 | 1 #ifndef LEVEL_H_ |
nuclear@1 | 2 #define LEVEL_H_ |
nuclear@1 | 3 |
nuclear@1 | 4 #include <vector> |
nuclear@1 | 5 #include "vmath/vmath.h" |
nuclear@1 | 6 |
nuclear@1 | 7 class GridCell; |
nuclear@1 | 8 class Tile; |
nuclear@1 | 9 |
nuclear@1 | 10 class Level { |
nuclear@1 | 11 private: |
nuclear@1 | 12 // cells are stored as a linear array of pointers to GridCells |
nuclear@1 | 13 // null pointers mean unpopulated cells. |
nuclear@1 | 14 GridCell **cells; |
nuclear@1 | 15 int xsz, ysz; |
nuclear@1 | 16 float cell_size; |
nuclear@1 | 17 |
nuclear@1 | 18 void draw_grid() const; |
nuclear@1 | 19 |
nuclear@1 | 20 public: |
nuclear@1 | 21 Level(); |
nuclear@1 | 22 ~Level(); |
nuclear@1 | 23 |
nuclear@1 | 24 bool load(const char *fname); |
nuclear@1 | 25 bool save(const char *fname) const; |
nuclear@1 | 26 |
nuclear@1 | 27 const GridCell *get_cell(int x, int y) const; |
nuclear@1 | 28 Vector3 get_cell_pos(int x, int y) const; |
nuclear@1 | 29 |
nuclear@1 | 30 void draw() const; |
nuclear@1 | 31 }; |
nuclear@1 | 32 |
nuclear@1 | 33 class GridCell { |
nuclear@1 | 34 private: |
nuclear@1 | 35 // each grid-cell might contain multiple tiles. |
nuclear@1 | 36 std::vector<const Tile*> tiles; |
nuclear@1 | 37 |
nuclear@1 | 38 public: |
nuclear@5 | 39 GridCell(const Tile *tile = 0); |
nuclear@5 | 40 |
nuclear@1 | 41 void add_tile(const Tile *tile); |
nuclear@1 | 42 |
nuclear@5 | 43 void draw(unsigned int draw_mask) const; |
nuclear@1 | 44 }; |
nuclear@1 | 45 |
nuclear@1 | 46 #endif // LEVEL_H_ |