Changeset - r21890:6890741ffea4
[Not reviewed]
master
0 1 0
frosch - 10 years ago 2014-10-25 22:24:05
frosch@openttd.org
(svn r27044) -Change (r26905, r26984): Scale heightmap greyscales > 0 evenly to heightlevels > 0, instead of giving heightlevel 1 a bigger loading. Sea level remains at pure black only.
1 file changed with 7 insertions and 7 deletions:
0 comments (0 inline, 0 general)
src/heightmap.cpp
Show inline comments
 
@@ -364,16 +364,16 @@ static void GrayscaleToMapHeights(uint i
 
				assert(img_row < img_height);
 
				assert(img_col < img_width);
 

	
 
				/* The height in 1/256ths. */
 
				uint heightmap_height = map[img_row * img_width + img_col];
 

	
 
				/* The height in 1/256ths of the maximum height. */
 
				heightmap_height *= (1 + _settings_game.construction.max_heightlevel);
 
				if (heightmap_height > 0) {
 
					/* 0 is sea level.
 
					 * Other grey scales are scaled evenly to the available height levels > 0.
 
					 * (The coastline is independent from the number of height levels) */
 
					heightmap_height = 1 + (heightmap_height - 1) * _settings_game.construction.max_heightlevel / 255;
 
				}
 

	
 
				/* Scaling should not alter the coastline, thus values in the interval ]0..1] result in a heightlevel of 1 */
 
				if (IsInsideMM(heightmap_height, 1, 256)) heightmap_height = 256;
 

	
 
				SetTileHeight(tile, heightmap_height / 256);
 
				SetTileHeight(tile, heightmap_height);
 
			}
 
			/* Only clear the tiles within the map area. */
 
			if (IsInnerTile(tile)) {
0 comments (0 inline, 0 general)