21 lines
		
	
	
	
		
			598 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
	
		
			598 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| #pragma once
 | |
| 
 | |
| #include "map.hpp"
 | |
| 
 | |
| class WorldBuilder {
 | |
|   public:
 | |
|   Map& $map;
 | |
| 
 | |
|   WorldBuilder(Map &map) : $map(map) { }
 | |
| 
 | |
|   void partition_map(Room &cur, int depth);
 | |
|   void make_room(size_t origin_y, size_t origin_x, size_t width, size_t height);
 | |
|   void add_door(Room &room);
 | |
|   void generate();
 | |
|   void set_door(Room &room, int value);
 | |
|   void place_rooms();
 | |
|   bool dig_tunnel(PointList &holes, Point &src, Point &target);
 | |
|   void tunnel_doors(PointList &holes, Room &src, Room &target);
 | |
|   void update_door(Point &at, int wall_or_space);
 | |
|   void stylize_room(int room, string tile_name, float size);
 | |
| };
 | 
