(svn r3697) Rename DIAG1/DIAG2 to X resp. Y as this conveys a bit better in which direction a pieces of rail goes
This commit is contained in:
		
							
								
								
									
										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] = { | static const uint16 _is_upwards_slope[15] = { | ||||||
| 	0, // no tileh | 	0, // no tileh | ||||||
| 	(1 << TRACKDIR_DIAG1_SW) | (1 << TRACKDIR_DIAG2_NW), // 1 | 	(1 << TRACKDIR_X_SW) | (1 << TRACKDIR_Y_NW), // 1 | ||||||
| 	(1 << TRACKDIR_DIAG1_SW) | (1 << TRACKDIR_DIAG2_SE), // 2 | 	(1 << TRACKDIR_X_SW) | (1 << TRACKDIR_Y_SE), // 2 | ||||||
| 	(1 << TRACKDIR_DIAG1_SW), // 3 | 	(1 << TRACKDIR_X_SW), // 3 | ||||||
| 	(1 << TRACKDIR_DIAG1_NE) | (1 << TRACKDIR_DIAG2_SE), // 4 | 	(1 << TRACKDIR_X_NE) | (1 << TRACKDIR_Y_SE), // 4 | ||||||
| 	0, // 5 | 	0, // 5 | ||||||
| 	(1 << TRACKDIR_DIAG2_SE), // 6 | 	(1 << TRACKDIR_Y_SE), // 6 | ||||||
| 	0, // 7 | 	0, // 7 | ||||||
| 	(1 << TRACKDIR_DIAG1_NE) | (1 << TRACKDIR_DIAG2_NW), // 8, | 	(1 << TRACKDIR_X_NE) | (1 << TRACKDIR_Y_NW), // 8, | ||||||
| 	(1 << TRACKDIR_DIAG2_NW), // 9 | 	(1 << TRACKDIR_Y_NW), // 9 | ||||||
| 	0, //10 | 	0, //10 | ||||||
| 	0, //11, | 	0, //11, | ||||||
| 	(1 << TRACKDIR_DIAG1_NE), //12 | 	(1 << TRACKDIR_X_NE), //12 | ||||||
| 	0, //13 | 	0, //13 | ||||||
| 	0, //14 | 	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) |  * track entering in this direction (including those making 90 degree turns) | ||||||
|  */ |  */ | ||||||
| const TrackdirBits _exitdir_reaches_trackdirs[] = { | const TrackdirBits _exitdir_reaches_trackdirs[] = { | ||||||
| 	TRACKDIR_BIT_DIAG1_NE | TRACKDIR_BIT_LOWER_E | TRACKDIR_BIT_LEFT_N,  /* DIAGDIR_NE */ | 	TRACKDIR_BIT_X_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_Y_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_X_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_Y_NW | TRACKDIR_BIT_RIGHT_N | TRACKDIR_BIT_LOWER_W  /* DIAGDIR_NW */ | ||||||
| }; | }; | ||||||
|  |  | ||||||
| const Trackdir _next_trackdir[] = { | 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_X_NE,  TRACKDIR_Y_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_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. */ | /* Maps a trackdir to all trackdirs that make 90 deg turns with it. */ | ||||||
| const TrackdirBits _track_crosses_trackdirs[] = { | const TrackdirBits _track_crosses_trackdirs[] = { | ||||||
| 	TRACKDIR_BIT_DIAG2_SE | TRACKDIR_BIT_DIAG2_NW,                                               /* TRACK_DIAG1 */ | 	TRACKDIR_BIT_Y_SE     | TRACKDIR_BIT_Y_NW,                                                   /* TRACK_X     */ | ||||||
| 	TRACKDIR_BIT_DIAG1_NE | TRACKDIR_BIT_DIAG1_SW,                                               /* TRACK_DIAG2 */ | 	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_UPPER */ | ||||||
| 	TRACKDIR_BIT_RIGHT_N  | TRACKDIR_BIT_RIGHT_S  | TRACKDIR_BIT_LEFT_N  | TRACKDIR_BIT_LEFT_S,  /* TRACK_LOWER */ | 	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  */ | 	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. */ | /* Maps a track to all tracks that make 90 deg turns with it. */ | ||||||
| const TrackBits _track_crosses_tracks[] = { | const TrackBits _track_crosses_tracks[] = { | ||||||
| 	TRACK_BIT_DIAG2,                   /* TRACK_DIAG1 */ | 	TRACK_BIT_Y,                       /* TRACK_X     */ | ||||||
| 	TRACK_BIT_DIAG1,                   /* TRACK_DIAG2 */ | 	TRACK_BIT_X,                       /* TRACK_Y     */ | ||||||
| 	TRACK_BIT_LEFT  | TRACK_BIT_RIGHT, /* TRACK_UPPER */ | 	TRACK_BIT_LEFT  | TRACK_BIT_RIGHT, /* TRACK_UPPER */ | ||||||
| 	TRACK_BIT_LEFT  | TRACK_BIT_RIGHT, /* TRACK_LOWER */ | 	TRACK_BIT_LEFT  | TRACK_BIT_RIGHT, /* TRACK_LOWER */ | ||||||
| 	TRACK_BIT_UPPER | TRACK_BIT_LOWER, /* TRACK_LEFT  */ | 	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] = { | const Trackdir _track_exitdir_to_trackdir[][DIAGDIR_END] = { | ||||||
| 	{TRACKDIR_DIAG1_NE, INVALID_TRACKDIR,  TRACKDIR_DIAG1_SW, INVALID_TRACKDIR}, | 	{TRACKDIR_X_NE,     INVALID_TRACKDIR,  TRACKDIR_X_SW,     INVALID_TRACKDIR}, | ||||||
| 	{INVALID_TRACKDIR,  TRACKDIR_DIAG2_SE, INVALID_TRACKDIR,  TRACKDIR_DIAG2_NW}, | 	{INVALID_TRACKDIR,  TRACKDIR_Y_SE,     INVALID_TRACKDIR,  TRACKDIR_Y_NW}, | ||||||
| 	{TRACKDIR_UPPER_E,  INVALID_TRACKDIR,  INVALID_TRACKDIR,  TRACKDIR_UPPER_W}, | 	{TRACKDIR_UPPER_E,  INVALID_TRACKDIR,  INVALID_TRACKDIR,  TRACKDIR_UPPER_W}, | ||||||
| 	{INVALID_TRACKDIR,  TRACKDIR_LOWER_E,  TRACKDIR_LOWER_W,  INVALID_TRACKDIR}, | 	{INVALID_TRACKDIR,  TRACKDIR_LOWER_E,  TRACKDIR_LOWER_W,  INVALID_TRACKDIR}, | ||||||
| 	{INVALID_TRACKDIR,  INVALID_TRACKDIR,  TRACKDIR_LEFT_S,   TRACKDIR_LEFT_N}, | 	{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 | const Trackdir _track_enterdir_to_trackdir[][DIAGDIR_END] = { // TODO: replace magic with enums | ||||||
| 	{TRACKDIR_DIAG1_NE, INVALID_TRACKDIR,  TRACKDIR_DIAG1_SW, INVALID_TRACKDIR}, | 	{TRACKDIR_X_NE,     INVALID_TRACKDIR,  TRACKDIR_X_SW,     INVALID_TRACKDIR}, | ||||||
| 	{INVALID_TRACKDIR,  TRACKDIR_DIAG2_SE, INVALID_TRACKDIR,  TRACKDIR_DIAG2_NW}, | 	{INVALID_TRACKDIR,  TRACKDIR_Y_SE,     INVALID_TRACKDIR,  TRACKDIR_Y_NW}, | ||||||
| 	{INVALID_TRACKDIR,  TRACKDIR_UPPER_E,  TRACKDIR_UPPER_W,  INVALID_TRACKDIR}, | 	{INVALID_TRACKDIR,  TRACKDIR_UPPER_E,  TRACKDIR_UPPER_W,  INVALID_TRACKDIR}, | ||||||
| 	{TRACKDIR_LOWER_E,  INVALID_TRACKDIR,  INVALID_TRACKDIR,  TRACKDIR_LOWER_W}, | 	{TRACKDIR_LOWER_E,  INVALID_TRACKDIR,  INVALID_TRACKDIR,  TRACKDIR_LOWER_W}, | ||||||
| 	{TRACKDIR_LEFT_N,   TRACKDIR_LEFT_S,   INVALID_TRACKDIR,  INVALID_TRACKDIR}, | 	{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] = { | 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, TRACKDIR_X_NE,     INVALID_TRACKDIR, INVALID_TRACKDIR,  INVALID_TRACKDIR, TRACKDIR_X_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, 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_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}, | 	{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}, | 	{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[] = { | 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[] = { | const DiagDirection _reverse_diagdir[] = { | ||||||
| @@ -104,8 +104,8 @@ const DiagDirection _reverse_diagdir[] = { | |||||||
| }; | }; | ||||||
|  |  | ||||||
| const Trackdir _reverse_trackdir[] = { | 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_X_SW, TRACKDIR_Y_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_NE, TRACKDIR_Y_SE, TRACKDIR_UPPER_E, TRACKDIR_LOWER_E, TRACKDIR_LEFT_S, TRACKDIR_RIGHT_S | ||||||
| }; | }; | ||||||
|  |  | ||||||
| RailType GetTileRailType(TileIndex tile, Trackdir trackdir) | 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 | /** These are used to specify a single track. Can be translated to a trackbit | ||||||
|  * with TrackToTrackbit */ |  * with TrackToTrackbit */ | ||||||
| typedef enum Tracks { | typedef enum Tracks { | ||||||
| 	TRACK_DIAG1 = 0, | 	TRACK_X     = 0, | ||||||
| 	TRACK_DIAG2 = 1, | 	TRACK_Y     = 1, | ||||||
| 	TRACK_UPPER = 2, | 	TRACK_UPPER = 2, | ||||||
| 	TRACK_LOWER = 3, | 	TRACK_LOWER = 3, | ||||||
| 	TRACK_LEFT  = 4, | 	TRACK_LEFT  = 4, | ||||||
| @@ -79,8 +79,8 @@ typedef enum Tracks { | |||||||
|  |  | ||||||
| /** These are the bitfield variants of the above */ | /** These are the bitfield variants of the above */ | ||||||
| typedef enum TrackBits { | typedef enum TrackBits { | ||||||
| 	TRACK_BIT_DIAG1 = 1U,    // 0 | 	TRACK_BIT_X     = 1U,    // 0 | ||||||
| 	TRACK_BIT_DIAG2 = 2U,    // 1 | 	TRACK_BIT_Y     = 2U,    // 1 | ||||||
| 	TRACK_BIT_UPPER = 4U,    // 2 | 	TRACK_BIT_UPPER = 4U,    // 2 | ||||||
| 	TRACK_BIT_LOWER = 8U,    // 3 | 	TRACK_BIT_LOWER = 8U,    // 3 | ||||||
| 	TRACK_BIT_LEFT  = 16U,   // 4 | 	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 | /** 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. */ | direction (corresponding to the Track enum) and 8-13 in the other direction. */ | ||||||
| typedef enum Trackdirs { | typedef enum Trackdirs { | ||||||
| 	TRACKDIR_DIAG1_NE = 0, | 	TRACKDIR_X_NE = 0, | ||||||
| 	TRACKDIR_DIAG2_SE = 1, | 	TRACKDIR_Y_SE = 1, | ||||||
| 	TRACKDIR_UPPER_E  = 2, | 	TRACKDIR_UPPER_E  = 2, | ||||||
| 	TRACKDIR_LOWER_E  = 3, | 	TRACKDIR_LOWER_E  = 3, | ||||||
| 	TRACKDIR_LEFT_S   = 4, | 	TRACKDIR_LEFT_S   = 4, | ||||||
| 	TRACKDIR_RIGHT_S  = 5, | 	TRACKDIR_RIGHT_S  = 5, | ||||||
| 	/* Note the two missing values here. This enables trackdir -> track | 	/* Note the two missing values here. This enables trackdir -> track | ||||||
| 	 * conversion by doing (trackdir & 7) */ | 	 * conversion by doing (trackdir & 7) */ | ||||||
| 	TRACKDIR_DIAG1_SW = 8, | 	TRACKDIR_X_SW = 8, | ||||||
| 	TRACKDIR_DIAG2_NW = 9, | 	TRACKDIR_Y_NW = 9, | ||||||
| 	TRACKDIR_UPPER_W  = 10, | 	TRACKDIR_UPPER_W  = 10, | ||||||
| 	TRACKDIR_LOWER_W  = 11, | 	TRACKDIR_LOWER_W  = 11, | ||||||
| 	TRACKDIR_LEFT_N   = 12, | 	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 | /** 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. */ | direction (corresponding to the Track enum) and 8-13 in the other direction. */ | ||||||
| typedef enum TrackdirBits { | typedef enum TrackdirBits { | ||||||
| 	TRACKDIR_BIT_DIAG1_NE = 0x1, | 	TRACKDIR_BIT_X_NE     = 0x1, | ||||||
| 	TRACKDIR_BIT_DIAG2_SE = 0x2, | 	TRACKDIR_BIT_Y_SE     = 0x2, | ||||||
| 	TRACKDIR_BIT_UPPER_E  = 0x4, | 	TRACKDIR_BIT_UPPER_E  = 0x4, | ||||||
| 	TRACKDIR_BIT_LOWER_E  = 0x8, | 	TRACKDIR_BIT_LOWER_E  = 0x8, | ||||||
| 	TRACKDIR_BIT_LEFT_S   = 0x10, | 	TRACKDIR_BIT_LEFT_S   = 0x10, | ||||||
| 	TRACKDIR_BIT_RIGHT_S  = 0x20, | 	TRACKDIR_BIT_RIGHT_S  = 0x20, | ||||||
| 	/* Again, note the two missing values here. This enables trackdir -> track conversion by doing (trackdir & 0xFF) */ | 	/* Again, note the two missing values here. This enables trackdir -> track conversion by doing (trackdir & 0xFF) */ | ||||||
| 	TRACKDIR_BIT_DIAG1_SW = 0x0100, | 	TRACKDIR_BIT_X_SW     = 0x0100, | ||||||
| 	TRACKDIR_BIT_DIAG2_NW = 0x0200, | 	TRACKDIR_BIT_Y_NW     = 0x0200, | ||||||
| 	TRACKDIR_BIT_UPPER_W  = 0x0400, | 	TRACKDIR_BIT_UPPER_W  = 0x0400, | ||||||
| 	TRACKDIR_BIT_LOWER_W  = 0x0800, | 	TRACKDIR_BIT_LOWER_W  = 0x0800, | ||||||
| 	TRACKDIR_BIT_LEFT_N   = 0x1000, | 	TRACKDIR_BIT_LEFT_N   = 0x1000, | ||||||
| @@ -481,7 +481,7 @@ static inline DiagDirection DirToDiagdir(Direction dir) { | |||||||
| } | } | ||||||
|  |  | ||||||
| /* Checks if a given Track is diagonal */ | /* 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. */ | /* Checks if a given Trackdir is diagonal. */ | ||||||
| static inline bool IsDiagonalTrackdir(Trackdir trackdir) { return IsDiagonalTrack(TrackdirToTrack(trackdir)); } | 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? */ | 	/* XXX: Nicer way to write this? */ | ||||||
| 	switch (track) { | 	switch (track) { | ||||||
| 		/* When map5 bit 3 is set, the road runs in the y direction (DIAG2) */ | 		/* When map5 bit 3 is set, the road runs in the y direction */ | ||||||
| 		case TRACK_DIAG1: | 		case TRACK_X: | ||||||
| 			return (HASBIT(_m[tile].m5, 3) ? TRANSPORT_RAIL : TRANSPORT_ROAD); | 			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); | 			return (HASBIT(_m[tile].m5, 3) ? TRANSPORT_ROAD : TRANSPORT_RAIL); | ||||||
| 		default: | 		default: | ||||||
| 			assert(0); | 			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 | // 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_RIGHT, | ||||||
| 	TRACK_BIT_UPPER, | 	TRACK_BIT_UPPER, | ||||||
| 	TRACK_BIT_DIAG1, | 	TRACK_BIT_X, | ||||||
|  |  | ||||||
| 	TRACK_BIT_LEFT, | 	TRACK_BIT_LEFT, | ||||||
| 	0, | 	0, | ||||||
| 	TRACK_BIT_DIAG2, | 	TRACK_BIT_Y, | ||||||
| 	TRACK_BIT_LOWER, | 	TRACK_BIT_LOWER, | ||||||
|  |  | ||||||
| 	TRACK_BIT_LOWER, | 	TRACK_BIT_LOWER, | ||||||
| 	TRACK_BIT_DIAG2, | 	TRACK_BIT_Y, | ||||||
| 	0, | 	0, | ||||||
| 	TRACK_BIT_LEFT, | 	TRACK_BIT_LEFT, | ||||||
|  |  | ||||||
| 	TRACK_BIT_DIAG1, | 	TRACK_BIT_X, | ||||||
| 	TRACK_BIT_UPPER, | 	TRACK_BIT_UPPER, | ||||||
| 	TRACK_BIT_RIGHT, | 	TRACK_BIT_RIGHT, | ||||||
| }, | }, | ||||||
| @@ -159,21 +159,21 @@ static const byte _valid_tileh_slopes[4][15] = { | |||||||
| 	0, | 	0, | ||||||
| 	TRACK_BIT_LEFT, | 	TRACK_BIT_LEFT, | ||||||
| 	TRACK_BIT_LOWER, | 	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_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_DIAG1 | TRACK_BIT_LOWER | TRACK_BIT_RIGHT, | 	TRACK_BIT_X | 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_UPPER, | 	TRACK_BIT_UPPER, | ||||||
| 	TRACK_BIT_DIAG1 | TRACK_BIT_UPPER | TRACK_BIT_LEFT, | 	TRACK_BIT_X | 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_X|TRACK_BIT_Y|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_Y|TRACK_BIT_UPPER|TRACK_BIT_LOWER|TRACK_BIT_LEFT|TRACK_BIT_RIGHT, | ||||||
|  |  | ||||||
| 	TRACK_BIT_DIAG2 | TRACK_BIT_UPPER | TRACK_BIT_RIGHT, | 	TRACK_BIT_Y | 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_X|TRACK_BIT_Y|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_Y|TRACK_BIT_UPPER|TRACK_BIT_LOWER|TRACK_BIT_LEFT|TRACK_BIT_RIGHT, | ||||||
| }, | }, | ||||||
|  |  | ||||||
| // allowed rail on coast tile | // allowed rail on coast tile | ||||||
| @@ -181,21 +181,21 @@ static const byte _valid_tileh_slopes[4][15] = { | |||||||
| 	0, | 	0, | ||||||
| 	TRACK_BIT_LEFT, | 	TRACK_BIT_LEFT, | ||||||
| 	TRACK_BIT_LOWER, | 	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_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_DIAG1|TRACK_BIT_RIGHT|TRACK_BIT_LOWER, | 	TRACK_BIT_X|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_UPPER, | 	TRACK_BIT_UPPER, | ||||||
| 	TRACK_BIT_DIAG1|TRACK_BIT_LEFT|TRACK_BIT_UPPER, | 	TRACK_BIT_X|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_X|TRACK_BIT_Y|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_Y|TRACK_BIT_UPPER|TRACK_BIT_LOWER|TRACK_BIT_LEFT|TRACK_BIT_RIGHT, | ||||||
|  |  | ||||||
| 	TRACK_BIT_DIAG2|TRACK_BIT_RIGHT|TRACK_BIT_UPPER, | 	TRACK_BIT_Y|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_X|TRACK_BIT_Y|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_Y|TRACK_BIT_UPPER|TRACK_BIT_LOWER|TRACK_BIT_LEFT|TRACK_BIT_RIGHT, | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
| 	// valid railway crossings on slopes | 	// valid railway crossings on slopes | ||||||
| @@ -224,8 +224,8 @@ uint GetRailFoundation(uint tileh, uint bits) | |||||||
| 				(i += 2, tileh == 4) || | 				(i += 2, tileh == 4) || | ||||||
| 				(i += 2, tileh == 8) | 				(i += 2, tileh == 8) | ||||||
| 			) && ( | 			) && ( | ||||||
| 				bits == TRACK_BIT_DIAG1 || | 				bits == TRACK_BIT_X || | ||||||
| 				(i++, bits == TRACK_BIT_DIAG2) | 				(i++, bits == TRACK_BIT_Y) | ||||||
| 			)) { | 			)) { | ||||||
| 		return i + 15; | 		return i + 15; | ||||||
| 	} else { | 	} else { | ||||||
| @@ -251,7 +251,7 @@ static uint32 CheckRailSlope(uint tileh, TrackBits rail_bits, TrackBits existing | |||||||
| 			return 0; | 			return 0; | ||||||
|  |  | ||||||
| 		if ((~_valid_tileh_slopes[1][tileh] & rail_bits) == 0 || ( // whole tile is leveled up | 		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) | 					(tileh == 1 || tileh == 2 || tileh == 4 || tileh == 8) | ||||||
| 				)) { // partly up | 				)) { // partly up | ||||||
| 			if (existing != 0) { | 			if (existing != 0) { | ||||||
| @@ -296,7 +296,7 @@ int32 CmdBuildSingleRail(int x, int y, uint32 flags, uint32 p1, uint32 p2) | |||||||
| 	switch (GetTileType(tile)) { | 	switch (GetTileType(tile)) { | ||||||
| 		case MP_TUNNELBRIDGE: | 		case MP_TUNNELBRIDGE: | ||||||
| 			if ((m5 & 0xC0) != 0xC0 || // not bridge middle part? | 			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 | 				// Get detailed error message | ||||||
| 				return DoCommandByTile(tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR); | 				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 (!EnsureNoVehicle(tile)) return CMD_ERROR; | ||||||
|  |  | ||||||
| 			if (GetRoadType(tile) == ROAD_NORMAL && ( | 			if (GetRoadType(tile) == ROAD_NORMAL && ( | ||||||
| 						(track == TRACK_DIAG1 && m5 == ROAD_Y) || | 						(track == TRACK_X && m5 == ROAD_Y) || | ||||||
| 						(track == TRACK_DIAG2 && m5 == ROAD_X) // correct direction? | 						(track == TRACK_Y && m5 == ROAD_X) // correct direction? | ||||||
| 					)) { | 					)) { | ||||||
| 				if (flags & DC_EXEC) { | 				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; | 				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); | 				return_cmd_error(STR_1007_ALREADY_BUILT); | ||||||
| 			/* FALLTHROUGH */ | 			/* FALLTHROUGH */ | ||||||
|  |  | ||||||
| @@ -423,7 +423,7 @@ int32 CmdRemoveSingleRail(int x, int y, uint32 flags, uint32 p1, uint32 p2) | |||||||
| 			if ((_m[tile].m5 & 0xF8) != 0xE0) | 			if ((_m[tile].m5 & 0xF8) != 0xE0) | ||||||
| 				return CMD_ERROR; | 				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; | 				return CMD_ERROR; | ||||||
|  |  | ||||||
| 			if (!(flags & DC_EXEC)) | 			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 */ | 			/* This is a crossing, let's check if the direction is correct */ | ||||||
| 			if (_m[tile].m5 & 8) { | 			if (_m[tile].m5 & 8) { | ||||||
| 				if (track != TRACK_DIAG1) | 				if (track != TRACK_X) return CMD_ERROR; | ||||||
| 					return CMD_ERROR; |  | ||||||
| 				bits = ROAD_Y; | 				bits = ROAD_Y; | ||||||
| 			} else { | 			} else { | ||||||
| 				if (track != TRACK_DIAG2) | 				if (track != TRACK_Y) return CMD_ERROR; | ||||||
| 					return CMD_ERROR; |  | ||||||
| 				bits = ROAD_X; | 				bits = ROAD_X; | ||||||
| 			} | 			} | ||||||
|  |  | ||||||
| @@ -1072,8 +1070,8 @@ static int32 ClearTile_Track(TileIndex tile, byte flags) | |||||||
| 	switch (GetRailTileType(tile)) { | 	switch (GetRailTileType(tile)) { | ||||||
| 		/* XXX: Why the fuck do we remove these thow signals first? */ | 		/* XXX: Why the fuck do we remove these thow signals first? */ | ||||||
| 		case RAIL_TYPE_SIGNALS: | 		case RAIL_TYPE_SIGNALS: | ||||||
| 			if (HasSignalOnTrack(tile, TRACK_DIAG1)) { | 			if (HasSignalOnTrack(tile, TRACK_X)) { | ||||||
| 				ret = DoCommandByTile(tile, TRACK_DIAG1, 0, flags, CMD_REMOVE_SIGNALS); | 				ret = DoCommandByTile(tile, TRACK_X, 0, flags, CMD_REMOVE_SIGNALS); | ||||||
| 				if (CmdFailed(ret)) return CMD_ERROR; | 				if (CmdFailed(ret)) return CMD_ERROR; | ||||||
| 				cost += ret; | 				cost += ret; | ||||||
| 			} | 			} | ||||||
| @@ -1305,22 +1303,22 @@ static void DrawTrackBits(TileInfo* ti, TrackBits track, bool earth, bool snow, | |||||||
| 	bool junction = false; | 	bool junction = false; | ||||||
|  |  | ||||||
| 	// Select the sprite to use. | 	// Select the sprite to use. | ||||||
| 	(image = rti->base_sprites.track_y, track == TRACK_BIT_DIAG2) || | 	(image = rti->base_sprites.track_y, track == TRACK_BIT_Y) || | ||||||
| 	(image++,                           track == TRACK_BIT_DIAG1) || | 	(image++,                           track == TRACK_BIT_X) || | ||||||
| 	(image++,                           track == TRACK_BIT_UPPER) || | 	(image++,                           track == TRACK_BIT_UPPER) || | ||||||
| 	(image++,                           track == TRACK_BIT_LOWER) || | 	(image++,                           track == TRACK_BIT_LOWER) || | ||||||
| 	(image++,                           track == TRACK_BIT_RIGHT) || | 	(image++,                           track == TRACK_BIT_RIGHT) || | ||||||
| 	(image++,                           track == TRACK_BIT_LEFT) || | 	(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 = rti->base_sprites.track_ns, track == (TRACK_BIT_UPPER | TRACK_BIT_LOWER)) || | ||||||
| 	(image++,                            track == (TRACK_BIT_LEFT | TRACK_BIT_RIGHT)) || | 	(image++,                            track == (TRACK_BIT_LEFT | TRACK_BIT_RIGHT)) || | ||||||
|  |  | ||||||
| 	(junction = true, false) || | 	(junction = true, false) || | ||||||
| 	(image = rti->base_sprites.ground, !(track & (TRACK_BIT_RIGHT | TRACK_BIT_UPPER | TRACK_BIT_DIAG1))) || | 	(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_DIAG1))) || | 	(image++,                          !(track & (TRACK_BIT_LEFT | TRACK_BIT_LOWER | TRACK_BIT_X))) || | ||||||
| 	(image++,                          !(track & (TRACK_BIT_LEFT | TRACK_BIT_UPPER | TRACK_BIT_DIAG2))) || | 	(image++,                          !(track & (TRACK_BIT_LEFT | TRACK_BIT_UPPER | TRACK_BIT_Y))) || | ||||||
| 	(image++,                          !(track & (TRACK_BIT_RIGHT | TRACK_BIT_LOWER | TRACK_BIT_DIAG2))) || | 	(image++,                          !(track & (TRACK_BIT_RIGHT | TRACK_BIT_LOWER | TRACK_BIT_Y))) || | ||||||
| 	(image++, true); | 	(image++, true); | ||||||
|  |  | ||||||
| 	if (ti->tileh != 0) { | 	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 | 	// Draw track pieces individually for junction tiles | ||||||
| 	if (junction) { | 	if (junction) { | ||||||
| 		if (track & TRACK_BIT_DIAG1) DrawGroundSprite(rti->base_sprites.single_y); | 		if (track & TRACK_BIT_X)     DrawGroundSprite(rti->base_sprites.single_y); | ||||||
| 		if (track & TRACK_BIT_DIAG2) DrawGroundSprite(rti->base_sprites.single_x); | 		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_UPPER) DrawGroundSprite(rti->base_sprites.single_n); | ||||||
| 		if (track & TRACK_BIT_LOWER) DrawGroundSprite(rti->base_sprites.single_s); | 		if (track & TRACK_BIT_LOWER) DrawGroundSprite(rti->base_sprites.single_s); | ||||||
| 		if (track & TRACK_BIT_LEFT)  DrawGroundSprite(rti->base_sprites.single_w); | 		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 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)) | #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_Y)) { | ||||||
| 			if (!(m5 & TRACK_BIT_DIAG1)) { | 			if (!(m5 & TRACK_BIT_X)) { | ||||||
| 				if (m5 & TRACK_BIT_LEFT) { | 				if (m5 & TRACK_BIT_LEFT) { | ||||||
| 					MAYBE_DRAW_SIGNAL(2, 0x509, 0); | 					MAYBE_DRAW_SIGNAL(2, 0x509, 0); | ||||||
| 					MAYBE_DRAW_SIGNAL(3, 0x507, 1); | 					MAYBE_DRAW_SIGNAL(3, 0x507, 1); | ||||||
| @@ -1909,8 +1907,8 @@ static void TileLoop_Track(TileIndex tile) | |||||||
| 				PlayerID owner = GetTileOwner(tile); | 				PlayerID owner = GetTileOwner(tile); | ||||||
|  |  | ||||||
| 				if (rail == (TRACK_BIT_LOWER | TRACK_BIT_RIGHT) || ( | 				if (rail == (TRACK_BIT_LOWER | TRACK_BIT_RIGHT) || ( | ||||||
| 							!(rail & (TRACK_BIT_DIAG2 | TRACK_BIT_UPPER | TRACK_BIT_LEFT)) && | 							!(rail & (TRACK_BIT_Y | TRACK_BIT_UPPER | TRACK_BIT_LEFT)) && | ||||||
| 							(rail & TRACK_BIT_DIAG1) | 							(rail & TRACK_BIT_X) | ||||||
| 						)) { | 						)) { | ||||||
| 					TileIndex n = tile + TileDiffXY(0, -1); | 					TileIndex n = tile + TileDiffXY(0, -1); | ||||||
|  |  | ||||||
| @@ -1923,8 +1921,8 @@ static void TileLoop_Track(TileIndex tile) | |||||||
| 				} | 				} | ||||||
|  |  | ||||||
| 				if (rail == (TRACK_BIT_UPPER | TRACK_BIT_LEFT) || ( | 				if (rail == (TRACK_BIT_UPPER | TRACK_BIT_LEFT) || ( | ||||||
| 							!(rail & (TRACK_BIT_DIAG2 | TRACK_BIT_LOWER | TRACK_BIT_RIGHT)) && | 							!(rail & (TRACK_BIT_Y | TRACK_BIT_LOWER | TRACK_BIT_RIGHT)) && | ||||||
| 							(rail & TRACK_BIT_DIAG1) | 							(rail & TRACK_BIT_X) | ||||||
| 						)) { | 						)) { | ||||||
| 					TileIndex n = tile + TileDiffXY(0, 1); | 					TileIndex n = tile + TileDiffXY(0, 1); | ||||||
|  |  | ||||||
| @@ -1938,8 +1936,8 @@ static void TileLoop_Track(TileIndex tile) | |||||||
| 				} | 				} | ||||||
|  |  | ||||||
| 				if (rail == (TRACK_BIT_LOWER | TRACK_BIT_LEFT) || ( | 				if (rail == (TRACK_BIT_LOWER | TRACK_BIT_LEFT) || ( | ||||||
| 							!(rail & (TRACK_BIT_DIAG1 | TRACK_BIT_UPPER | TRACK_BIT_RIGHT)) && | 							!(rail & (TRACK_BIT_X | TRACK_BIT_UPPER | TRACK_BIT_RIGHT)) && | ||||||
| 							(rail & TRACK_BIT_DIAG2) | 							(rail & TRACK_BIT_Y) | ||||||
| 						)) { | 						)) { | ||||||
| 					TileIndex n = tile + TileDiffXY(-1, 0); | 					TileIndex n = tile + TileDiffXY(-1, 0); | ||||||
|  |  | ||||||
| @@ -1952,8 +1950,8 @@ static void TileLoop_Track(TileIndex tile) | |||||||
| 				} | 				} | ||||||
|  |  | ||||||
| 				if (rail == (TRACK_BIT_UPPER | TRACK_BIT_RIGHT) || ( | 				if (rail == (TRACK_BIT_UPPER | TRACK_BIT_RIGHT) || ( | ||||||
| 							!(rail & (TRACK_BIT_DIAG1 | TRACK_BIT_LOWER | TRACK_BIT_LEFT)) && | 							!(rail & (TRACK_BIT_X | TRACK_BIT_LOWER | TRACK_BIT_LEFT)) && | ||||||
| 							(rail & TRACK_BIT_DIAG2) | 							(rail & TRACK_BIT_Y) | ||||||
| 						)) { | 						)) { | ||||||
| 					TileIndex n = tile + TileDiffXY(1, 0); | 					TileIndex n = tile + TileDiffXY(1, 0); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ | |||||||
|  |  | ||||||
| static inline TrackBits GetRailWaypointBits(TileIndex t) | 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 (!(ti.map5 & 8)) { | ||||||
| 						if (pieces & ROAD_Y) goto return_error; | 						if (pieces & ROAD_Y) goto return_error; | ||||||
| 						track = TRACK_BIT_DIAG2; | 						track = TRACK_BIT_Y; | ||||||
| 					} else { | 					} else { | ||||||
| 						if (pieces & ROAD_X) goto return_error; | 						if (pieces & ROAD_X) goto return_error; | ||||||
| 						track = TRACK_BIT_DIAG1; | 						track = TRACK_BIT_X; | ||||||
| 					} | 					} | ||||||
|  |  | ||||||
| 					cost = _price.remove_road * 2; | 					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; | 		st->build_date = _date; | ||||||
|  |  | ||||||
| 		tile_delta = direction ? TileDiffXY(0, 1) : TileDiffXY(1, 0); | 		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; | 		statspec = (p2 & 0x10) != 0 ? GetCustomStation(STAT_CLASS_DFLT, p2 >> 8) : NULL; | ||||||
| 		layout_ptr = alloca(numtracks * plat_len); | 		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 we reached here, it means we can actually delete it. do that. | ||||||
| 	if (flags & DC_EXEC) { | 	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); | 		DoClearSquare(tile); | ||||||
| 		SetSignalsOnBothDir(tile, track); | 		SetSignalsOnBothDir(tile, track); | ||||||
| 		// now we need to make the "spanned" area of the railway station smaller if we deleted something at the edges. | 		// 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)) | 				if (!EnsureNoVehicle(tile)) | ||||||
| 					return CMD_ERROR; | 					return CMD_ERROR; | ||||||
| 				if (flags & DC_EXEC) { | 				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); | 					DoClearSquare(tile); | ||||||
| 					SetSignalsOnBothDir(tile, track); | 					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 (p1 >= GetNumCustomStations(STAT_CLASS_WAYP)) return CMD_ERROR; | ||||||
|  |  | ||||||
| 	if (!IsTileType(tile, MP_RAILWAY) || ( | 	if (!IsTileType(tile, MP_RAILWAY) || ( | ||||||
| 				(axis = AXIS_X, _m[tile].m5 != TRACK_BIT_DIAG1) && | 				(axis = AXIS_X, _m[tile].m5 != TRACK_BIT_X) && | ||||||
| 				(axis = AXIS_Y, _m[tile].m5 != TRACK_BIT_DIAG2) | 				(axis = AXIS_Y, _m[tile].m5 != TRACK_BIT_Y) | ||||||
| 			)) { | 			)) { | ||||||
| 		return_cmd_error(STR_1005_NO_SUITABLE_RAILROAD_TRACK); | 		return_cmd_error(STR_1005_NO_SUITABLE_RAILROAD_TRACK); | ||||||
| 	} | 	} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 tron
					tron