mirror of https://github.com/OpenTTD/OpenTTD
(svn r3697) Rename DIAG1/DIAG2 to X resp. Y as this conveys a bit better in which direction a pieces of rail goes
parent
b404072ccc
commit
793613a286
16
pathfind.c
16
pathfind.c
|
@ -623,18 +623,18 @@ static bool NtpCheck(NewTrackPathFinder *tpf, TileIndex tile, uint dir, uint len
|
|||
|
||||
static const uint16 _is_upwards_slope[15] = {
|
||||
0, // no tileh
|
||||
(1 << TRACKDIR_DIAG1_SW) | (1 << TRACKDIR_DIAG2_NW), // 1
|
||||
(1 << TRACKDIR_DIAG1_SW) | (1 << TRACKDIR_DIAG2_SE), // 2
|
||||
(1 << TRACKDIR_DIAG1_SW), // 3
|
||||
(1 << TRACKDIR_DIAG1_NE) | (1 << TRACKDIR_DIAG2_SE), // 4
|
||||
(1 << TRACKDIR_X_SW) | (1 << TRACKDIR_Y_NW), // 1
|
||||
(1 << TRACKDIR_X_SW) | (1 << TRACKDIR_Y_SE), // 2
|
||||
(1 << TRACKDIR_X_SW), // 3
|
||||
(1 << TRACKDIR_X_NE) | (1 << TRACKDIR_Y_SE), // 4
|
||||
0, // 5
|
||||
(1 << TRACKDIR_DIAG2_SE), // 6
|
||||
(1 << TRACKDIR_Y_SE), // 6
|
||||
0, // 7
|
||||
(1 << TRACKDIR_DIAG1_NE) | (1 << TRACKDIR_DIAG2_NW), // 8,
|
||||
(1 << TRACKDIR_DIAG2_NW), // 9
|
||||
(1 << TRACKDIR_X_NE) | (1 << TRACKDIR_Y_NW), // 8,
|
||||
(1 << TRACKDIR_Y_NW), // 9
|
||||
0, //10
|
||||
0, //11,
|
||||
(1 << TRACKDIR_DIAG1_NE), //12
|
||||
(1 << TRACKDIR_X_NE), //12
|
||||
0, //13
|
||||
0, //14
|
||||
};
|
||||
|
|
38
rail.c
38
rail.c
|
@ -30,21 +30,21 @@ const byte _signal_on_track[] = {
|
|||
* track entering in this direction (including those making 90 degree turns)
|
||||
*/
|
||||
const TrackdirBits _exitdir_reaches_trackdirs[] = {
|
||||
TRACKDIR_BIT_DIAG1_NE | TRACKDIR_BIT_LOWER_E | TRACKDIR_BIT_LEFT_N, /* DIAGDIR_NE */
|
||||
TRACKDIR_BIT_DIAG2_SE | TRACKDIR_BIT_LEFT_S | TRACKDIR_BIT_UPPER_E, /* DIAGDIR_SE */
|
||||
TRACKDIR_BIT_DIAG1_SW | TRACKDIR_BIT_UPPER_W | TRACKDIR_BIT_RIGHT_S, /* DIAGDIR_SW */
|
||||
TRACKDIR_BIT_DIAG2_NW | TRACKDIR_BIT_RIGHT_N | TRACKDIR_BIT_LOWER_W /* DIAGDIR_NW */
|
||||
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[] = {
|
||||
TRACKDIR_DIAG1_NE, TRACKDIR_DIAG2_SE, TRACKDIR_LOWER_E, TRACKDIR_UPPER_E, TRACKDIR_RIGHT_S, TRACKDIR_LEFT_S, INVALID_TRACKDIR, INVALID_TRACKDIR,
|
||||
TRACKDIR_DIAG1_SW, TRACKDIR_DIAG2_NW, TRACKDIR_LOWER_W, TRACKDIR_UPPER_W, TRACKDIR_RIGHT_N, TRACKDIR_LEFT_N
|
||||
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[] = {
|
||||
TRACKDIR_BIT_DIAG2_SE | TRACKDIR_BIT_DIAG2_NW, /* TRACK_DIAG1 */
|
||||
TRACKDIR_BIT_DIAG1_NE | TRACKDIR_BIT_DIAG1_SW, /* TRACK_DIAG2 */
|
||||
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 */
|
||||
TRACKDIR_BIT_RIGHT_N | TRACKDIR_BIT_RIGHT_S | TRACKDIR_BIT_LEFT_N | TRACKDIR_BIT_LEFT_S, /* TRACK_LOWER */
|
||||
TRACKDIR_BIT_UPPER_W | TRACKDIR_BIT_UPPER_E | TRACKDIR_BIT_LOWER_W | TRACKDIR_BIT_LOWER_E, /* TRACK_LEFT */
|
||||
|
@ -53,8 +53,8 @@ const TrackdirBits _track_crosses_trackdirs[] = {
|
|||
|
||||
/* Maps a track to all tracks that make 90 deg turns with it. */
|
||||
const TrackBits _track_crosses_tracks[] = {
|
||||
TRACK_BIT_DIAG2, /* TRACK_DIAG1 */
|
||||
TRACK_BIT_DIAG1, /* TRACK_DIAG2 */
|
||||
TRACK_BIT_Y, /* TRACK_X */
|
||||
TRACK_BIT_X, /* TRACK_Y */
|
||||
TRACK_BIT_LEFT | TRACK_BIT_RIGHT, /* TRACK_UPPER */
|
||||
TRACK_BIT_LEFT | TRACK_BIT_RIGHT, /* TRACK_LOWER */
|
||||
TRACK_BIT_UPPER | TRACK_BIT_LOWER, /* TRACK_LEFT */
|
||||
|
@ -69,8 +69,8 @@ const DiagDirection _trackdir_to_exitdir[] = {
|
|||
};
|
||||
|
||||
const Trackdir _track_exitdir_to_trackdir[][DIAGDIR_END] = {
|
||||
{TRACKDIR_DIAG1_NE, INVALID_TRACKDIR, TRACKDIR_DIAG1_SW, INVALID_TRACKDIR},
|
||||
{INVALID_TRACKDIR, TRACKDIR_DIAG2_SE, INVALID_TRACKDIR, TRACKDIR_DIAG2_NW},
|
||||
{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},
|
||||
{INVALID_TRACKDIR, TRACKDIR_LOWER_E, TRACKDIR_LOWER_W, INVALID_TRACKDIR},
|
||||
{INVALID_TRACKDIR, INVALID_TRACKDIR, TRACKDIR_LEFT_S, TRACKDIR_LEFT_N},
|
||||
|
@ -78,8 +78,8 @@ const Trackdir _track_exitdir_to_trackdir[][DIAGDIR_END] = {
|
|||
};
|
||||
|
||||
const Trackdir _track_enterdir_to_trackdir[][DIAGDIR_END] = { // TODO: replace magic with enums
|
||||
{TRACKDIR_DIAG1_NE, INVALID_TRACKDIR, TRACKDIR_DIAG1_SW, INVALID_TRACKDIR},
|
||||
{INVALID_TRACKDIR, TRACKDIR_DIAG2_SE, INVALID_TRACKDIR, TRACKDIR_DIAG2_NW},
|
||||
{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},
|
||||
{TRACKDIR_LOWER_E, INVALID_TRACKDIR, INVALID_TRACKDIR, TRACKDIR_LOWER_W},
|
||||
{TRACKDIR_LEFT_N, TRACKDIR_LEFT_S, INVALID_TRACKDIR, INVALID_TRACKDIR},
|
||||
|
@ -87,8 +87,8 @@ const Trackdir _track_enterdir_to_trackdir[][DIAGDIR_END] = { // TODO: replace m
|
|||
};
|
||||
|
||||
const Trackdir _track_direction_to_trackdir[][DIR_END] = {
|
||||
{INVALID_TRACKDIR, TRACKDIR_DIAG1_NE, INVALID_TRACKDIR, INVALID_TRACKDIR, INVALID_TRACKDIR, TRACKDIR_DIAG1_SW, INVALID_TRACKDIR, INVALID_TRACKDIR},
|
||||
{INVALID_TRACKDIR, INVALID_TRACKDIR, INVALID_TRACKDIR, TRACKDIR_DIAG2_SE, INVALID_TRACKDIR, INVALID_TRACKDIR, INVALID_TRACKDIR, TRACKDIR_DIAG2_NW},
|
||||
{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},
|
||||
{INVALID_TRACKDIR, INVALID_TRACKDIR, TRACKDIR_LOWER_E, INVALID_TRACKDIR, INVALID_TRACKDIR, INVALID_TRACKDIR, TRACKDIR_LOWER_W, INVALID_TRACKDIR},
|
||||
{TRACKDIR_LEFT_N, INVALID_TRACKDIR, INVALID_TRACKDIR, INVALID_TRACKDIR, TRACKDIR_LEFT_S, INVALID_TRACKDIR, INVALID_TRACKDIR, INVALID_TRACKDIR},
|
||||
|
@ -96,7 +96,7 @@ const Trackdir _track_direction_to_trackdir[][DIR_END] = {
|
|||
};
|
||||
|
||||
const Trackdir _dir_to_diag_trackdir[] = {
|
||||
TRACKDIR_DIAG1_NE, TRACKDIR_DIAG2_SE, TRACKDIR_DIAG1_SW, TRACKDIR_DIAG2_NW,
|
||||
TRACKDIR_X_NE, TRACKDIR_Y_SE, TRACKDIR_X_SW, TRACKDIR_Y_NW,
|
||||
};
|
||||
|
||||
const DiagDirection _reverse_diagdir[] = {
|
||||
|
@ -104,8 +104,8 @@ const DiagDirection _reverse_diagdir[] = {
|
|||
};
|
||||
|
||||
const Trackdir _reverse_trackdir[] = {
|
||||
TRACKDIR_DIAG1_SW, TRACKDIR_DIAG2_NW, TRACKDIR_UPPER_W, TRACKDIR_LOWER_W, TRACKDIR_LEFT_N, TRACKDIR_RIGHT_N, INVALID_TRACKDIR, INVALID_TRACKDIR,
|
||||
TRACKDIR_DIAG1_NE, TRACKDIR_DIAG2_SE, TRACKDIR_UPPER_E, TRACKDIR_LOWER_E, TRACKDIR_LEFT_S, TRACKDIR_RIGHT_S
|
||||
TRACKDIR_X_SW, TRACKDIR_Y_NW, TRACKDIR_UPPER_W, TRACKDIR_LOWER_W, TRACKDIR_LEFT_N, TRACKDIR_RIGHT_N, INVALID_TRACKDIR, INVALID_TRACKDIR,
|
||||
TRACKDIR_X_NE, TRACKDIR_Y_SE, TRACKDIR_UPPER_E, TRACKDIR_LOWER_E, TRACKDIR_LEFT_S, TRACKDIR_RIGHT_S
|
||||
};
|
||||
|
||||
RailType GetTileRailType(TileIndex tile, Trackdir trackdir)
|
||||
|
|
32
rail.h
32
rail.h
|
@ -67,8 +67,8 @@ enum {
|
|||
/** These are used to specify a single track. Can be translated to a trackbit
|
||||
* with TrackToTrackbit */
|
||||
typedef enum Tracks {
|
||||
TRACK_DIAG1 = 0,
|
||||
TRACK_DIAG2 = 1,
|
||||
TRACK_X = 0,
|
||||
TRACK_Y = 1,
|
||||
TRACK_UPPER = 2,
|
||||
TRACK_LOWER = 3,
|
||||
TRACK_LEFT = 4,
|
||||
|
@ -79,8 +79,8 @@ typedef enum Tracks {
|
|||
|
||||
/** These are the bitfield variants of the above */
|
||||
typedef enum TrackBits {
|
||||
TRACK_BIT_DIAG1 = 1U, // 0
|
||||
TRACK_BIT_DIAG2 = 2U, // 1
|
||||
TRACK_BIT_X = 1U, // 0
|
||||
TRACK_BIT_Y = 2U, // 1
|
||||
TRACK_BIT_UPPER = 4U, // 2
|
||||
TRACK_BIT_LOWER = 8U, // 3
|
||||
TRACK_BIT_LEFT = 16U, // 4
|
||||
|
@ -91,16 +91,16 @@ typedef enum TrackBits {
|
|||
/** These are a combination of tracks and directions. Values are 0-5 in one
|
||||
direction (corresponding to the Track enum) and 8-13 in the other direction. */
|
||||
typedef enum Trackdirs {
|
||||
TRACKDIR_DIAG1_NE = 0,
|
||||
TRACKDIR_DIAG2_SE = 1,
|
||||
TRACKDIR_X_NE = 0,
|
||||
TRACKDIR_Y_SE = 1,
|
||||
TRACKDIR_UPPER_E = 2,
|
||||
TRACKDIR_LOWER_E = 3,
|
||||
TRACKDIR_LEFT_S = 4,
|
||||
TRACKDIR_RIGHT_S = 5,
|
||||
/* Note the two missing values here. This enables trackdir -> track
|
||||
* conversion by doing (trackdir & 7) */
|
||||
TRACKDIR_DIAG1_SW = 8,
|
||||
TRACKDIR_DIAG2_NW = 9,
|
||||
TRACKDIR_X_SW = 8,
|
||||
TRACKDIR_Y_NW = 9,
|
||||
TRACKDIR_UPPER_W = 10,
|
||||
TRACKDIR_LOWER_W = 11,
|
||||
TRACKDIR_LEFT_N = 12,
|
||||
|
@ -112,15 +112,15 @@ typedef enum Trackdirs {
|
|||
/** These are a combination of tracks and directions. Values are 0-5 in one
|
||||
direction (corresponding to the Track enum) and 8-13 in the other direction. */
|
||||
typedef enum TrackdirBits {
|
||||
TRACKDIR_BIT_DIAG1_NE = 0x1,
|
||||
TRACKDIR_BIT_DIAG2_SE = 0x2,
|
||||
TRACKDIR_BIT_X_NE = 0x1,
|
||||
TRACKDIR_BIT_Y_SE = 0x2,
|
||||
TRACKDIR_BIT_UPPER_E = 0x4,
|
||||
TRACKDIR_BIT_LOWER_E = 0x8,
|
||||
TRACKDIR_BIT_LEFT_S = 0x10,
|
||||
TRACKDIR_BIT_RIGHT_S = 0x20,
|
||||
/* Again, note the two missing values here. This enables trackdir -> track conversion by doing (trackdir & 0xFF) */
|
||||
TRACKDIR_BIT_DIAG1_SW = 0x0100,
|
||||
TRACKDIR_BIT_DIAG2_NW = 0x0200,
|
||||
TRACKDIR_BIT_X_SW = 0x0100,
|
||||
TRACKDIR_BIT_Y_NW = 0x0200,
|
||||
TRACKDIR_BIT_UPPER_W = 0x0400,
|
||||
TRACKDIR_BIT_LOWER_W = 0x0800,
|
||||
TRACKDIR_BIT_LEFT_N = 0x1000,
|
||||
|
@ -481,7 +481,7 @@ static inline DiagDirection DirToDiagdir(Direction dir) {
|
|||
}
|
||||
|
||||
/* Checks if a given Track is diagonal */
|
||||
static inline bool IsDiagonalTrack(Track track) { return (track == TRACK_DIAG1) || (track == TRACK_DIAG2); }
|
||||
static inline bool IsDiagonalTrack(Track track) { return (track == TRACK_X) || (track == TRACK_Y); }
|
||||
|
||||
/* Checks if a given Trackdir is diagonal. */
|
||||
static inline bool IsDiagonalTrackdir(Trackdir trackdir) { return IsDiagonalTrack(TrackdirToTrack(trackdir)); }
|
||||
|
@ -586,10 +586,10 @@ static inline TransportType GetCrossingTransportType(TileIndex tile, Track track
|
|||
{
|
||||
/* XXX: Nicer way to write this? */
|
||||
switch (track) {
|
||||
/* When map5 bit 3 is set, the road runs in the y direction (DIAG2) */
|
||||
case TRACK_DIAG1:
|
||||
/* When map5 bit 3 is set, the road runs in the y direction */
|
||||
case TRACK_X:
|
||||
return (HASBIT(_m[tile].m5, 3) ? TRANSPORT_RAIL : TRANSPORT_ROAD);
|
||||
case TRACK_DIAG2:
|
||||
case TRACK_Y:
|
||||
return (HASBIT(_m[tile].m5, 3) ? TRANSPORT_ROAD : TRANSPORT_RAIL);
|
||||
default:
|
||||
assert(0);
|
||||
|
|
116
rail_cmd.c
116
rail_cmd.c
|
@ -134,22 +134,22 @@ static const byte _valid_tileh_slopes[4][15] = {
|
|||
|
||||
// set of normal ones
|
||||
{
|
||||
TRACK_BIT_DIAG1|TRACK_BIT_DIAG2|TRACK_BIT_UPPER|TRACK_BIT_LOWER|TRACK_BIT_LEFT|TRACK_BIT_RIGHT,
|
||||
TRACK_BIT_X|TRACK_BIT_Y|TRACK_BIT_UPPER|TRACK_BIT_LOWER|TRACK_BIT_LEFT|TRACK_BIT_RIGHT,
|
||||
TRACK_BIT_RIGHT,
|
||||
TRACK_BIT_UPPER,
|
||||
TRACK_BIT_DIAG1,
|
||||
TRACK_BIT_X,
|
||||
|
||||
TRACK_BIT_LEFT,
|
||||
0,
|
||||
TRACK_BIT_DIAG2,
|
||||
TRACK_BIT_Y,
|
||||
TRACK_BIT_LOWER,
|
||||
|
||||
TRACK_BIT_LOWER,
|
||||
TRACK_BIT_DIAG2,
|
||||
TRACK_BIT_Y,
|
||||
0,
|
||||
TRACK_BIT_LEFT,
|
||||
|
||||
TRACK_BIT_DIAG1,
|
||||
TRACK_BIT_X,
|
||||
TRACK_BIT_UPPER,
|
||||
TRACK_BIT_RIGHT,
|
||||
},
|
||||
|
@ -159,21 +159,21 @@ static const byte _valid_tileh_slopes[4][15] = {
|
|||
0,
|
||||
TRACK_BIT_LEFT,
|
||||
TRACK_BIT_LOWER,
|
||||
TRACK_BIT_DIAG2 | TRACK_BIT_LOWER | TRACK_BIT_LEFT,
|
||||
TRACK_BIT_Y | TRACK_BIT_LOWER | TRACK_BIT_LEFT,
|
||||
|
||||
TRACK_BIT_RIGHT,
|
||||
TRACK_BIT_DIAG1|TRACK_BIT_DIAG2|TRACK_BIT_UPPER|TRACK_BIT_LOWER|TRACK_BIT_LEFT|TRACK_BIT_RIGHT,
|
||||
TRACK_BIT_DIAG1 | TRACK_BIT_LOWER | TRACK_BIT_RIGHT,
|
||||
TRACK_BIT_DIAG1|TRACK_BIT_DIAG2|TRACK_BIT_UPPER|TRACK_BIT_LOWER|TRACK_BIT_LEFT|TRACK_BIT_RIGHT,
|
||||
TRACK_BIT_X|TRACK_BIT_Y|TRACK_BIT_UPPER|TRACK_BIT_LOWER|TRACK_BIT_LEFT|TRACK_BIT_RIGHT,
|
||||
TRACK_BIT_X | TRACK_BIT_LOWER | TRACK_BIT_RIGHT,
|
||||
TRACK_BIT_X|TRACK_BIT_Y|TRACK_BIT_UPPER|TRACK_BIT_LOWER|TRACK_BIT_LEFT|TRACK_BIT_RIGHT,
|
||||
|
||||
TRACK_BIT_UPPER,
|
||||
TRACK_BIT_DIAG1 | TRACK_BIT_UPPER | TRACK_BIT_LEFT,
|
||||
TRACK_BIT_DIAG1|TRACK_BIT_DIAG2|TRACK_BIT_UPPER|TRACK_BIT_LOWER|TRACK_BIT_LEFT|TRACK_BIT_RIGHT,
|
||||
TRACK_BIT_DIAG1|TRACK_BIT_DIAG2|TRACK_BIT_UPPER|TRACK_BIT_LOWER|TRACK_BIT_LEFT|TRACK_BIT_RIGHT,
|
||||
TRACK_BIT_X | TRACK_BIT_UPPER | TRACK_BIT_LEFT,
|
||||
TRACK_BIT_X|TRACK_BIT_Y|TRACK_BIT_UPPER|TRACK_BIT_LOWER|TRACK_BIT_LEFT|TRACK_BIT_RIGHT,
|
||||
TRACK_BIT_X|TRACK_BIT_Y|TRACK_BIT_UPPER|TRACK_BIT_LOWER|TRACK_BIT_LEFT|TRACK_BIT_RIGHT,
|
||||
|
||||
TRACK_BIT_DIAG2 | TRACK_BIT_UPPER | TRACK_BIT_RIGHT,
|
||||
TRACK_BIT_DIAG1|TRACK_BIT_DIAG2|TRACK_BIT_UPPER|TRACK_BIT_LOWER|TRACK_BIT_LEFT|TRACK_BIT_RIGHT,
|
||||
TRACK_BIT_DIAG1|TRACK_BIT_DIAG2|TRACK_BIT_UPPER|TRACK_BIT_LOWER|TRACK_BIT_LEFT|TRACK_BIT_RIGHT,
|
||||
TRACK_BIT_Y | TRACK_BIT_UPPER | TRACK_BIT_RIGHT,
|
||||
TRACK_BIT_X|TRACK_BIT_Y|TRACK_BIT_UPPER|TRACK_BIT_LOWER|TRACK_BIT_LEFT|TRACK_BIT_RIGHT,
|
||||
TRACK_BIT_X|TRACK_BIT_Y|TRACK_BIT_UPPER|TRACK_BIT_LOWER|TRACK_BIT_LEFT|TRACK_BIT_RIGHT,
|
||||
},
|
||||
|
||||
// allowed rail on coast tile
|
||||
|
@ -181,21 +181,21 @@ static const byte _valid_tileh_slopes[4][15] = {
|
|||
0,
|
||||
TRACK_BIT_LEFT,
|
||||
TRACK_BIT_LOWER,
|
||||
TRACK_BIT_DIAG2|TRACK_BIT_LEFT|TRACK_BIT_LOWER,
|
||||
TRACK_BIT_Y|TRACK_BIT_LEFT|TRACK_BIT_LOWER,
|
||||
|
||||
TRACK_BIT_RIGHT,
|
||||
TRACK_BIT_DIAG1|TRACK_BIT_DIAG2|TRACK_BIT_UPPER|TRACK_BIT_LOWER|TRACK_BIT_LEFT|TRACK_BIT_RIGHT,
|
||||
TRACK_BIT_DIAG1|TRACK_BIT_RIGHT|TRACK_BIT_LOWER,
|
||||
TRACK_BIT_DIAG1|TRACK_BIT_DIAG2|TRACK_BIT_UPPER|TRACK_BIT_LOWER|TRACK_BIT_LEFT|TRACK_BIT_RIGHT,
|
||||
TRACK_BIT_X|TRACK_BIT_Y|TRACK_BIT_UPPER|TRACK_BIT_LOWER|TRACK_BIT_LEFT|TRACK_BIT_RIGHT,
|
||||
TRACK_BIT_X|TRACK_BIT_RIGHT|TRACK_BIT_LOWER,
|
||||
TRACK_BIT_X|TRACK_BIT_Y|TRACK_BIT_UPPER|TRACK_BIT_LOWER|TRACK_BIT_LEFT|TRACK_BIT_RIGHT,
|
||||
|
||||
TRACK_BIT_UPPER,
|
||||
TRACK_BIT_DIAG1|TRACK_BIT_LEFT|TRACK_BIT_UPPER,
|
||||
TRACK_BIT_DIAG1|TRACK_BIT_DIAG2|TRACK_BIT_UPPER|TRACK_BIT_LOWER|TRACK_BIT_LEFT|TRACK_BIT_RIGHT,
|
||||
TRACK_BIT_DIAG1|TRACK_BIT_DIAG2|TRACK_BIT_UPPER|TRACK_BIT_LOWER|TRACK_BIT_LEFT|TRACK_BIT_RIGHT,
|
||||
TRACK_BIT_X|TRACK_BIT_LEFT|TRACK_BIT_UPPER,
|
||||
TRACK_BIT_X|TRACK_BIT_Y|TRACK_BIT_UPPER|TRACK_BIT_LOWER|TRACK_BIT_LEFT|TRACK_BIT_RIGHT,
|
||||
TRACK_BIT_X|TRACK_BIT_Y|TRACK_BIT_UPPER|TRACK_BIT_LOWER|TRACK_BIT_LEFT|TRACK_BIT_RIGHT,
|
||||
|
||||
TRACK_BIT_DIAG2|TRACK_BIT_RIGHT|TRACK_BIT_UPPER,
|
||||
TRACK_BIT_DIAG1|TRACK_BIT_DIAG2|TRACK_BIT_UPPER|TRACK_BIT_LOWER|TRACK_BIT_LEFT|TRACK_BIT_RIGHT,
|
||||
TRACK_BIT_DIAG1|TRACK_BIT_DIAG2|TRACK_BIT_UPPER|TRACK_BIT_LOWER|TRACK_BIT_LEFT|TRACK_BIT_RIGHT,
|
||||
TRACK_BIT_Y|TRACK_BIT_RIGHT|TRACK_BIT_UPPER,
|
||||
TRACK_BIT_X|TRACK_BIT_Y|TRACK_BIT_UPPER|TRACK_BIT_LOWER|TRACK_BIT_LEFT|TRACK_BIT_RIGHT,
|
||||
TRACK_BIT_X|TRACK_BIT_Y|TRACK_BIT_UPPER|TRACK_BIT_LOWER|TRACK_BIT_LEFT|TRACK_BIT_RIGHT,
|
||||
},
|
||||
|
||||
// valid railway crossings on slopes
|
||||
|
@ -224,8 +224,8 @@ uint GetRailFoundation(uint tileh, uint bits)
|
|||
(i += 2, tileh == 4) ||
|
||||
(i += 2, tileh == 8)
|
||||
) && (
|
||||
bits == TRACK_BIT_DIAG1 ||
|
||||
(i++, bits == TRACK_BIT_DIAG2)
|
||||
bits == TRACK_BIT_X ||
|
||||
(i++, bits == TRACK_BIT_Y)
|
||||
)) {
|
||||
return i + 15;
|
||||
} else {
|
||||
|
@ -251,7 +251,7 @@ static uint32 CheckRailSlope(uint tileh, TrackBits rail_bits, TrackBits existing
|
|||
return 0;
|
||||
|
||||
if ((~_valid_tileh_slopes[1][tileh] & rail_bits) == 0 || ( // whole tile is leveled up
|
||||
(rail_bits == TRACK_BIT_DIAG1 || rail_bits == TRACK_BIT_DIAG2) &&
|
||||
(rail_bits == TRACK_BIT_X || rail_bits == TRACK_BIT_Y) &&
|
||||
(tileh == 1 || tileh == 2 || tileh == 4 || tileh == 8)
|
||||
)) { // partly up
|
||||
if (existing != 0) {
|
||||
|
@ -296,7 +296,7 @@ int32 CmdBuildSingleRail(int x, int y, uint32 flags, uint32 p1, uint32 p2)
|
|||
switch (GetTileType(tile)) {
|
||||
case MP_TUNNELBRIDGE:
|
||||
if ((m5 & 0xC0) != 0xC0 || // not bridge middle part?
|
||||
(m5 & 0x01 ? TRACK_BIT_DIAG1 : TRACK_BIT_DIAG2) != trackbit) { // wrong direction?
|
||||
(m5 & 0x01 ? TRACK_BIT_X : TRACK_BIT_Y) != trackbit) { // wrong direction?
|
||||
// Get detailed error message
|
||||
return DoCommandByTile(tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR);
|
||||
}
|
||||
|
@ -351,16 +351,16 @@ int32 CmdBuildSingleRail(int x, int y, uint32 flags, uint32 p1, uint32 p2)
|
|||
if (!EnsureNoVehicle(tile)) return CMD_ERROR;
|
||||
|
||||
if (GetRoadType(tile) == ROAD_NORMAL && (
|
||||
(track == TRACK_DIAG1 && m5 == ROAD_Y) ||
|
||||
(track == TRACK_DIAG2 && m5 == ROAD_X) // correct direction?
|
||||
(track == TRACK_X && m5 == ROAD_Y) ||
|
||||
(track == TRACK_Y && m5 == ROAD_X) // correct direction?
|
||||
)) {
|
||||
if (flags & DC_EXEC) {
|
||||
MakeRoadCrossing(tile, GetTileOwner(tile), _current_player, (track == TRACK_DIAG1 ? AXIS_Y : AXIS_X), p1, _m[tile].m2);
|
||||
MakeRoadCrossing(tile, GetTileOwner(tile), _current_player, (track == TRACK_X ? AXIS_Y : AXIS_X), p1, _m[tile].m2);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (IsLevelCrossing(tile) && (m5 & 0x08 ? TRACK_DIAG1 : TRACK_DIAG2) == track)
|
||||
if (IsLevelCrossing(tile) && (m5 & 0x08 ? TRACK_X : TRACK_Y) == track)
|
||||
return_cmd_error(STR_1007_ALREADY_BUILT);
|
||||
/* FALLTHROUGH */
|
||||
|
||||
|
@ -423,7 +423,7 @@ int32 CmdRemoveSingleRail(int x, int y, uint32 flags, uint32 p1, uint32 p2)
|
|||
if ((_m[tile].m5 & 0xF8) != 0xE0)
|
||||
return CMD_ERROR;
|
||||
|
||||
if ((_m[tile].m5 & 1 ? TRACK_BIT_DIAG1 : TRACK_BIT_DIAG2) != trackbit)
|
||||
if ((_m[tile].m5 & 1 ? TRACK_BIT_X : TRACK_BIT_Y) != trackbit)
|
||||
return CMD_ERROR;
|
||||
|
||||
if (!(flags & DC_EXEC))
|
||||
|
@ -440,12 +440,10 @@ int32 CmdRemoveSingleRail(int x, int y, uint32 flags, uint32 p1, uint32 p2)
|
|||
|
||||
/* This is a crossing, let's check if the direction is correct */
|
||||
if (_m[tile].m5 & 8) {
|
||||
if (track != TRACK_DIAG1)
|
||||
return CMD_ERROR;
|
||||
if (track != TRACK_X) return CMD_ERROR;
|
||||
bits = ROAD_Y;
|
||||
} else {
|
||||
if (track != TRACK_DIAG2)
|
||||
return CMD_ERROR;
|
||||
if (track != TRACK_Y) return CMD_ERROR;
|
||||
bits = ROAD_X;
|
||||
}
|
||||
|
||||
|
@ -1072,8 +1070,8 @@ static int32 ClearTile_Track(TileIndex tile, byte flags)
|
|||
switch (GetRailTileType(tile)) {
|
||||
/* XXX: Why the fuck do we remove these thow signals first? */
|
||||
case RAIL_TYPE_SIGNALS:
|
||||
if (HasSignalOnTrack(tile, TRACK_DIAG1)) {
|
||||
ret = DoCommandByTile(tile, TRACK_DIAG1, 0, flags, CMD_REMOVE_SIGNALS);
|
||||
if (HasSignalOnTrack(tile, TRACK_X)) {
|
||||
ret = DoCommandByTile(tile, TRACK_X, 0, flags, CMD_REMOVE_SIGNALS);
|
||||
if (CmdFailed(ret)) return CMD_ERROR;
|
||||
cost += ret;
|
||||
}
|
||||
|
@ -1305,22 +1303,22 @@ static void DrawTrackBits(TileInfo* ti, TrackBits track, bool earth, bool snow,
|
|||
bool junction = false;
|
||||
|
||||
// Select the sprite to use.
|
||||
(image = rti->base_sprites.track_y, track == TRACK_BIT_DIAG2) ||
|
||||
(image++, track == TRACK_BIT_DIAG1) ||
|
||||
(image = rti->base_sprites.track_y, track == TRACK_BIT_Y) ||
|
||||
(image++, track == TRACK_BIT_X) ||
|
||||
(image++, track == TRACK_BIT_UPPER) ||
|
||||
(image++, track == TRACK_BIT_LOWER) ||
|
||||
(image++, track == TRACK_BIT_RIGHT) ||
|
||||
(image++, track == TRACK_BIT_LEFT) ||
|
||||
(image++, track == (TRACK_BIT_DIAG1 | TRACK_BIT_DIAG2)) ||
|
||||
(image++, track == (TRACK_BIT_X | TRACK_BIT_Y)) ||
|
||||
|
||||
(image = rti->base_sprites.track_ns, track == (TRACK_BIT_UPPER | TRACK_BIT_LOWER)) ||
|
||||
(image++, track == (TRACK_BIT_LEFT | TRACK_BIT_RIGHT)) ||
|
||||
|
||||
(junction = true, false) ||
|
||||
(image = rti->base_sprites.ground, !(track & (TRACK_BIT_RIGHT | TRACK_BIT_UPPER | TRACK_BIT_DIAG1))) ||
|
||||
(image++, !(track & (TRACK_BIT_LEFT | TRACK_BIT_LOWER | TRACK_BIT_DIAG1))) ||
|
||||
(image++, !(track & (TRACK_BIT_LEFT | TRACK_BIT_UPPER | TRACK_BIT_DIAG2))) ||
|
||||
(image++, !(track & (TRACK_BIT_RIGHT | TRACK_BIT_LOWER | TRACK_BIT_DIAG2))) ||
|
||||
(image = rti->base_sprites.ground, !(track & (TRACK_BIT_RIGHT | TRACK_BIT_UPPER | TRACK_BIT_X))) ||
|
||||
(image++, !(track & (TRACK_BIT_LEFT | TRACK_BIT_LOWER | TRACK_BIT_X))) ||
|
||||
(image++, !(track & (TRACK_BIT_LEFT | TRACK_BIT_UPPER | TRACK_BIT_Y))) ||
|
||||
(image++, !(track & (TRACK_BIT_RIGHT | TRACK_BIT_LOWER | TRACK_BIT_Y))) ||
|
||||
(image++, true);
|
||||
|
||||
if (ti->tileh != 0) {
|
||||
|
@ -1351,8 +1349,8 @@ static void DrawTrackBits(TileInfo* ti, TrackBits track, bool earth, bool snow,
|
|||
|
||||
// Draw track pieces individually for junction tiles
|
||||
if (junction) {
|
||||
if (track & TRACK_BIT_DIAG1) DrawGroundSprite(rti->base_sprites.single_y);
|
||||
if (track & TRACK_BIT_DIAG2) DrawGroundSprite(rti->base_sprites.single_x);
|
||||
if (track & TRACK_BIT_X) DrawGroundSprite(rti->base_sprites.single_y);
|
||||
if (track & TRACK_BIT_Y) DrawGroundSprite(rti->base_sprites.single_x);
|
||||
if (track & TRACK_BIT_UPPER) DrawGroundSprite(rti->base_sprites.single_n);
|
||||
if (track & TRACK_BIT_LOWER) DrawGroundSprite(rti->base_sprites.single_s);
|
||||
if (track & TRACK_BIT_LEFT) DrawGroundSprite(rti->base_sprites.single_w);
|
||||
|
@ -1392,8 +1390,8 @@ static void DrawTile_Track(TileInfo *ti)
|
|||
#define ISON_SIGNAL(x) (m23 & (byte)(0x10 << (x)))
|
||||
#define MAYBE_DRAW_SIGNAL(x,y,z) if (HAS_SIGNAL(x)) DrawSignalHelper(ti, ISON_SIGNAL(x), ((y-0x4FB) << 4)|(z))
|
||||
|
||||
if (!(m5 & TRACK_BIT_DIAG2)) {
|
||||
if (!(m5 & TRACK_BIT_DIAG1)) {
|
||||
if (!(m5 & TRACK_BIT_Y)) {
|
||||
if (!(m5 & TRACK_BIT_X)) {
|
||||
if (m5 & TRACK_BIT_LEFT) {
|
||||
MAYBE_DRAW_SIGNAL(2, 0x509, 0);
|
||||
MAYBE_DRAW_SIGNAL(3, 0x507, 1);
|
||||
|
@ -1909,8 +1907,8 @@ static void TileLoop_Track(TileIndex tile)
|
|||
PlayerID owner = GetTileOwner(tile);
|
||||
|
||||
if (rail == (TRACK_BIT_LOWER | TRACK_BIT_RIGHT) || (
|
||||
!(rail & (TRACK_BIT_DIAG2 | TRACK_BIT_UPPER | TRACK_BIT_LEFT)) &&
|
||||
(rail & TRACK_BIT_DIAG1)
|
||||
!(rail & (TRACK_BIT_Y | TRACK_BIT_UPPER | TRACK_BIT_LEFT)) &&
|
||||
(rail & TRACK_BIT_X)
|
||||
)) {
|
||||
TileIndex n = tile + TileDiffXY(0, -1);
|
||||
|
||||
|
@ -1923,8 +1921,8 @@ static void TileLoop_Track(TileIndex tile)
|
|||
}
|
||||
|
||||
if (rail == (TRACK_BIT_UPPER | TRACK_BIT_LEFT) || (
|
||||
!(rail & (TRACK_BIT_DIAG2 | TRACK_BIT_LOWER | TRACK_BIT_RIGHT)) &&
|
||||
(rail & TRACK_BIT_DIAG1)
|
||||
!(rail & (TRACK_BIT_Y | TRACK_BIT_LOWER | TRACK_BIT_RIGHT)) &&
|
||||
(rail & TRACK_BIT_X)
|
||||
)) {
|
||||
TileIndex n = tile + TileDiffXY(0, 1);
|
||||
|
||||
|
@ -1938,8 +1936,8 @@ static void TileLoop_Track(TileIndex tile)
|
|||
}
|
||||
|
||||
if (rail == (TRACK_BIT_LOWER | TRACK_BIT_LEFT) || (
|
||||
!(rail & (TRACK_BIT_DIAG1 | TRACK_BIT_UPPER | TRACK_BIT_RIGHT)) &&
|
||||
(rail & TRACK_BIT_DIAG2)
|
||||
!(rail & (TRACK_BIT_X | TRACK_BIT_UPPER | TRACK_BIT_RIGHT)) &&
|
||||
(rail & TRACK_BIT_Y)
|
||||
)) {
|
||||
TileIndex n = tile + TileDiffXY(-1, 0);
|
||||
|
||||
|
@ -1952,8 +1950,8 @@ static void TileLoop_Track(TileIndex tile)
|
|||
}
|
||||
|
||||
if (rail == (TRACK_BIT_UPPER | TRACK_BIT_RIGHT) || (
|
||||
!(rail & (TRACK_BIT_DIAG1 | TRACK_BIT_LOWER | TRACK_BIT_LEFT)) &&
|
||||
(rail & TRACK_BIT_DIAG2)
|
||||
!(rail & (TRACK_BIT_X | TRACK_BIT_LOWER | TRACK_BIT_LEFT)) &&
|
||||
(rail & TRACK_BIT_Y)
|
||||
)) {
|
||||
TileIndex n = tile + TileDiffXY(1, 0);
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
static inline TrackBits GetRailWaypointBits(TileIndex t)
|
||||
{
|
||||
return _m[t].m5 & RAIL_WAYPOINT_TRACK_MASK ? TRACK_BIT_DIAG2 : TRACK_BIT_DIAG1;
|
||||
return _m[t].m5 & RAIL_WAYPOINT_TRACK_MASK ? TRACK_BIT_Y : TRACK_BIT_X;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -239,10 +239,10 @@ int32 CmdRemoveRoad(int x, int y, uint32 flags, uint32 p1, uint32 p2)
|
|||
|
||||
if (!(ti.map5 & 8)) {
|
||||
if (pieces & ROAD_Y) goto return_error;
|
||||
track = TRACK_BIT_DIAG2;
|
||||
track = TRACK_BIT_Y;
|
||||
} else {
|
||||
if (pieces & ROAD_X) goto return_error;
|
||||
track = TRACK_BIT_DIAG1;
|
||||
track = TRACK_BIT_X;
|
||||
}
|
||||
|
||||
cost = _price.remove_road * 2;
|
||||
|
|
|
@ -1033,7 +1033,7 @@ int32 CmdBuildRailroadStation(int x, int y, uint32 flags, uint32 p1, uint32 p2)
|
|||
st->build_date = _date;
|
||||
|
||||
tile_delta = direction ? TileDiffXY(0, 1) : TileDiffXY(1, 0);
|
||||
track = direction ? TRACK_DIAG2 : TRACK_DIAG1;
|
||||
track = direction ? TRACK_Y : TRACK_X;
|
||||
|
||||
statspec = (p2 & 0x10) != 0 ? GetCustomStation(STAT_CLASS_DFLT, p2 >> 8) : NULL;
|
||||
layout_ptr = alloca(numtracks * plat_len);
|
||||
|
@ -1149,7 +1149,7 @@ int32 CmdRemoveFromRailroadStation(int x, int y, uint32 flags, uint32 p1, uint32
|
|||
|
||||
// if we reached here, it means we can actually delete it. do that.
|
||||
if (flags & DC_EXEC) {
|
||||
Track track = HASBIT(_m[tile].m5, 0) ? TRACK_DIAG2 : TRACK_DIAG1;
|
||||
Track track = HASBIT(_m[tile].m5, 0) ? TRACK_Y : TRACK_X;
|
||||
DoClearSquare(tile);
|
||||
SetSignalsOnBothDir(tile, track);
|
||||
// now we need to make the "spanned" area of the railway station smaller if we deleted something at the edges.
|
||||
|
@ -1228,7 +1228,7 @@ static int32 RemoveRailroadStation(Station *st, TileIndex tile, uint32 flags)
|
|||
if (!EnsureNoVehicle(tile))
|
||||
return CMD_ERROR;
|
||||
if (flags & DC_EXEC) {
|
||||
Track track = HASBIT(_m[tile].m5, 0) ? TRACK_DIAG2 : TRACK_DIAG1;
|
||||
Track track = HASBIT(_m[tile].m5, 0) ? TRACK_Y : TRACK_X;
|
||||
DoClearSquare(tile);
|
||||
SetSignalsOnBothDir(tile, track);
|
||||
}
|
||||
|
|
|
@ -183,8 +183,8 @@ int32 CmdBuildTrainWaypoint(int x, int y, uint32 flags, uint32 p1, uint32 p2)
|
|||
if (p1 >= GetNumCustomStations(STAT_CLASS_WAYP)) return CMD_ERROR;
|
||||
|
||||
if (!IsTileType(tile, MP_RAILWAY) || (
|
||||
(axis = AXIS_X, _m[tile].m5 != TRACK_BIT_DIAG1) &&
|
||||
(axis = AXIS_Y, _m[tile].m5 != TRACK_BIT_DIAG2)
|
||||
(axis = AXIS_X, _m[tile].m5 != TRACK_BIT_X) &&
|
||||
(axis = AXIS_Y, _m[tile].m5 != TRACK_BIT_Y)
|
||||
)) {
|
||||
return_cmd_error(STR_1005_NO_SUITABLE_RAILROAD_TRACK);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue