#include "stdafx.h"
#include "heightmap.h"
#include "clear_map.h"
#include "void_map.h"
#include "gui.h"
#include "saveload/saveload.h"
#include "bmp.h"
#include "gfx_func.h"
#include "fios.h"
#include "settings_type.h"
#include "fileio_func.h"
#include "table/strings.h"
Go to the source code of this file.
Functions | |
static byte | RGBToGrayscale (byte red, byte green, byte blue) |
Convert RGB colours to Grayscale using 29.9% Red, 58.7% Green, 11.4% Blue (average luminosity formula) -- Dalestan This in fact is the NTSC Colour Space -- TrueLight. | |
static void | ReadHeightmapBMPImageData (byte *map, BmpInfo *info, BmpData *data) |
The BMP Heightmap loader. | |
static bool | ReadHeightmapBMP (char *filename, uint *x, uint *y, byte **map) |
Reads the heightmap and/or size of the heightmap from a BMP file. | |
static void | GrayscaleToMapHeights (uint img_width, uint img_height, byte *map) |
Converts a given grayscale map to something that fits in OTTD map system and create a map of that data. | |
static void | FixSlopes () |
This function takes care of the fact that land in OpenTTD can never differ more than 1 in height. | |
static bool | ReadHeightMap (char *filename, uint *x, uint *y, byte **map) |
Reads the heightmap with the correct file reader. | |
bool | GetHeightmapDimensions (char *filename, uint *x, uint *y) |
Get the dimensions of a heightmap. | |
void | LoadHeightmap (char *filename) |
Load a heightmap from file and change the map in his current dimensions to a landscape representing the heightmap. | |
void | FlatEmptyWorld (byte tile_height) |
Make an empty world where all tiles are of height 'tile_height'. |
Definition in file heightmap.cpp.
void FlatEmptyWorld | ( | byte | tile_height | ) |
Make an empty world where all tiles are of height 'tile_height'.
tile_height | of the desired new empty world |
Definition at line 449 of file heightmap.cpp.
References _settings_game, GameSettings::construction, FixSlopes(), ConstructionSettings::freeform_edges, MapSizeX(), MapSizeY(), MarkWholeScreenDirty(), SetTileHeight(), and TileXY().
Referenced by _GenerateWorld().
bool GetHeightmapDimensions | ( | char * | filename, | |
uint * | x, | |||
uint * | y | |||
) |
Get the dimensions of a heightmap.
filename | to query | |
x | dimension x | |
y | dimension y |
Definition at line 427 of file heightmap.cpp.
References ReadHeightMap().
static void GrayscaleToMapHeights | ( | uint | img_width, | |
uint | img_height, | |||
byte * | map | |||
) | [static] |
Converts a given grayscale map to something that fits in OTTD map system and create a map of that data.
img_width | the with of the image in pixels/tiles | |
img_height | the height of the image in pixels/tiles | |
map | the input map |
Definition at line 268 of file heightmap.cpp.
References _settings_game, CLEAR_GRASS, GameSettings::construction, DistanceFromEdge(), ConstructionSettings::freeform_edges, GameSettings::game_creation, GameCreationSettings::heightmap_rotation, HM_CLOCKWISE, HM_COUNTER_CLOCKWISE, MakeClear(), MakeVoid(), MapMaxX(), MapMaxY(), MapSizeX(), MapSizeY(), SetTileHeight(), TileX(), TileXY(), and TileY().
Referenced by LoadHeightmap().
void LoadHeightmap | ( | char * | filename | ) |
Load a heightmap from file and change the map in his current dimensions to a landscape representing the heightmap.
It converts pixels to height. The brighter, the higher.
filename | of the heighmap file to be imported |
Definition at line 432 of file heightmap.cpp.
References FixSlopes(), GrayscaleToMapHeights(), MarkWholeScreenDirty(), and ReadHeightMap().
static bool ReadHeightmapBMP | ( | char * | filename, | |
uint * | x, | |||
uint * | y, | |||
byte ** | map | |||
) | [static] |
Reads the heightmap and/or size of the heightmap from a BMP file.
If map == NULL only the size of the BMP is read, otherwise a map with grayscale pixels is allocated and assigned to *map.
Definition at line 215 of file heightmap.cpp.
References FioFOpenFile(), and ReadHeightmapBMPImageData().
Referenced by ReadHeightMap().
static void ReadHeightmapBMPImageData | ( | byte * | map, | |
BmpInfo * | info, | |||
BmpData * | data | |||
) | [static] |
The BMP Heightmap loader.
For a non-gray palette of size 16 we assume that the order of the palette determines the height; the first entry is the sea (level 0), the second one level 1, etc.
For a palette of size 2 we assume that the order of the palette determines the height; the first entry is the sea (level 0), the second one is the land (level 1)
Definition at line 158 of file heightmap.cpp.
References RGBToGrayscale().
Referenced by ReadHeightmapBMP().