Files
@ r27835:eabfaa878ced
Branch filter:
Location: cpp/openttd-patchpack/source/src/rail_type.h - annotation
r27835:eabfaa878ced
2.2 KiB
text/x-c
Add: calendar date for Survey results
This means no heuristics is possible on around which date people
play the game.
This means no heuristics is possible on around which date people
play the game.
r12768:980ae0491352 r12768:980ae0491352 r12768:980ae0491352 r12768:980ae0491352 r12768:980ae0491352 r12768:980ae0491352 r12768:980ae0491352 r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r8263:00e828e1ab1f r8263:00e828e1ab1f r27737:728d55b97775 r11076:462de50d5ea7 r14895:fb237f7e7f5b r14895:fb237f7e7f5b r14895:fb237f7e7f5b r14895:fb237f7e7f5b r14895:fb237f7e7f5b r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r23669:a998a23bf906 r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r22973:c03fb4aa283e r12470:62669b41f044 r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r14900:c679fdaeebe6 r8101:70b290505353 r8236:a2ecfe92ab23 r23021:aa126cdbf65b r27737:728d55b97775 r8236:a2ecfe92ab23 r27737:728d55b97775 r8236:a2ecfe92ab23 r8236:a2ecfe92ab23 r8236:a2ecfe92ab23 r8236:a2ecfe92ab23 r8236:a2ecfe92ab23 r22973:c03fb4aa283e r8236:a2ecfe92ab23 r14900:c679fdaeebe6 r8236:a2ecfe92ab23 r8101:70b290505353 | /*
* This file is part of OpenTTD.
* 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.
* 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.
* 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/>.
*/
/** @file rail_type.h The different types of rail */
#ifndef RAIL_TYPE_H
#define RAIL_TYPE_H
#include "core/enum_type.hpp"
typedef uint32_t RailTypeLabel;
static const RailTypeLabel RAILTYPE_RAIL_LABEL = 'RAIL';
static const RailTypeLabel RAILTYPE_ELECTRIC_LABEL = 'ELRL';
static const RailTypeLabel RAILTYPE_MONO_LABEL = 'MONO';
static const RailTypeLabel RAILTYPE_MAGLEV_LABEL = 'MGLV';
/**
* Enumeration for all possible railtypes.
*
* This enumeration defines all 4 possible railtypes.
*/
enum RailType : byte {
RAILTYPE_BEGIN = 0, ///< Used for iterations
RAILTYPE_RAIL = 0, ///< Standard non-electric rails
RAILTYPE_ELECTRIC = 1, ///< Electric rails
RAILTYPE_MONO = 2, ///< Monorail
RAILTYPE_MAGLEV = 3, ///< Maglev
RAILTYPE_END = 64, ///< Used for iterations
INVALID_RAILTYPE = 0xFF, ///< Flag for invalid railtype
};
/** Allow incrementing of Track variables */
DECLARE_POSTFIX_INCREMENT(RailType)
/**
* The different railtypes we support, but then a bitmask of them.
* @note Must be treated as a uint64_t type, narrowing it causes bit membership tests to give wrong results, as in bug #6951.
*/
enum RailTypes : uint64_t {
RAILTYPES_NONE = 0, ///< No rail types
RAILTYPES_RAIL = 1 << RAILTYPE_RAIL, ///< Non-electrified rails
RAILTYPES_ELECTRIC = 1 << RAILTYPE_ELECTRIC, ///< Electrified rails
RAILTYPES_MONO = 1 << RAILTYPE_MONO, ///< Monorail!
RAILTYPES_MAGLEV = 1 << RAILTYPE_MAGLEV, ///< Ever fast maglev
INVALID_RAILTYPES = UINT64_MAX, ///< Invalid railtypes
};
DECLARE_ENUM_AS_BIT_SET(RailTypes)
#endif /* RAIL_TYPE_H */
|