heightmap.cpp File Reference

Creating of maps from heightmaps. More...

#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.
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'.


Detailed Description

Creating of maps from heightmaps.

Definition in file heightmap.cpp.


Function Documentation

void FlatEmptyWorld ( byte  tile_height  ) 

Make an empty world where all tiles are of height 'tile_height'.

Parameters:
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.

Parameters:
filename to query
x dimension x
y dimension y
Returns:
Returns false if loading of the image failed.

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.

Parameters:
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.

Parameters:
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().


Generated on Sun Nov 15 15:40:20 2009 for OpenTTD by  doxygen 1.5.6