mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-08-22 22:19:08 +00:00
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
This commit is contained in:
26
src/rail.cpp
26
src/rail.cpp
@@ -10,41 +10,41 @@
|
||||
/* XXX: Below 3 tables store duplicate data. Maybe remove some? */
|
||||
/* Maps a trackdir to the bit that stores its status in the map arrays, in the
|
||||
* direction along with the trackdir */
|
||||
const byte _signal_along_trackdir[] = {
|
||||
extern const byte _signal_along_trackdir[] = {
|
||||
0x80, 0x80, 0x80, 0x20, 0x40, 0x10, 0, 0,
|
||||
0x40, 0x40, 0x40, 0x10, 0x80, 0x20
|
||||
};
|
||||
|
||||
/* Maps a trackdir to the bit that stores its status in the map arrays, in the
|
||||
* direction against the trackdir */
|
||||
const byte _signal_against_trackdir[] = {
|
||||
extern const byte _signal_against_trackdir[] = {
|
||||
0x40, 0x40, 0x40, 0x10, 0x80, 0x20, 0, 0,
|
||||
0x80, 0x80, 0x80, 0x20, 0x40, 0x10
|
||||
};
|
||||
|
||||
/* Maps a Track to the bits that store the status of the two signals that can
|
||||
* be present on the given track */
|
||||
const byte _signal_on_track[] = {
|
||||
extern const byte _signal_on_track[] = {
|
||||
0xC0, 0xC0, 0xC0, 0x30, 0xC0, 0x30
|
||||
};
|
||||
|
||||
/* Maps a diagonal direction to the all trackdirs that are connected to any
|
||||
* track entering in this direction (including those making 90 degree turns)
|
||||
*/
|
||||
const TrackdirBits _exitdir_reaches_trackdirs[] = {
|
||||
extern const TrackdirBits _exitdir_reaches_trackdirs[] = {
|
||||
TRACKDIR_BIT_X_NE | TRACKDIR_BIT_LOWER_E | TRACKDIR_BIT_LEFT_N, /* DIAGDIR_NE */
|
||||
TRACKDIR_BIT_Y_SE | TRACKDIR_BIT_LEFT_S | TRACKDIR_BIT_UPPER_E, /* DIAGDIR_SE */
|
||||
TRACKDIR_BIT_X_SW | TRACKDIR_BIT_UPPER_W | TRACKDIR_BIT_RIGHT_S, /* DIAGDIR_SW */
|
||||
TRACKDIR_BIT_Y_NW | TRACKDIR_BIT_RIGHT_N | TRACKDIR_BIT_LOWER_W /* DIAGDIR_NW */
|
||||
};
|
||||
|
||||
const Trackdir _next_trackdir[] = {
|
||||
extern const Trackdir _next_trackdir[] = {
|
||||
TRACKDIR_X_NE, TRACKDIR_Y_SE, TRACKDIR_LOWER_E, TRACKDIR_UPPER_E, TRACKDIR_RIGHT_S, TRACKDIR_LEFT_S, INVALID_TRACKDIR, INVALID_TRACKDIR,
|
||||
TRACKDIR_X_SW, TRACKDIR_Y_NW, TRACKDIR_LOWER_W, TRACKDIR_UPPER_W, TRACKDIR_RIGHT_N, TRACKDIR_LEFT_N
|
||||
};
|
||||
|
||||
/* Maps a trackdir to all trackdirs that make 90 deg turns with it. */
|
||||
const TrackdirBits _track_crosses_trackdirs[] = {
|
||||
extern const TrackdirBits _track_crosses_trackdirs[] = {
|
||||
TRACKDIR_BIT_Y_SE | TRACKDIR_BIT_Y_NW, /* TRACK_X */
|
||||
TRACKDIR_BIT_X_NE | TRACKDIR_BIT_X_SW, /* TRACK_Y */
|
||||
TRACKDIR_BIT_RIGHT_N | TRACKDIR_BIT_RIGHT_S | TRACKDIR_BIT_LEFT_N | TRACKDIR_BIT_LEFT_S, /* TRACK_UPPER */
|
||||
@@ -54,7 +54,7 @@ const TrackdirBits _track_crosses_trackdirs[] = {
|
||||
};
|
||||
|
||||
/* Maps a track to all tracks that make 90 deg turns with it. */
|
||||
const TrackBits _track_crosses_tracks[] = {
|
||||
extern const TrackBits _track_crosses_tracks[] = {
|
||||
TRACK_BIT_Y, /* TRACK_X */
|
||||
TRACK_BIT_X, /* TRACK_Y */
|
||||
TRACK_BIT_VERT, /* TRACK_UPPER */
|
||||
@@ -65,12 +65,12 @@ const TrackBits _track_crosses_tracks[] = {
|
||||
|
||||
/* Maps a trackdir to the (4-way) direction the tile is exited when following
|
||||
* that trackdir */
|
||||
const DiagDirection _trackdir_to_exitdir[] = {
|
||||
extern const DiagDirection _trackdir_to_exitdir[] = {
|
||||
DIAGDIR_NE,DIAGDIR_SE,DIAGDIR_NE,DIAGDIR_SE,DIAGDIR_SW,DIAGDIR_SE, DIAGDIR_NE,DIAGDIR_NE,
|
||||
DIAGDIR_SW,DIAGDIR_NW,DIAGDIR_NW,DIAGDIR_SW,DIAGDIR_NW,DIAGDIR_NE,
|
||||
};
|
||||
|
||||
const Trackdir _track_exitdir_to_trackdir[][DIAGDIR_END] = {
|
||||
extern const Trackdir _track_exitdir_to_trackdir[][DIAGDIR_END] = {
|
||||
{TRACKDIR_X_NE, INVALID_TRACKDIR, TRACKDIR_X_SW, INVALID_TRACKDIR},
|
||||
{INVALID_TRACKDIR, TRACKDIR_Y_SE, INVALID_TRACKDIR, TRACKDIR_Y_NW},
|
||||
{TRACKDIR_UPPER_E, INVALID_TRACKDIR, INVALID_TRACKDIR, TRACKDIR_UPPER_W},
|
||||
@@ -79,7 +79,7 @@ const Trackdir _track_exitdir_to_trackdir[][DIAGDIR_END] = {
|
||||
{TRACKDIR_RIGHT_N, TRACKDIR_RIGHT_S, INVALID_TRACKDIR, INVALID_TRACKDIR}
|
||||
};
|
||||
|
||||
const Trackdir _track_enterdir_to_trackdir[][DIAGDIR_END] = { // TODO: replace magic with enums
|
||||
extern const Trackdir _track_enterdir_to_trackdir[][DIAGDIR_END] = { // TODO: replace magic with enums
|
||||
{TRACKDIR_X_NE, INVALID_TRACKDIR, TRACKDIR_X_SW, INVALID_TRACKDIR},
|
||||
{INVALID_TRACKDIR, TRACKDIR_Y_SE, INVALID_TRACKDIR, TRACKDIR_Y_NW},
|
||||
{INVALID_TRACKDIR, TRACKDIR_UPPER_E, TRACKDIR_UPPER_W, INVALID_TRACKDIR},
|
||||
@@ -88,7 +88,7 @@ const Trackdir _track_enterdir_to_trackdir[][DIAGDIR_END] = { // TODO: replace m
|
||||
{INVALID_TRACKDIR, INVALID_TRACKDIR, TRACKDIR_RIGHT_S, TRACKDIR_RIGHT_N}
|
||||
};
|
||||
|
||||
const Trackdir _track_direction_to_trackdir[][DIR_END] = {
|
||||
extern const Trackdir _track_direction_to_trackdir[][DIR_END] = {
|
||||
{INVALID_TRACKDIR, TRACKDIR_X_NE, INVALID_TRACKDIR, INVALID_TRACKDIR, INVALID_TRACKDIR, TRACKDIR_X_SW, INVALID_TRACKDIR, INVALID_TRACKDIR},
|
||||
{INVALID_TRACKDIR, INVALID_TRACKDIR, INVALID_TRACKDIR, TRACKDIR_Y_SE, INVALID_TRACKDIR, INVALID_TRACKDIR, INVALID_TRACKDIR, TRACKDIR_Y_NW},
|
||||
{INVALID_TRACKDIR, INVALID_TRACKDIR, TRACKDIR_UPPER_E, INVALID_TRACKDIR, INVALID_TRACKDIR, INVALID_TRACKDIR, TRACKDIR_UPPER_W, INVALID_TRACKDIR},
|
||||
@@ -97,12 +97,12 @@ const Trackdir _track_direction_to_trackdir[][DIR_END] = {
|
||||
{TRACKDIR_RIGHT_N, INVALID_TRACKDIR, INVALID_TRACKDIR, INVALID_TRACKDIR, TRACKDIR_RIGHT_S, INVALID_TRACKDIR, INVALID_TRACKDIR, INVALID_TRACKDIR}
|
||||
};
|
||||
|
||||
const Trackdir _dir_to_diag_trackdir[] = {
|
||||
extern const Trackdir _dir_to_diag_trackdir[] = {
|
||||
TRACKDIR_X_NE, TRACKDIR_Y_SE, TRACKDIR_X_SW, TRACKDIR_Y_NW,
|
||||
};
|
||||
|
||||
|
||||
RailType GetTileRailType(TileIndex tile, Trackdir trackdir)
|
||||
RailType GetTileRailType(TileIndex tile, Track track)
|
||||
{
|
||||
switch (GetTileType(tile)) {
|
||||
case MP_RAILWAY:
|
||||
|
Reference in New Issue
Block a user