src/rail_type.h
author translators
Wed, 10 Dec 2008 18:45:17 +0000
changeset 10413 949a3254ed46
parent 8263 2b3e64c5e680
permissions -rw-r--r--
(svn r14666) -Update: WebTranslator2 update to 2008-12-10 18:44:59
arabic_egypt - 306 fixed by khaloofah (306)
hebrew - 419 fixed, 45 changed by moshe (458), ybungalobill (6)
hungarian - 1 changed by alyr (1)
ido - 12 fixed by Cecile (12)
indonesian - 10 fixed by fanioz (10)
latvian - 1 fixed by pakalns (1)
portuguese - 17 fixed by rmrebelo (12), SnowFlake (5)
turkish - 161 changed by doesntmatter (161)
8101
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
     1
/* $Id$ */
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
     2
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
     3
/** @file rail_type.h The different types of rail */
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
     4
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
     5
#ifndef RAIL_TYPE_H
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
     6
#define RAIL_TYPE_H
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
     7
8263
2b3e64c5e680 (svn r11827) -Codechange: do not include enum_type.hpp unnecessary.
rubidium
parents: 8236
diff changeset
     8
#include "core/enum_type.hpp"
2b3e64c5e680 (svn r11827) -Codechange: do not include enum_type.hpp unnecessary.
rubidium
parents: 8236
diff changeset
     9
8101
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    10
/**
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    11
 * Enumeration for all possible railtypes.
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    12
 *
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    13
 * This enumeration defines all 4 possible railtypes.
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    14
 */
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    15
enum RailType {
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    16
	RAILTYPE_BEGIN    = 0,          ///< Used for iterations
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    17
	RAILTYPE_RAIL     = 0,          ///< Standard non-electric rails
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    18
	RAILTYPE_ELECTRIC = 1,          ///< Electric rails
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    19
	RAILTYPE_MONO     = 2,          ///< Monorail
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    20
	RAILTYPE_MAGLEV   = 3,          ///< Maglev
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    21
	RAILTYPE_END,                   ///< Used for iterations
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    22
	INVALID_RAILTYPE  = 0xFF        ///< Flag for invalid railtype
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    23
};
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    24
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    25
/** Allow incrementing of Track variables */
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    26
DECLARE_POSTFIX_INCREMENT(RailType);
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    27
/** Define basic enum properties */
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    28
template <> struct EnumPropsT<RailType> : MakeEnumPropsT<RailType, byte, RAILTYPE_BEGIN, RAILTYPE_END, INVALID_RAILTYPE> {};
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    29
typedef TinyEnumT<RailType> RailTypeByte;
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    30
8236
8a5dd0b42e47 (svn r11800) -Codechange: move some functions to a more logical location + some type safety.
rubidium
parents: 8101
diff changeset
    31
/**
8a5dd0b42e47 (svn r11800) -Codechange: move some functions to a more logical location + some type safety.
rubidium
parents: 8101
diff changeset
    32
 * The different roadtypes we support, but then a bitmask of them
8a5dd0b42e47 (svn r11800) -Codechange: move some functions to a more logical location + some type safety.
rubidium
parents: 8101
diff changeset
    33
 */
8a5dd0b42e47 (svn r11800) -Codechange: move some functions to a more logical location + some type safety.
rubidium
parents: 8101
diff changeset
    34
enum RailTypes {
8a5dd0b42e47 (svn r11800) -Codechange: move some functions to a more logical location + some type safety.
rubidium
parents: 8101
diff changeset
    35
	RAILTYPES_NONE     = 0,                      ///< No rail types
8a5dd0b42e47 (svn r11800) -Codechange: move some functions to a more logical location + some type safety.
rubidium
parents: 8101
diff changeset
    36
	RAILTYPES_RAIL     = 1 << RAILTYPE_RAIL,     ///< Non-electrified rails
8a5dd0b42e47 (svn r11800) -Codechange: move some functions to a more logical location + some type safety.
rubidium
parents: 8101
diff changeset
    37
	RAILTYPES_ELECTRIC = 1 << RAILTYPE_ELECTRIC, ///< Electrified rails
8a5dd0b42e47 (svn r11800) -Codechange: move some functions to a more logical location + some type safety.
rubidium
parents: 8101
diff changeset
    38
	RAILTYPES_MONO     = 1 << RAILTYPE_MONO,     ///< Monorail!
8a5dd0b42e47 (svn r11800) -Codechange: move some functions to a more logical location + some type safety.
rubidium
parents: 8101
diff changeset
    39
	RAILTYPES_MAGLEV   = 1 << RAILTYPE_MAGLEV,   ///< Ever fast maglev
8a5dd0b42e47 (svn r11800) -Codechange: move some functions to a more logical location + some type safety.
rubidium
parents: 8101
diff changeset
    40
	RAILTYPES_ALL      = RAILTYPES_RAIL | RAILTYPES_ELECTRIC | RAILTYPES_MONO | RAILTYPES_MAGLEV, ///< All of them
8a5dd0b42e47 (svn r11800) -Codechange: move some functions to a more logical location + some type safety.
rubidium
parents: 8101
diff changeset
    41
	RAILTYPES_END,                               ///< Used for iterations?
8a5dd0b42e47 (svn r11800) -Codechange: move some functions to a more logical location + some type safety.
rubidium
parents: 8101
diff changeset
    42
	INVALID_RAILTYPES  = 0xFF                    ///< Invalid railtypes
8a5dd0b42e47 (svn r11800) -Codechange: move some functions to a more logical location + some type safety.
rubidium
parents: 8101
diff changeset
    43
};
8a5dd0b42e47 (svn r11800) -Codechange: move some functions to a more logical location + some type safety.
rubidium
parents: 8101
diff changeset
    44
DECLARE_ENUM_AS_BIT_SET(RailTypes);
8a5dd0b42e47 (svn r11800) -Codechange: move some functions to a more logical location + some type safety.
rubidium
parents: 8101
diff changeset
    45
template <> struct EnumPropsT<RailTypes> : MakeEnumPropsT<RailTypes, byte, RAILTYPES_NONE, RAILTYPES_END, INVALID_RAILTYPES> {};
8a5dd0b42e47 (svn r11800) -Codechange: move some functions to a more logical location + some type safety.
rubidium
parents: 8101
diff changeset
    46
typedef TinyEnumT<RailTypes> RailTypesByte;
8a5dd0b42e47 (svn r11800) -Codechange: move some functions to a more logical location + some type safety.
rubidium
parents: 8101
diff changeset
    47
8101
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    48
#endif /* RAIL_TYPE_H */