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 transport_type.h Base types related to transport. */ 9 10 #ifndef TRANSPORT_TYPE_H 11 #define TRANSPORT_TYPE_H 12 13 #include "core/enum_type.hpp" 14 15 /** Type for the company global vehicle unit number. */ 16 typedef uint16 UnitID; 17 18 /** Available types of transport */ 19 enum TransportType { 20 /* These constants are for now linked to the representation of bridges 21 * and tunnels, so they can be used by GetTileTrackStatus_TunnelBridge. 22 * In an ideal world, these constants would be used everywhere when 23 * accessing tunnels and bridges. For now, you should just not change 24 * the values for road and rail. 25 */ 26 TRANSPORT_BEGIN = 0, ///< Begin of the iterator. 27 TRANSPORT_RAIL = TRANSPORT_BEGIN, ///< Transport by train 28 TRANSPORT_ROAD, ///< Transport by road vehicle 29 TRANSPORT_WATER, ///< Transport over water 30 TRANSPORT_AIR, ///< Transport through air 31 TRANSPORT_END, ///< End of iterations. 32 INVALID_TRANSPORT = 0xff, ///< Sentinel for invalid transport types. 33 }; 34 /** Helper information for extract tool. */ 35 template <> struct EnumPropsT<TransportType> : MakeEnumPropsT<TransportType, byte, TRANSPORT_BEGIN, TRANSPORT_END, INVALID_TRANSPORT, 2> {}; 36 37 #endif /* TRANSPORT_TYPE_H */ 38