changeset 3500:853efd6b1c88 draft

(svn r4351) Simplify ReverseTrackdir() to use a simple arithmetic operation instead of a table lookup
author tron <tron@openttd.org>
date Tue, 11 Apr 2006 04:49:23 +0000
parents 88fb16604b82
children 08573f22dee3
files rail.c rail.h
diffstat 2 files changed, 1 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/rail.c
+++ b/rail.c
@@ -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
+++ b/rail.h
@@ -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);
 }
 
 /**