dungeon_crawler
annotate prototype/src/level.h @ 1:96de911d05d4
started a rough prototype
author | John Tsiombikas <nuclear@mutantstargoat.com> |
---|---|
date | Thu, 28 Jun 2012 06:05:50 +0300 |
parents | |
children | 252a00508411 |
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@1 | 39 void add_tile(const Tile *tile); |
nuclear@1 | 40 |
nuclear@1 | 41 void draw() const; |
nuclear@1 | 42 }; |
nuclear@1 | 43 |
nuclear@1 | 44 #endif // LEVEL_H_ |