66 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			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 */
 |