(svn r27985) -Codechange: Convert VA2 switches into ones with non-overlapping ranges...
[openttd.git] / src / tile_type.h
blob0d720925daa809ab653f172b5873cc3f85b78296
1 /* $Id$ */
3 /*
4 * This file is part of OpenTTD.
5 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
6 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
7 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
8 */
10 /** @file tile_type.h Types related to tiles. */
12 #ifndef TILE_TYPE_H
13 #define TILE_TYPE_H
15 static const uint TILE_SIZE = 16; ///< Tile size in world coordinates.
16 static const uint TILE_UNIT_MASK = TILE_SIZE - 1; ///< For masking in/out the inner-tile world coordinate units.
17 static const uint TILE_PIXELS = 32; ///< Pixel distance between tile columns/rows in #ZOOM_LVL_BASE.
18 static const uint TILE_HEIGHT = 8; ///< Height of a height level in world coordinate AND in pixels in #ZOOM_LVL_BASE.
20 static const uint MAX_BUILDING_PIXELS = 200; ///< Maximum height of a building in pixels in #ZOOM_LVL_BASE. (Also applies to "bridge buildings" on the bridge floor.)
22 static const uint MAX_TILE_HEIGHT = 255; ///< Maximum allowed tile height
24 static const uint MIN_MAX_HEIGHTLEVEL = 15; ///< Lower bound of maximum allowed heightlevel (in the construction settings)
25 static const uint DEF_MAX_HEIGHTLEVEL = 30; ///< Default maximum allowed heightlevel (in the construction settings)
26 static const uint MAX_MAX_HEIGHTLEVEL = MAX_TILE_HEIGHT; ///< Upper bound of maximum allowed heightlevel (in the construction settings)
28 static const uint MIN_SNOWLINE_HEIGHT = 2; ///< Minimum snowline height
29 static const uint DEF_SNOWLINE_HEIGHT = 15; ///< Default snowline height
30 static const uint MAX_SNOWLINE_HEIGHT = (MAX_TILE_HEIGHT - 2); ///< Maximum allowed snowline height
33 /**
34 * The different types of tiles.
36 * Each tile belongs to one type, according whatever is build on it.
38 * @note A railway with a crossing street is marked as MP_ROAD.
40 enum TileType {
41 MP_CLEAR, ///< A tile without any structures, i.e. grass, rocks, farm fields etc.
42 MP_RAILWAY, ///< A railway
43 MP_ROAD, ///< A tile with road (or tram tracks)
44 MP_HOUSE, ///< A house by a town
45 MP_TREES, ///< Tile got trees
46 MP_STATION, ///< A tile of a station
47 MP_WATER, ///< Water tile
48 MP_VOID, ///< Invisible tiles at the SW and SE border
49 MP_INDUSTRY, ///< Part of an industry
50 MP_TUNNELBRIDGE, ///< Tunnel entry/exit and bridge heads
51 MP_OBJECT, ///< Contains objects such as transmitters and owned land
54 /**
55 * Additional infos of a tile on a tropic game.
57 * The tropiczone is not modified during gameplay. It mainly affects tree growth. (desert tiles are visible though)
59 * In randomly generated maps:
60 * TROPICZONE_DESERT: Generated everywhere, if there is neither water nor mountains (TileHeight >= 4) in a certain distance from the tile.
61 * TROPICZONE_RAINFOREST: Generated everywhere, if there is no desert in a certain distance from the tile.
62 * TROPICZONE_NORMAL: Everywhere else, i.e. between desert and rainforest and on sea (if you clear the water).
64 * In scenarios:
65 * TROPICZONE_NORMAL: Default value.
66 * TROPICZONE_DESERT: Placed manually.
67 * TROPICZONE_RAINFOREST: Placed if you plant certain rainforest-trees.
69 enum TropicZone {
70 TROPICZONE_NORMAL = 0, ///< Normal tropiczone
71 TROPICZONE_DESERT = 1, ///< Tile is desert
72 TROPICZONE_RAINFOREST = 2, ///< Rainforest tile
75 /**
76 * The index/ID of a Tile.
78 typedef uint32 TileIndex;
80 /**
81 * The very nice invalid tile marker
83 static const TileIndex INVALID_TILE = (TileIndex)-1;
85 #endif /* TILE_TYPE_H */