annotate src/rail_type.h @ 12411:9fdbb4594b82 draft

(svn r16845) -Codechange: Introduction of constants for describing the bits in a WWT_MATRIX data field.
author alberth <alberth@openttd.org>
date Thu, 16 Jul 2009 16:22:23 +0000
parents c585f3fa783b
children 2bd521d1ddd7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8101
b222582555cb (svn r11662) -Codechange: move some rail types/related functions around.
rubidium <rubidium@openttd.org>
parents:
diff changeset
1 /* $Id$ */
b222582555cb (svn r11662) -Codechange: move some rail types/related functions around.
rubidium <rubidium@openttd.org>
parents:
diff changeset
2
b222582555cb (svn r11662) -Codechange: move some rail types/related functions around.
rubidium <rubidium@openttd.org>
parents:
diff changeset
3 /** @file rail_type.h The different types of rail */
b222582555cb (svn r11662) -Codechange: move some rail types/related functions around.
rubidium <rubidium@openttd.org>
parents:
diff changeset
4
b222582555cb (svn r11662) -Codechange: move some rail types/related functions around.
rubidium <rubidium@openttd.org>
parents:
diff changeset
5 #ifndef RAIL_TYPE_H
b222582555cb (svn r11662) -Codechange: move some rail types/related functions around.
rubidium <rubidium@openttd.org>
parents:
diff changeset
6 #define RAIL_TYPE_H
b222582555cb (svn r11662) -Codechange: move some rail types/related functions around.
rubidium <rubidium@openttd.org>
parents:
diff changeset
7
8263
aeaa4ef701df (svn r11827) -Codechange: do not include enum_type.hpp unnecessary.
rubidium <rubidium@openttd.org>
parents: 8236
diff changeset
8 #include "core/enum_type.hpp"
aeaa4ef701df (svn r11827) -Codechange: do not include enum_type.hpp unnecessary.
rubidium <rubidium@openttd.org>
parents: 8236
diff changeset
9
11076
3ce92d721ce1 (svn r15417) -Codechange: Add default rail type labels and support for per-GRF translation table.
peter1138 <peter1138@openttd.org>
parents: 8263
diff changeset
10 typedef uint32 RailTypeLabel;
3ce92d721ce1 (svn r15417) -Codechange: Add default rail type labels and support for per-GRF translation table.
peter1138 <peter1138@openttd.org>
parents: 8263
diff changeset
11
8101
b222582555cb (svn r11662) -Codechange: move some rail types/related functions around.
rubidium <rubidium@openttd.org>
parents:
diff changeset
12 /**
b222582555cb (svn r11662) -Codechange: move some rail types/related functions around.
rubidium <rubidium@openttd.org>
parents:
diff changeset
13 * Enumeration for all possible railtypes.
b222582555cb (svn r11662) -Codechange: move some rail types/related functions around.
rubidium <rubidium@openttd.org>
parents:
diff changeset
14 *
b222582555cb (svn r11662) -Codechange: move some rail types/related functions around.
rubidium <rubidium@openttd.org>
parents:
diff changeset
15 * This enumeration defines all 4 possible railtypes.
b222582555cb (svn r11662) -Codechange: move some rail types/related functions around.
rubidium <rubidium@openttd.org>
parents:
diff changeset
16 */
b222582555cb (svn r11662) -Codechange: move some rail types/related functions around.
rubidium <rubidium@openttd.org>
parents:
diff changeset
17 enum RailType {
b222582555cb (svn r11662) -Codechange: move some rail types/related functions around.
rubidium <rubidium@openttd.org>
parents:
diff changeset
18 RAILTYPE_BEGIN = 0, ///< Used for iterations
b222582555cb (svn r11662) -Codechange: move some rail types/related functions around.
rubidium <rubidium@openttd.org>
parents:
diff changeset
19 RAILTYPE_RAIL = 0, ///< Standard non-electric rails
b222582555cb (svn r11662) -Codechange: move some rail types/related functions around.
rubidium <rubidium@openttd.org>
parents:
diff changeset
20 RAILTYPE_ELECTRIC = 1, ///< Electric rails
b222582555cb (svn r11662) -Codechange: move some rail types/related functions around.
rubidium <rubidium@openttd.org>
parents:
diff changeset
21 RAILTYPE_MONO = 2, ///< Monorail
b222582555cb (svn r11662) -Codechange: move some rail types/related functions around.
rubidium <rubidium@openttd.org>
parents:
diff changeset
22 RAILTYPE_MAGLEV = 3, ///< Maglev
b222582555cb (svn r11662) -Codechange: move some rail types/related functions around.
rubidium <rubidium@openttd.org>
parents:
diff changeset
23 RAILTYPE_END, ///< Used for iterations
b222582555cb (svn r11662) -Codechange: move some rail types/related functions around.
rubidium <rubidium@openttd.org>
parents:
diff changeset
24 INVALID_RAILTYPE = 0xFF ///< Flag for invalid railtype
b222582555cb (svn r11662) -Codechange: move some rail types/related functions around.
rubidium <rubidium@openttd.org>
parents:
diff changeset
25 };
b222582555cb (svn r11662) -Codechange: move some rail types/related functions around.
rubidium <rubidium@openttd.org>
parents:
diff changeset
26
b222582555cb (svn r11662) -Codechange: move some rail types/related functions around.
rubidium <rubidium@openttd.org>
parents:
diff changeset
27 /** Allow incrementing of Track variables */
b222582555cb (svn r11662) -Codechange: move some rail types/related functions around.
rubidium <rubidium@openttd.org>
parents:
diff changeset
28 DECLARE_POSTFIX_INCREMENT(RailType);
b222582555cb (svn r11662) -Codechange: move some rail types/related functions around.
rubidium <rubidium@openttd.org>
parents:
diff changeset
29 /** Define basic enum properties */
b222582555cb (svn r11662) -Codechange: move some rail types/related functions around.
rubidium <rubidium@openttd.org>
parents:
diff changeset
30 template <> struct EnumPropsT<RailType> : MakeEnumPropsT<RailType, byte, RAILTYPE_BEGIN, RAILTYPE_END, INVALID_RAILTYPE> {};
b222582555cb (svn r11662) -Codechange: move some rail types/related functions around.
rubidium <rubidium@openttd.org>
parents:
diff changeset
31 typedef TinyEnumT<RailType> RailTypeByte;
b222582555cb (svn r11662) -Codechange: move some rail types/related functions around.
rubidium <rubidium@openttd.org>
parents:
diff changeset
32
8236
d1191295967a (svn r11800) -Codechange: move some functions to a more logical location + some type safety.
rubidium <rubidium@openttd.org>
parents: 8101
diff changeset
33 /**
d1191295967a (svn r11800) -Codechange: move some functions to a more logical location + some type safety.
rubidium <rubidium@openttd.org>
parents: 8101
diff changeset
34 * The different roadtypes we support, but then a bitmask of them
d1191295967a (svn r11800) -Codechange: move some functions to a more logical location + some type safety.
rubidium <rubidium@openttd.org>
parents: 8101
diff changeset
35 */
d1191295967a (svn r11800) -Codechange: move some functions to a more logical location + some type safety.
rubidium <rubidium@openttd.org>
parents: 8101
diff changeset
36 enum RailTypes {
d1191295967a (svn r11800) -Codechange: move some functions to a more logical location + some type safety.
rubidium <rubidium@openttd.org>
parents: 8101
diff changeset
37 RAILTYPES_NONE = 0, ///< No rail types
d1191295967a (svn r11800) -Codechange: move some functions to a more logical location + some type safety.
rubidium <rubidium@openttd.org>
parents: 8101
diff changeset
38 RAILTYPES_RAIL = 1 << RAILTYPE_RAIL, ///< Non-electrified rails
d1191295967a (svn r11800) -Codechange: move some functions to a more logical location + some type safety.
rubidium <rubidium@openttd.org>
parents: 8101
diff changeset
39 RAILTYPES_ELECTRIC = 1 << RAILTYPE_ELECTRIC, ///< Electrified rails
d1191295967a (svn r11800) -Codechange: move some functions to a more logical location + some type safety.
rubidium <rubidium@openttd.org>
parents: 8101
diff changeset
40 RAILTYPES_MONO = 1 << RAILTYPE_MONO, ///< Monorail!
d1191295967a (svn r11800) -Codechange: move some functions to a more logical location + some type safety.
rubidium <rubidium@openttd.org>
parents: 8101
diff changeset
41 RAILTYPES_MAGLEV = 1 << RAILTYPE_MAGLEV, ///< Ever fast maglev
11104
c585f3fa783b (svn r15450) -Codechange: Remove unused RailTypesByte, unused RAILTYPES_... enum values, and change INVALID_RAILTYPES to be UINT_MAX.
peter1138 <peter1138@openttd.org>
parents: 11076
diff changeset
42 INVALID_RAILTYPES = UINT_MAX ///< Invalid railtypes
8236
d1191295967a (svn r11800) -Codechange: move some functions to a more logical location + some type safety.
rubidium <rubidium@openttd.org>
parents: 8101
diff changeset
43 };
d1191295967a (svn r11800) -Codechange: move some functions to a more logical location + some type safety.
rubidium <rubidium@openttd.org>
parents: 8101
diff changeset
44 DECLARE_ENUM_AS_BIT_SET(RailTypes);
d1191295967a (svn r11800) -Codechange: move some functions to a more logical location + some type safety.
rubidium <rubidium@openttd.org>
parents: 8101
diff changeset
45
8101
b222582555cb (svn r11662) -Codechange: move some rail types/related functions around.
rubidium <rubidium@openttd.org>
parents:
diff changeset
46 #endif /* RAIL_TYPE_H */