(svn r4351) Simplify ReverseTrackdir() to use a simple arithmetic operation instead of a table lookup
--- a/rail.c Mon Apr 10 21:00:56 2006 +0000
+++ b/rail.c Tue Apr 11 04:49:23 2006 +0000
@@ -101,10 +101,6 @@
TRACKDIR_X_NE, TRACKDIR_Y_SE, TRACKDIR_X_SW, TRACKDIR_Y_NW,
};
-const Trackdir _reverse_trackdir[] = {
- 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)
{
--- a/rail.h Mon Apr 10 21:00:56 2006 +0000
+++ b/rail.h Tue Apr 11 04:49:23 2006 +0000
@@ -238,8 +238,7 @@
* Maps a trackdir to the reverse trackdir.
*/
static inline Trackdir ReverseTrackdir(Trackdir trackdir) {
- extern const Trackdir _reverse_trackdir[TRACKDIR_END];
- return _reverse_trackdir[trackdir];
+ return (Trackdir)(trackdir ^ 8);
}
/**