#include <default_map_generator_job.hpp>
Public Member Functions | |
default_map_generator_job () | |
default_map_generator_job (boost::uint32_t seed) | |
std::string | default_generate_map (size_t width, size_t height, size_t island_size, size_t island_off_center, size_t iterations, size_t hill_size, size_t max_lakes, size_t nvillages, size_t castle_size, size_t nplayers, bool roads_between_castles, std::map< map_location, std::string > *labels, const config &cfg) |
Generate the map. More... | |
Private Types | |
typedef std::vector < std::vector< int > > | height_map |
typedef t_translation::t_map | terrain_map |
Private Member Functions | |
bool | generate_river_internal (const height_map &heights, terrain_map &terrain, int x, int y, std::vector< map_location > &river, std::set< map_location > &seen_locations, int river_uphill) |
std::vector< map_location > | generate_river (const height_map &heights, terrain_map &terrain, int x, int y, int river_uphill) |
height_map | generate_height_map (size_t width, size_t height, size_t iterations, size_t hill_size, size_t island_size, size_t island_off_center) |
Generate a height-map. More... | |
bool | generate_lake (t_translation::t_map &terrain, int x, int y, int lake_fall_off, std::set< map_location > &locs_touched) |
Generate a lake. More... | |
map_location | random_point_at_side (size_t width, size_t height) |
Returns a random tile at one of the borders of a map that is of the given dimensions. More... | |
std::string | generate_name (boost::shared_ptr< name_generator > &name_generator, const std::string &id, std::string *base_name=nullptr, utils::string_map *additional_symbols=nullptr) |
Private Attributes | |
boost::random::mt19937 | rng_ |
Definition at line 34 of file default_map_generator_job.hpp.
|
private |
Definition at line 48 of file default_map_generator_job.hpp.
|
private |
Definition at line 49 of file default_map_generator_job.hpp.
default_map_generator_job::default_map_generator_job | ( | ) |
Definition at line 42 of file default_map_generator_job.cpp.
default_map_generator_job::default_map_generator_job | ( | boost::uint32_t | seed | ) |
Definition at line 48 of file default_map_generator_job.cpp.
std::string default_map_generator_job::default_generate_map | ( | size_t | width, |
size_t | height, | ||
size_t | island_size, | ||
size_t | island_off_center, | ||
size_t | iterations, | ||
size_t | hill_size, | ||
size_t | max_lakes, | ||
size_t | nvillages, | ||
size_t | castle_size, | ||
size_t | nplayers, | ||
bool | roads_between_castles, | ||
std::map< map_location, std::string > * | labels, | ||
const config & | cfg | ||
) |
Generate the map.
Try to find configuration for castles.
Definition at line 746 of file default_map_generator_job.cpp.
References _(), pathfind::a_star_search(), t_translation::ALL_FORESTS, t_translation::ALL_MOUNTAINS, t_translation::ALL_SWAMPS, filesystem::base_name(), config::attribute_value::blank(), c, config::child(), config::child_or_empty(), config::child_range(), config::empty(), ERR_NG, error(), field(), gui2::event::find(), config::find_child(), flood_name(), t_translation::FOREST, generate_height_map(), generate_lake(), generate_name(), generate_river(), get_adjacent_tiles(), config::get_old_attribute(), t_translation::GRASS_LAND, config::has_attribute(), t_translation::HILL, t_translation::HUMAN_CASTLE, t_translation::HUMAN_KEEP, i, is_even(), editor::is_valid_terrain(), mp_ui_alerts::items, LOG_NG, log_scope, t_translation::MOUNTAIN, schema_validation::name_type, next, output_map(), place_village(), random_point_at_side(), rank_castle_location(), t_translation::read_list(), t_translation::read_terrain_code(), rng_, utils::split(), pathfind::plain_route::steps, gui2::terrain, t_translation::terrain_matches(), VALIDATE, t_translation::write_terrain_code(), map_location::x, and map_location::y.
Referenced by default_map_generator::generate_map().
|
private |
Generate a height-map.
Basically we generate a lot of hills, each hill being centered at a certain point, with a certain radius - being a half sphere. Hills are combined additively to form a bumpy surface. The size of each hill varies randomly from 1-hill_size. We generate 'iterations' hills in total. The range of heights is normalized to 0-1000. 'island_size' controls whether or not the map should tend toward an island shape, and if so, how large the island should be. Hills with centers that are more than 'island_size' away from the center of the map will be inverted (i.e. be valleys). 'island_size' as 0 indicates no island.
Definition at line 72 of file default_map_generator_job.cpp.
References i, int(), LOG_NG, and rng_.
Referenced by default_generate_map().
|
private |
Generate a lake.
It will create water at (x,y), and then have 'lake_fall_off' % chance to make another water tile in each of the directions n,s,e,w. In each of the directions it does make another water tile, it will have 'lake_fall_off'/2 % chance to make another water tile in each of the directions. This will continue recursively.
Definition at line 198 of file default_map_generator_job.cpp.
References rng_, and t_translation::SHALLOW_WATER.
Referenced by default_generate_map().
|
private |
Definition at line 602 of file default_map_generator_job.cpp.
References utils::interpolate_variables_into_string(), LOG_NG, preferences::options(), rng_, utils::split(), and string_table.
Referenced by default_generate_map().
|
private |
Definition at line 311 of file default_map_generator_job.cpp.
References generate_river_internal().
Referenced by default_generate_map().
|
private |
Definition at line 254 of file default_map_generator_job.cpp.
References t_translation::DEEP_WATER, get_adjacent_tiles(), i, mp_ui_alerts::items, LOG_NG, rng_, t_translation::SHALLOW_WATER, map_location::x, and map_location::y.
Referenced by generate_river().
|
private |
Returns a random tile at one of the borders of a map that is of the given dimensions.
Definition at line 327 of file default_map_generator_job.cpp.
References rng_.
Referenced by default_generate_map().
|
private |
Definition at line 67 of file default_map_generator_job.hpp.
Referenced by default_generate_map(), generate_height_map(), generate_lake(), generate_name(), generate_river_internal(), and random_point_at_side().