Index: src/heightmap.cpp =================================================================== --- src/heightmap.cpp (revision 26981) +++ src/heightmap.cpp (working copy) @@ -364,16 +364,16 @@ assert(img_row < img_height); assert(img_col < img_width); - /* The height in 1/255ths. */ + /* The height in 1/256ths. */ uint heightmap_height = map[img_row * img_width + img_col]; - /* The height in 1/255ths of the maximum height. */ - heightmap_height *= _settings_game.construction.max_heightlevel; + /* The height in 1/256ths of the maximum height. */ + heightmap_height *= (1 + _settings_game.construction.max_heightlevel); /* Scaling should not alter the coastline, thus values in the interval ]0..1] result in a heightlevel of 1 */ - if (IsInsideMM(heightmap_height, 1, UINT8_MAX)) heightmap_height = UINT8_MAX; + if (IsInsideMM(heightmap_height, 1, 256)) heightmap_height = 256; - SetTileHeight(tile, heightmap_height / UINT8_MAX); + SetTileHeight(tile, heightmap_height / 256); } /* Only clear the tiles within the map area. */ if (IsInnerTile(tile)) { Index: src/screenshot.cpp =================================================================== --- src/screenshot.cpp (revision 26981) +++ src/screenshot.cpp (working copy) @@ -783,7 +783,7 @@ while (n > 0) { TileIndex ti = TileXY(MapMaxX(), y); for (uint x = MapMaxX(); true; x--) { - *buf = 16 * TileHeight(ti); + *buf = 256 * TileHeight(ti) / (1 + _settings_game.construction.max_heightlevel); buf++; if (x == 0) break; ti = TILE_ADDXY(ti, -1, 0);