Freeciv-3.3
|
#include "rand.h"
#include "map.h"
#include "mapgen_topology.h"
#include "mapgen_utils.h"
#include "height_map.h"
Go to the source code of this file.
Macros | |
#define | set_midpoints(X, Y, V) |
Functions | |
static float | hmap_pole_factor (struct tile *ptile) |
void | normalize_hmap_poles (void) |
void | renormalize_hmap_poles (void) |
void | make_random_hmap (int smooth) |
static void | gen5rec (int step, int xl, int yt, int xr, int yb) |
void | make_pseudofractal1_hmap (int extra_div) |
bool | area_is_too_flat (struct tile *ptile, int thill, int my_height) |
void | height_map_to_map (void) |
Variables | |
int * | height_map = nullptr |
int | hmap_shore_level = 0 |
int | hmap_mountain_level = 0 |
We don't want huge areas of grassland/plains, so we put in a hill here and there, where it gets too 'clean'
Return TRUE if the terrain around the given map position is "clean". This means that all the terrain for 2 squares around it is not mountain or hill.
Definition at line 271 of file height_map.c.
Referenced by make_fracture_relief(), and make_relief().
Recursive function which does the work for generator 5.
All (x0, y0) and (x1, y1) are in native coordinates.
Definition at line 120 of file height_map.c.
Referenced by gen5rec(), and make_pseudofractal1_hmap().
Copy height map to actual map tiles.
Definition at line 300 of file height_map.c.
Referenced by map_fractal_generate(), mapgenerator2(), mapgenerator3(), and mapgenerator4().
Factor by which to lower height map near poles in normalize_hmap_poles()
Definition at line 35 of file height_map.c.
Referenced by normalize_hmap_poles(), and renormalize_hmap_poles().
Generator 5 makes earthlike worlds with one or more large continents and a scattering of smaller islands. It does so by dividing the world into blocks and on each block raising or lowering the corners, then the midpoints and middle and so on recursively. Fiddling with 'xdiv' and 'ydiv' will change the size of the initial blocks and, if the map does not wrap in at least one direction, fiddling with 'avoidedge' will change the likelihood of continents butting up to non-wrapped edges.
All X and Y values used in this function are in native coordinates.
extra_div can be increased to break the world up into more, smaller islands. This is used in conjunction with the startpos setting.
Definition at line 198 of file height_map.c.
Referenced by map_fractal_generate().
Create uncorrelated rand map and do some call to smoth to correlate it a little and create random shapes
Definition at line 101 of file height_map.c.
Referenced by map_fractal_generate().
Lower the land near the map edges and (optionally) the polar region to avoid too much land there.
See also renormalize_hmap_poles()
Definition at line 65 of file height_map.c.
Referenced by make_land().
Invert (most of) the effects of normalize_hmap_poles() so that we have accurate heights for texturing the poles.
Definition at line 81 of file height_map.c.
Referenced by make_land().
Definition at line 29 of file height_map.c.
Referenced by create_island(), initworld(), make_fracture_map(), make_pseudofractal1_hmap(), make_random_hmap(), map_fractal_generate(), mapgenerator2(), mapgenerator3(), and mapgenerator4().
int hmap_mountain_level = 0 |
Definition at line 30 of file height_map.c.
int hmap_shore_level = 0 |
Definition at line 30 of file height_map.c.
Referenced by area_is_too_flat(), create_tmap(), make_fracture_map(), make_fracture_relief(), make_land(), and make_relief().