finished random room generation
This commit is contained in:
39
src/map.h
39
src/map.h
@ -42,7 +42,7 @@ public:
|
||||
|
||||
const std::vector<position_list> get_room_list() const;
|
||||
// IMPORTANT: always print a map before anything else
|
||||
void print(display &out) const;
|
||||
void print(display *out) const;
|
||||
|
||||
position get_up_stairs() const;
|
||||
position get_down_stairs() const;
|
||||
@ -50,8 +50,25 @@ public:
|
||||
int get_up_stairs_room() const;
|
||||
int get_down_stairs_room() const;
|
||||
private:
|
||||
|
||||
struct room {
|
||||
int top;
|
||||
int left;
|
||||
int width;
|
||||
int height;
|
||||
bool operator!=(const room &r) {
|
||||
return !(*this == r);
|
||||
}
|
||||
bool operator==(const room &r) {
|
||||
return top == r.top &&
|
||||
left == r.left &&
|
||||
width == r.width &&
|
||||
height == r.height;
|
||||
}
|
||||
};
|
||||
|
||||
position remap_index(const int idx) const {
|
||||
return {idx % MAP_WIDTH, idx / MAP_HEIGHT};
|
||||
return {idx % MAP_WIDTH, idx / MAP_WIDTH};
|
||||
}
|
||||
|
||||
int remap_position(const position &pos) const {
|
||||
@ -63,15 +80,17 @@ private:
|
||||
RNG *rng);
|
||||
|
||||
std::vector<std::pair<position, int>> gen_room_dims(RNG *rng);
|
||||
std::vector<std::pair<position, position>> distr_rooms(RNG *rng,
|
||||
std::vector<std::pair<position, int>>
|
||||
&room_dims);
|
||||
std::vector<room> distr_rooms(RNG *rng,
|
||||
std::vector<std::pair<position, int>> &room_dims);
|
||||
|
||||
bool overlap_x(std::pair<position, position> &room1,
|
||||
std::pair<position, position> &room2);
|
||||
bool overlap_y(std::pair<position, position> &room1,
|
||||
std::pair<position, position> &room2);
|
||||
void jitter(RNG *rng, std::vector<std::pair<position, position>> &rooms);
|
||||
bool overlap_x(room &room1,
|
||||
room &room2);
|
||||
bool overlap_y(room &room1,
|
||||
room &room2);
|
||||
void jitter(RNG *rng, std::vector<room> &rooms);
|
||||
|
||||
void fill_room(const room &r, const int num);
|
||||
void gen_path(std::vector<room> &rooms);
|
||||
};
|
||||
|
||||
const std::string default_map =
|
||||
|
Reference in New Issue
Block a user