Roguelike
 All Classes Namespaces Functions Variables Typedefs Friends Pages
dungeonbuilder.h
1 
23 #ifndef DUNGEONBUILDER_H
24 #define DUNGEONBUILDER_H
25 
26 
27 #include <iostream>
28 #include <string>
29 #include <stdlib.h>
30 #include <math.h> //floor, ceil
31 #include <assert.h>
32 #include <bitset>
33 
34 #include <int_point.h>
35 #include <room.h>
36 #include <defs.h>
37 #include <chunk_layer.h>
38 #include <ASCII_Lib.h>
39 
40 
41 using namespace std;
42 
51 namespace dungeon_builder {
52 
57  struct dungeon_meta {
65  int width;
69  int height;
74  int num_rooms;
75  };
76 
80  static const int STD_ROOM_WIDTH=8;
81  static const int STD_ROOM_HEIGHT=6;
82 
83  static const int MAX_PATH_LENGTH=75;
84  static const int MIN_PATH_LENGTH=16;
85 
90  static const int ROOM_WIDTH_DEV=2;
91  static const int ROOM_HEIGHT_DEV=2;
92 
101  bool rolled_over(int given);
102 
109  bool is_empty_space(IntPoint point, const dungeon_meta& dm);
110 
118  bool point_is_beyond_bounds(IntPoint point, const dungeon_meta& dm);
119 
131  std::bitset<4> edges_collide_with_something(Room &r, const dungeon_meta& dm);
132 
142  int determine_which_wall(IntPoint point, const dungeon_meta& dm);
143 
153 
159  IntPoint rand_wall_block(const Room&);
160 
169 
177  void reset(dungeon_meta &dm);
184  void set_wall_if_not_path(int row, int col, dungeon_meta &dm);
185 
186  ChunkLayer* get_dungeon(dungeon_meta &dm);
187 };
188 
189 #endif
int num_rooms
Definition: dungeonbuilder.h:74
IntPoint get_next_point(IntPoint this_point, int direction)
Definition: dungeonbuilder.cpp:175
Definition: dungeonbuilder.h:57
bool is_empty_space(IntPoint point, const dungeon_meta &dm)
Definition: dungeonbuilder.cpp:38
int height
Definition: dungeonbuilder.h:69
Room build_room(IntPoint tl, IntPoint br, dungeon_meta &dm)
Definition: dungeonbuilder.cpp:120
int width
Definition: dungeonbuilder.h:65
ChunkLayer * main_dungeon
Definition: dungeonbuilder.h:61
void set_wall_if_not_path(int row, int col, dungeon_meta &dm)
Definition: dungeonbuilder.cpp:195
IntPoint rand_wall_block(const Room &current_room)
Definition: dungeonbuilder.cpp:148
bool rolled_over(int given)
Definition: dungeonbuilder.cpp:29
Definition: int_point.h:26
bool point_is_beyond_bounds(IntPoint point, const dungeon_meta &dm)
Definition: dungeonbuilder.cpp:42
int determine_which_wall(IntPoint point, const dungeon_meta &dm)
Definition: dungeonbuilder.cpp:84
std::bitset< 4 > edges_collide_with_something(Room &r, const dungeon_meta &dm)
Definition: dungeonbuilder.cpp:52
void reset(dungeon_meta &dm)
Definition: dungeonbuilder.cpp:202
Definition: dungeonbuilder.cpp:27
Definition: chunk_layer.h:10
Definition: room.h:34