Random map gen is mostly working, now to clean it up.

This commit is contained in:
Zed A. Shaw 2024-09-29 22:36:13 -04:00
parent a82944f55a
commit 3a43324fa2
3 changed files with 139 additions and 35 deletions

22
map.hpp
View file

@ -4,6 +4,17 @@
#include <string>
#include <random>
#define INV_WALL 0
#define INV_SPACE 1
#define WALL_VALUE 1
#define SPACE_VALUE 0
struct Point {
size_t x = 0;
size_t y = 0;
};
struct Pair {
size_t j = 0;
size_t i = 0;
@ -16,10 +27,8 @@ struct Room {
size_t y = 0;
size_t width = 0;
size_t height = 0;
size_t door_x = 0;
size_t door_y = 0;
std::vector<Room> next;
Point entry;
Point exit;
};
typedef std::vector<Pair> PairList;
@ -58,9 +67,14 @@ public:
void make_room(size_t origin_y, size_t origin_x, size_t width, size_t height);
void add_door(Room &room);
bool inmap(size_t x, size_t y);
bool neighbors(Point &out, bool up);
void generate();
void place_rooms(Room &root);
void make_paths();
void partition_map(Room &cur, int depth);
bool walk(Room &src, Room &target);
void set_door(Room &room, int value);
void dump();
};