(svn r4351) Simplify ReverseTrackdir() to use a simple arithmetic operation instead of a table lookup
authortron
Tue, 11 Apr 2006 04:49:23 +0000
changeset 3500 70b8e368e43c
parent 3499 e95d6e5f66ae
child 3501 cf7d2c33e7fc
(svn r4351) Simplify ReverseTrackdir() to use a simple arithmetic operation instead of a table lookup
rail.c
rail.h
--- 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);
 }
 
 /**