1 /* 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/>. 6 */ 7 8 /** @file tile_type.h Types related to tiles. */ 9 10 #ifndef TILE_TYPE_H 11 #define TILE_TYPE_H 12 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. 17 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. 21 22 static const uint MAX_TILE_HEIGHT = 255; ///< Maximum allowed tile height 23 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 26 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) 29 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 33 34 static const uint DEF_SNOW_COVERAGE = 40; ///< Default snow coverage. 35 static const uint DEF_DESERT_COVERAGE = 50; ///< Default desert coverage. 36 37 38 /** 39 * The different types of tiles. 40 * 41 * Each tile belongs to one type, according whatever is build on it. 42 * 43 * @note A railway with a crossing street is marked as MP_ROAD. 44 */ 45 enum TileType { 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 57 }; 58 59 /** 60 * Additional infos of a tile on a tropic game. 61 * 62 * The tropiczone is not modified during gameplay. It mainly affects tree growth. (desert tiles are visible though) 63 * 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). 68 * 69 * In scenarios: 70 * TROPICZONE_NORMAL: Default value. 71 * TROPICZONE_DESERT: Placed manually. 72 * TROPICZONE_RAINFOREST: Placed if you plant certain rainforest-trees. 73 */ 74 enum TropicZone { 75 TROPICZONE_NORMAL = 0, ///< Normal tropiczone 76 TROPICZONE_DESERT = 1, ///< Tile is desert 77 TROPICZONE_RAINFOREST = 2, ///< Rainforest tile 78 }; 79 80 /** 81 * The index/ID of a Tile. 82 */ 83 typedef uint32 TileIndex; 84 85 /** 86 * The very nice invalid tile marker 87 */ 88 static const TileIndex INVALID_TILE = (TileIndex)-1; 89 90 #endif /* TILE_TYPE_H */ 91