Roguelike
 All Classes Namespaces Functions Variables Typedefs Friends Pages
chunk_layer.h
1 #ifndef CHUNK_LAYER
2 #define CHUNK_LAYER
3 
4 #include <defs.h>
5 #include <spawner.h>
6 #include <room.h>
7 #include <vector>
8 
9 typedef std::vector<std::vector<Tile> > TileMatrix;
10 class ChunkLayer {
11 
12  private:
13  static const int MAX_ROOMS=15;
18  TileMatrix ground;
19 
23  std::vector<Item*> items;
24 
28  std::vector<EquipType> equipment;
29 
33  std::vector<WeaponType> weapons;
34 
39  void swap(const ChunkLayer& l);
40 
47  void tile_assertions(int row, int col) const;
48 
53  std::vector<IntPoint> down_stairs;
54 
59  std::vector<IntPoint> up_stairs;
60 
61 
62  public:
63  ChunkLayer();
64  ChunkLayer(int _width, int _height);
65  ChunkLayer(int _width, int _height, bool has_layer_below);
66  ChunkLayer(const ChunkLayer& l);
67 
71  void clear();
72 
77  IntPoint up_stair;
78  IntPoint spawner_loc;
79 
83  int width;
84 
88  int height;
89 
95  ChunkLayer& operator= (const ChunkLayer& d);
96 
101 
107 
111  std::vector<Room> rooms;
112 
116  std::vector<Spawner> spawners;
117 
125  Tile* get_tile_pointer(int row, int col);
127 
128  Tile get_tile(int row, int col) const;
129  Tile get_tile(IntPoint point) const;
130 
138  void set_tile(int row, int col, Tile tile_type);
139 
140  void set_tile(IntPoint point, Tile tile_type);
141 
145  std::vector<std::vector<Tile> >& get_ground();
146 
151  std::vector<Item*>& get_items();
152 
157  std::vector<EquipType>& get_equipment();
158 
163  std::vector<WeaponType>& get_weapons();
164 
168  std::vector<Spawner>& get_spawners();
169 
174  void add_item(Item* item);
175 
184  void make_stairs(bool has_layer_below);
185 
192  void make_spawner(int depth);
193 
194  void make_spawner(int depth, IntPoint point);
195 
199  void layer_dump();
200 
201 };
202 
203 #endif
int num_rooms
Definition: chunk_layer.h:106
std::vector< Spawner > spawners
Definition: chunk_layer.h:116
ChunkLayer & operator=(const ChunkLayer &d)
Definition: chunk_layer.cpp:48
std::vector< Room > rooms
Definition: chunk_layer.h:111
std::vector< Spawner > & get_spawners()
Definition: chunk_layer.cpp:132
std::vector< IntPoint > up_stairs
Definition: chunk_layer.h:59
TileMatrix ground
Definition: chunk_layer.h:18
void set_tile(int row, int col, Tile tile_type)
Definition: chunk_layer.cpp:108
std::vector< Item * > items
Definition: chunk_layer.h:23
void tile_assertions(int row, int col) const
Definition: chunk_layer.cpp:85
std::vector< IntPoint > down_stairs
Definition: chunk_layer.h:53
void swap(const ChunkLayer &l)
Definition: chunk_layer.cpp:67
std::vector< std::vector< Tile > > & get_ground()
Definition: chunk_layer.cpp:116
Definition: defs.h:66
Definition: item.h:40
void make_spawner(int depth)
Definition: chunk_layer.cpp:163
IntPoint down_stair
Definition: chunk_layer.h:76
Definition: int_point.h:26
std::vector< EquipType > & get_equipment()
Definition: chunk_layer.cpp:124
void clear()
Definition: chunk_layer.cpp:53
std::vector< Item * > & get_items()
Definition: chunk_layer.cpp:120
std::vector< WeaponType > & get_weapons()
Definition: chunk_layer.cpp:128
int width
Definition: chunk_layer.h:83
void make_stairs(bool has_layer_below)
Definition: chunk_layer.cpp:140
Definition: chunk_layer.h:10
std::vector< WeaponType > weapons
Definition: chunk_layer.h:33
void layer_dump()
Definition: chunk_layer.cpp:183
std::vector< EquipType > equipment
Definition: chunk_layer.h:28
bool has_layer_below
Definition: chunk_layer.h:100
void add_item(Item *item)
Definition: chunk_layer.cpp:136
Tile * get_tile_pointer(int row, int col)
Definition: chunk_layer.cpp:92
int height
Definition: chunk_layer.h:88