OpenTTD-patches/src/map_type.h

66 lines
1.9 KiB
C

/* $Id$ */
/** @file map_type.h Types related to maps. */
#ifndef MAP_TYPE_H
#define MAP_TYPE_H
/**
* Data that is stored per tile. Also used TileExtended for this.
* Look at docs/landscape.html for the exact meaning of the members.
*/
struct Tile {
byte type_height; ///< The type (bits 4..7) and height of the northern corner
byte m1; ///< Primarily used for ownership information
uint16 m2; ///< Primarily used for indices to towns, industries and stations
byte m3; ///< General purpose
byte m4; ///< General purpose
byte m5; ///< General purpose
byte m6; ///< Primarily used for bridges and rainforest/desert
};
/**
* Data that is stored per tile. Also used Tile for this.
* Look at docs/landscape.html for the exact meaning of the members.
*/
struct TileExtended {
byte m7; ///< Primarily used for newgrf support
};
/**
* An offset value between to tiles.
*
* This value is used fro the difference between
* to tiles. It can be added to a tileindex to get
* the resulting tileindex of the start tile applied
* with this saved difference.
*
* @see TileDiffXY(int, int)
*/
typedef int32 TileIndexDiff;
/**
* A pair-construct of a TileIndexDiff.
*
* This can be used to save the difference between to
* tiles as a pair of x and y value.
*/
struct TileIndexDiffC {
int16 x; ///< The x value of the coordinate
int16 y; ///< The y value of the coordinate
};
/**
* Approximation of the length of a straight track, relative to a diagonal
* track (ie the size of a tile side).
*
* #defined instead of const so it can
* stay integer. (no runtime float operations) Is this needed?
* Watch out! There are _no_ brackets around here, to prevent intermediate
* rounding! Be careful when using this!
* This value should be sqrt(2)/2 ~ 0.7071
*/
#define STRAIGHT_TRACK_LENGTH 7071/10000
#endif /* MAP_TYPE_H */