2 * This file is part of OpenTTD.
3 * 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.
4 * 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.
5 * 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 /** @file tile_type.h Types related to tiles. */
13 static const uint TILE_SIZE
= 16; ///< Tile size in world coordinates.
14 static const uint TILE_UNIT_MASK
= TILE_SIZE
- 1; ///< For masking in/out the inner-tile world coordinate units.
15 static const uint TILE_PIXELS
= 32; ///< Pixel distance between tile columns/rows in #ZOOM_LVL_BASE.
16 static const uint TILE_HEIGHT
= 8; ///< Height of a height level in world coordinate AND in pixels in #ZOOM_LVL_BASE.
18 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.)
19 static const int MAX_VEHICLE_PIXEL_X
= 192; ///< Maximum width of a vehicle in pixels in #ZOOM_LVL_BASE.
20 static const int MAX_VEHICLE_PIXEL_Y
= 96; ///< Maximum height of a vehicle in pixels in #ZOOM_LVL_BASE.
22 static const uint MAX_TILE_HEIGHT
= 255; ///< Maximum allowed tile height
24 static const uint MIN_HEIGHTMAP_HEIGHT
= 1; ///< Lowest possible peak value for heightmap creation
25 static const uint MIN_CUSTOM_TERRAIN_TYPE
= 1; ///< Lowest possible peak value for world generation
27 static const uint MIN_MAP_HEIGHT_LIMIT
= 15; ///< Lower bound of maximum allowed heightlevel (in the construction settings)
28 static const uint MAX_MAP_HEIGHT_LIMIT
= MAX_TILE_HEIGHT
; ///< Upper bound of maximum allowed heightlevel (in the construction settings)
30 static const uint MIN_SNOWLINE_HEIGHT
= 2; ///< Minimum snowline height
31 static const uint DEF_SNOWLINE_HEIGHT
= 10; ///< Default snowline height
32 static const uint MAX_SNOWLINE_HEIGHT
= (MAX_TILE_HEIGHT
- 2); ///< Maximum allowed snowline height
34 static const uint DEF_SNOW_COVERAGE
= 40; ///< Default snow coverage.
35 static const uint DEF_DESERT_COVERAGE
= 50; ///< Default desert coverage.
39 * The different types of tiles.
41 * Each tile belongs to one type, according whatever is build on it.
43 * @note A railway with a crossing street is marked as MP_ROAD.
46 MP_CLEAR
, ///< A tile without any structures, i.e. grass, rocks, farm fields etc.
47 MP_RAILWAY
, ///< A railway
48 MP_ROAD
, ///< A tile with road (or tram tracks)
49 MP_HOUSE
, ///< A house by a town
50 MP_TREES
, ///< Tile got trees
51 MP_STATION
, ///< A tile of a station
52 MP_WATER
, ///< Water tile
53 MP_VOID
, ///< Invisible tiles at the SW and SE border
54 MP_INDUSTRY
, ///< Part of an industry
55 MP_TUNNELBRIDGE
, ///< Tunnel entry/exit and bridge heads
56 MP_OBJECT
, ///< Contains objects such as transmitters and owned land
60 * Additional infos of a tile on a tropic game.
62 * The tropiczone is not modified during gameplay. It mainly affects tree growth. (desert tiles are visible though)
64 * In randomly generated maps:
65 * TROPICZONE_DESERT: Generated everywhere, if there is neither water nor mountains (TileHeight >= 4) in a certain distance from the tile.
66 * TROPICZONE_RAINFOREST: Generated everywhere, if there is no desert in a certain distance from the tile.
67 * TROPICZONE_NORMAL: Everywhere else, i.e. between desert and rainforest and on sea (if you clear the water).
70 * TROPICZONE_NORMAL: Default value.
71 * TROPICZONE_DESERT: Placed manually.
72 * TROPICZONE_RAINFOREST: Placed if you plant certain rainforest-trees.
75 TROPICZONE_NORMAL
= 0, ///< Normal tropiczone
76 TROPICZONE_DESERT
= 1, ///< Tile is desert
77 TROPICZONE_RAINFOREST
= 2, ///< Rainforest tile
81 * The index/ID of a Tile.
83 typedef uint32 TileIndex
;
86 * The very nice invalid tile marker
88 static const TileIndex INVALID_TILE
= (TileIndex
)-1;
90 #endif /* TILE_TYPE_H */